openapi: 3.0.3
info:
  title: Waldur API
  version: 8.0.3
paths:
  /api-auth/eduteams/complete/:
    get:
      operationId: api_auth_eduteams_complete_retrieve
      parameters:
      - in: query
        name: code
        schema:
          type: string
      - in: query
        name: state
        schema:
          type: string
      tags:
      - api-auth
      responses:
        '200':
          description: No response body
  /api-auth/eduteams/init/:
    get:
      operationId: api_auth_eduteams_init_retrieve
      description: Redirect user to OIDC authorization endpoint
      tags:
      - api-auth
      responses:
        '200':
          description: No response body
  /api-auth/keycloak/complete/:
    get:
      operationId: api_auth_keycloak_complete_retrieve
      parameters:
      - in: query
        name: code
        schema:
          type: string
      - in: query
        name: state
        schema:
          type: string
      tags:
      - api-auth
      responses:
        '200':
          description: No response body
  /api-auth/keycloak/init/:
    get:
      operationId: api_auth_keycloak_init_retrieve
      description: Redirect user to OIDC authorization endpoint
      tags:
      - api-auth
      responses:
        '200':
          description: No response body
  /api-auth/logout/:
    post:
      operationId: api_auth_logout
      description: Logs out the current user by deleting their authentication token.
        If single logout (SLO) is supported for the current authentication method
        (e.g., SAML2 or OIDC), this endpoint may return a logout URL to which the
        user should be redirected to complete the logout process on the identity provider
        side.
      summary: Log out
      tags:
      - api-auth
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Logout'
          description: ''
        '204':
          description: No response body
  /api-auth/password/:
    post:
      operationId: api_auth_password
      description: Authenticates a user with username and password and returns an
        authentication token.
      summary: Obtain authentication token
      tags:
      - api-auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ObtainAuthTokenRequest'
            examples:
              ValidRequest:
                value:
                  username: alice
                  password: $ecr3t
                summary: Valid request example
                description: Example of a valid request to obtain an authentication
                  token.
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CoreAuthToken'
              examples:
                SuccessResponse:
                  value:
                    token: c84d653b9ec92c6cbac41c706593e66f567a7fa4
                  summary: Success response example
                  description: Example of a successful response with the authentication
                    token.
          description: ''
        '401':
          description: No response body
  /api-auth/saml2/login/:
    post:
      operationId: api_auth_saml2_login
      tags:
      - api-auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Saml2LoginRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Saml2Login'
          description: ''
  /api-auth/saml2/login/complete/:
    post:
      operationId: api_auth_saml2_login_complete
      tags:
      - api-auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Saml2LoginCompleteRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Saml2LoginComplete'
          description: ''
  /api-auth/saml2/logout/:
    get:
      operationId: api_auth_saml2_logout_retrieve
      tags:
      - api-auth
      responses:
        '200':
          description: No response body
  /api-auth/saml2/logout/complete/:
    get:
      operationId: api_auth_saml2_logout_complete_retrieve
      description: For IdPs which send GET requests
      tags:
      - api-auth
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Saml2LogoutComplete'
          description: ''
    post:
      operationId: api_auth_saml2_logout_complete
      description: For IdPs which send POST requests
      tags:
      - api-auth
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Saml2LogoutCompleteRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Saml2LogoutComplete'
          description: ''
  /api-auth/saml2/providers/:
    get:
      operationId: api_auth_saml2_providers_list
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - api-auth
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Saml2Provider'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api-auth/tara/complete/:
    get:
      operationId: api_auth_tara_complete_retrieve
      parameters:
      - in: query
        name: code
        schema:
          type: string
      - in: query
        name: state
        schema:
          type: string
      tags:
      - api-auth
      responses:
        '200':
          description: No response body
  /api-auth/tara/init/:
    get:
      operationId: api_auth_tara_init_retrieve
      description: Redirect user to OIDC authorization endpoint
      tags:
      - api-auth
      responses:
        '200':
          description: No response body
  /api/access-subnets/:
    get:
      operationId: access_subnets_list
      description: Retrieve a list of access subnets. Staff and support users can
        see all subnets, while other users can only see subnets associated with customers
        they have a role in.
      summary: List access subnets
      parameters:
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: inet
        schema:
          type: string
        description: Inet
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - access-subnets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AccessSubnet'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: access_subnets_create
      description: Create a new access subnet for a customer.
      summary: Create an access subnet
      tags:
      - access-subnets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessSubnetRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessSubnet'
          description: ''
    head:
      operationId: access_subnets_count
      description: Get number of items in the collection matching the request parameters.
      summary: List access subnets
      parameters:
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: inet
        schema:
          type: string
        description: Inet
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - access-subnets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/access-subnets/{uuid}/:
    get:
      operationId: access_subnets_retrieve
      description: Fetch the details of a specific access subnet by its UUID.
      summary: Retrieve access subnet
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - access-subnets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessSubnet'
          description: ''
    put:
      operationId: access_subnets_update
      description: Update an existing access subnet.
      summary: Update an access subnet
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - access-subnets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessSubnetRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessSubnet'
          description: ''
      x-permissions:
      - permission: ACCESS_SUBNET.UPDATE
        scopes:
        - customer
    patch:
      operationId: access_subnets_partial_update
      description: Partially update an existing access subnet.
      summary: Partially update an access subnet
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - access-subnets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAccessSubnetRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessSubnet'
          description: ''
      x-permissions:
      - permission: ACCESS_SUBNET.UPDATE
        scopes:
        - customer
    delete:
      operationId: access_subnets_destroy
      description: Delete an existing access subnet.
      summary: Delete an access subnet
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - access-subnets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: ACCESS_SUBNET.DELETE
        scopes:
        - customer
  /api/admin-announcements/:
    get:
      operationId: admin_announcements_list
      parameters:
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - active_from
            - active_to
            - created
            - description
            - is_active
            - maintenance_affected_offerings
            - maintenance_external_reference_url
            - maintenance_name
            - maintenance_scheduled_end
            - maintenance_scheduled_start
            - maintenance_service_provider
            - maintenance_state
            - maintenance_type
            - maintenance_uuid
            - type
            - uuid
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -active_from
            - -active_to
            - -created
            - -name
            - -type
            - active_from
            - active_to
            - created
            - name
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
            enum:
            - danger
            - information
            - warning
        explode: true
        style: form
      tags:
      - admin-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AdminAnnouncement'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: admin_announcements_create
      tags:
      - admin-announcements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminAnnouncementRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminAnnouncement'
          description: ''
    head:
      operationId: admin_announcements_count
      parameters:
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -active_from
            - -active_to
            - -created
            - -name
            - -type
            - active_from
            - active_to
            - created
            - name
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
            enum:
            - danger
            - information
            - warning
        explode: true
        style: form
      tags:
      - admin-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/admin-announcements/{uuid}/:
    get:
      operationId: admin_announcements_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - active_from
            - active_to
            - created
            - description
            - is_active
            - maintenance_affected_offerings
            - maintenance_external_reference_url
            - maintenance_name
            - maintenance_scheduled_end
            - maintenance_scheduled_start
            - maintenance_service_provider
            - maintenance_state
            - maintenance_type
            - maintenance_uuid
            - type
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminAnnouncement'
          description: ''
    put:
      operationId: admin_announcements_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin-announcements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminAnnouncementRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminAnnouncement'
          description: ''
    patch:
      operationId: admin_announcements_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin-announcements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAdminAnnouncementRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AdminAnnouncement'
          description: ''
    delete:
      operationId: admin_announcements_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/admin/arrow/billing-sync-items/:
    get:
      operationId: admin_arrow_billing_sync_items_list
      parameters:
      - in: query
        name: arrow_line_reference
        schema:
          type: string
      - in: query
        name: billing_sync
        schema:
          type: string
      - in: query
        name: billing_sync_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: classification
        schema:
          type: string
      - in: query
        name: has_compensation
        schema:
          type: boolean
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: report_period
        schema:
          type: string
      - in: query
        name: subscription_reference
        schema:
          type: string
      - in: query
        name: vendor_name
        schema:
          type: string
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArrowBillingSyncItemDetail'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: admin_arrow_billing_sync_items_count
      parameters:
      - in: query
        name: arrow_line_reference
        schema:
          type: string
      - in: query
        name: billing_sync
        schema:
          type: string
      - in: query
        name: billing_sync_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: classification
        schema:
          type: string
      - in: query
        name: has_compensation
        schema:
          type: boolean
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: report_period
        schema:
          type: string
      - in: query
        name: subscription_reference
        schema:
          type: string
      - in: query
        name: vendor_name
        schema:
          type: string
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/admin/arrow/billing-sync-items/{uuid}/:
    get:
      operationId: admin_arrow_billing_sync_items_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowBillingSyncItemDetail'
          description: ''
  /api/admin/arrow/billing-syncs/:
    get:
      operationId: admin_arrow_billing_syncs_list
      parameters:
      - in: query
        name: arrow_state
        schema:
          type: string
      - in: query
        name: customer_mapping
        schema:
          type: string
      - in: query
        name: customer_mapping_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: report_period
        schema:
          type: string
      - in: query
        name: report_period_from
        schema:
          type: string
      - in: query
        name: report_period_to
        schema:
          type: string
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: integer
      - in: query
        name: statement_reference
        schema:
          type: string
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArrowBillingSync'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: admin_arrow_billing_syncs_count
      parameters:
      - in: query
        name: arrow_state
        schema:
          type: string
      - in: query
        name: customer_mapping
        schema:
          type: string
      - in: query
        name: customer_mapping_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: report_period
        schema:
          type: string
      - in: query
        name: report_period_from
        schema:
          type: string
      - in: query
        name: report_period_to
        schema:
          type: string
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: integer
      - in: query
        name: statement_reference
        schema:
          type: string
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/admin/arrow/billing-syncs/{uuid}/:
    get:
      operationId: admin_arrow_billing_syncs_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowBillingSync'
          description: ''
  /api/admin/arrow/billing-syncs/cleanup_consumption/:
    post:
      operationId: admin_arrow_billing_syncs_cleanup_consumption
      description: Delete consumption records with optional dry-run preview.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CleanupConsumptionRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CleanupConsumptionResponse'
          description: ''
  /api/admin/arrow/billing-syncs/consumption_statistics/:
    get:
      operationId: admin_arrow_billing_syncs_consumption_statistics_retrieve
      description: Get consumption statistics.
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsumptionStatisticsResponse'
          description: ''
    head:
      operationId: admin_arrow_billing_syncs_consumption_statistics_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/admin/arrow/billing-syncs/consumption_status/:
    get:
      operationId: admin_arrow_billing_syncs_consumption_status_retrieve
      description: Get current consumption sync status.
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsumptionStatusResponse'
          description: ''
    head:
      operationId: admin_arrow_billing_syncs_consumption_status_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/admin/arrow/billing-syncs/fetch_billing_export/:
    post:
      operationId: admin_arrow_billing_syncs_fetch_billing_export
      description: Fetch raw billing export from Arrow API.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FetchBillingExportRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchBillingExportResponse'
          description: ''
  /api/admin/arrow/billing-syncs/fetch_consumption/:
    post:
      operationId: admin_arrow_billing_syncs_fetch_consumption
      description: Fetch raw consumption data from Arrow API.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FetchConsumptionRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchConsumptionResponse'
          description: ''
  /api/admin/arrow/billing-syncs/fetch_license_info/:
    post:
      operationId: admin_arrow_billing_syncs_fetch_license_info
      description: Fetch license details from Arrow API.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FetchLicenseInfoRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchLicenseInfoResponse'
          description: ''
  /api/admin/arrow/billing-syncs/pause_sync/:
    post:
      operationId: admin_arrow_billing_syncs_pause_sync
      description: Pause consumption sync operations.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SyncPauseRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SyncPauseResponse'
          description: ''
  /api/admin/arrow/billing-syncs/pending_records/:
    get:
      operationId: admin_arrow_billing_syncs_pending_records_list
      description: List pending consumption records (not yet finalized).
      parameters:
      - in: query
        name: arrow_state
        schema:
          type: string
      - in: query
        name: customer_mapping
        schema:
          type: string
      - in: query
        name: customer_mapping_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: report_period
        schema:
          type: string
      - in: query
        name: report_period_from
        schema:
          type: string
      - in: query
        name: report_period_to
        schema:
          type: string
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: integer
      - in: query
        name: statement_reference
        schema:
          type: string
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PendingRecord'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: admin_arrow_billing_syncs_pending_records_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: arrow_state
        schema:
          type: string
      - in: query
        name: customer_mapping
        schema:
          type: string
      - in: query
        name: customer_mapping_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: report_period
        schema:
          type: string
      - in: query
        name: report_period_from
        schema:
          type: string
      - in: query
        name: report_period_to
        schema:
          type: string
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: integer
      - in: query
        name: statement_reference
        schema:
          type: string
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/admin/arrow/billing-syncs/reconcile/:
    post:
      operationId: admin_arrow_billing_syncs_reconcile
      description: Trigger reconciliation for a specific period.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReconcileRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          description: No response body
  /api/admin/arrow/billing-syncs/resume_sync/:
    post:
      operationId: admin_arrow_billing_syncs_resume_sync
      description: Resume consumption sync operations.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SyncPauseRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SyncPauseResponse'
          description: ''
  /api/admin/arrow/billing-syncs/sync_resource_historical_consumption/:
    post:
      operationId: admin_arrow_billing_syncs_sync_resource_historical_consumption
      description: Sync historical consumption for a specific resource from Arrow.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SyncResourceHistoricalConsumptionRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SyncResourceHistoricalConsumptionResponse'
          description: ''
  /api/admin/arrow/billing-syncs/sync_resources/:
    post:
      operationId: admin_arrow_billing_syncs_sync_resources
      description: Sync Arrow IAAS subscriptions to Waldur Resources. Matches subscriptions
        by Vendor Subscription ID to resource backend_id. Updates resource report
        and current_usages fields. With force_import=True, auto-creates Customers
        and Projects from Arrow data.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SyncResourcesRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SyncResourcesResponse'
          description: ''
  /api/admin/arrow/billing-syncs/trigger_consumption_sync/:
    post:
      operationId: admin_arrow_billing_syncs_trigger_consumption_sync
      description: Trigger consumption sync for a specific period.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerConsumptionSyncRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          description: No response body
  /api/admin/arrow/billing-syncs/trigger_reconciliation/:
    post:
      operationId: admin_arrow_billing_syncs_trigger_reconciliation
      description: Trigger reconciliation (check billing export and apply adjustments).
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReconcileRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          description: No response body
  /api/admin/arrow/billing-syncs/trigger_sync/:
    post:
      operationId: admin_arrow_billing_syncs_trigger_sync
      description: Trigger billing sync for a specific period.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerSyncRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          description: No response body
  /api/admin/arrow/consumption-records/:
    get:
      operationId: admin_arrow_consumption_records_list
      parameters:
      - in: query
        name: billing_period
        schema:
          type: string
          format: date
      - in: query
        name: billing_period_from
        schema:
          type: string
          format: date
      - in: query
        name: billing_period_to
        schema:
          type: string
          format: date
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: is_finalized
        schema:
          type: boolean
      - in: query
        name: is_reconciled
        schema:
          type: boolean
      - in: query
        name: license_reference
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: resource
        schema:
          type: string
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArrowConsumptionRecord'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: admin_arrow_consumption_records_count
      parameters:
      - in: query
        name: billing_period
        schema:
          type: string
          format: date
      - in: query
        name: billing_period_from
        schema:
          type: string
          format: date
      - in: query
        name: billing_period_to
        schema:
          type: string
          format: date
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: is_finalized
        schema:
          type: boolean
      - in: query
        name: is_reconciled
        schema:
          type: boolean
      - in: query
        name: license_reference
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: resource
        schema:
          type: string
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/admin/arrow/consumption-records/{uuid}/:
    get:
      operationId: admin_arrow_consumption_records_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowConsumptionRecord'
          description: ''
  /api/admin/arrow/customer-mappings/:
    get:
      operationId: admin_arrow_customer_mappings_list
      parameters:
      - in: query
        name: arrow_company_name
        schema:
          type: string
      - in: query
        name: arrow_reference
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: waldur_customer
        schema:
          type: string
      - in: query
        name: waldur_customer_uuid
        schema:
          type: string
          format: uuid
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArrowCustomerMapping'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: admin_arrow_customer_mappings_create
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArrowCustomerMappingCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowCustomerMappingCreate'
          description: ''
    head:
      operationId: admin_arrow_customer_mappings_count
      parameters:
      - in: query
        name: arrow_company_name
        schema:
          type: string
      - in: query
        name: arrow_reference
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: waldur_customer
        schema:
          type: string
      - in: query
        name: waldur_customer_uuid
        schema:
          type: string
          format: uuid
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/admin/arrow/customer-mappings/{uuid}/:
    get:
      operationId: admin_arrow_customer_mappings_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowCustomerMapping'
          description: ''
    put:
      operationId: admin_arrow_customer_mappings_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArrowCustomerMappingRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowCustomerMapping'
          description: ''
    patch:
      operationId: admin_arrow_customer_mappings_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedArrowCustomerMappingRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowCustomerMapping'
          description: ''
    delete:
      operationId: admin_arrow_customer_mappings_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/admin/arrow/customer-mappings/{uuid}/billing_summary/:
    get:
      operationId: admin_arrow_customer_mappings_billing_summary_retrieve
      description: Get billing and consumption summary for this customer mapping.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerBillingSummaryResponse'
          description: ''
  /api/admin/arrow/customer-mappings/{uuid}/discover_licenses/:
    get:
      operationId: admin_arrow_customer_mappings_discover_licenses_retrieve
      description: Discover Arrow licenses for this customer and show linkable Waldur
        resources.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscoverLicensesResponse'
          description: ''
  /api/admin/arrow/customer-mappings/{uuid}/fetch_arrow_data/:
    get:
      operationId: admin_arrow_customer_mappings_fetch_arrow_data_retrieve
      description: Fetch fresh consumption and billing data from Arrow API for this
        customer.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FetchCustomerArrowDataResponse'
          description: ''
  /api/admin/arrow/customer-mappings/{uuid}/import_license/:
    post:
      operationId: admin_arrow_customer_mappings_import_license
      description: Import an Arrow license as a new Waldur resource.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportLicenseRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImportLicenseResponse'
          description: ''
  /api/admin/arrow/customer-mappings/{uuid}/link_resource/:
    post:
      operationId: admin_arrow_customer_mappings_link_resource
      description: Link a Waldur resource to an Arrow license by setting its backend_id.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkResourceRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkResourceResponse'
          description: ''
  /api/admin/arrow/customer-mappings/available_customers/:
    get:
      operationId: admin_arrow_customer_mappings_available_customers_retrieve
      description: Get available Arrow customers that are not yet mapped, with suggestions
        for Waldur organization matches.
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvailableArrowCustomersResponse'
          description: ''
    head:
      operationId: admin_arrow_customer_mappings_available_customers_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/admin/arrow/customer-mappings/sync_from_arrow/:
    post:
      operationId: admin_arrow_customer_mappings_sync_from_arrow
      description: Sync customer list from Arrow and update arrow_company_name.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SyncFromArrowRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/admin/arrow/settings/:
    get:
      operationId: admin_arrow_settings_list
      parameters:
      - in: query
        name: is_active
        schema:
          type: boolean
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: sync_enabled
        schema:
          type: boolean
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArrowSettings'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: admin_arrow_settings_create
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArrowSettingsCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowSettingsCreate'
          description: ''
    head:
      operationId: admin_arrow_settings_count
      parameters:
      - in: query
        name: is_active
        schema:
          type: boolean
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: sync_enabled
        schema:
          type: boolean
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/admin/arrow/settings/{uuid}/:
    get:
      operationId: admin_arrow_settings_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowSettings'
          description: ''
    put:
      operationId: admin_arrow_settings_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArrowSettingsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowSettings'
          description: ''
    patch:
      operationId: admin_arrow_settings_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedArrowSettingsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowSettings'
          description: ''
    delete:
      operationId: admin_arrow_settings_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/admin/arrow/settings/discover_customers/:
    post:
      operationId: admin_arrow_settings_discover_customers
      description: Discover Arrow customers and suggest mappings to Waldur customers.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverCustomersRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscoverCustomersResponse'
          description: ''
  /api/admin/arrow/settings/preview_settings/:
    post:
      operationId: admin_arrow_settings_preview_settings
      description: Preview settings configuration before saving.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PreviewSettingsRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreviewSettingsResponse'
          description: ''
  /api/admin/arrow/settings/save_settings/:
    post:
      operationId: admin_arrow_settings_save_settings
      description: Save Arrow settings and customer mappings.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SaveSettingsRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SaveSettingsResponse'
          description: ''
  /api/admin/arrow/settings/validate_credentials/:
    post:
      operationId: admin_arrow_settings_validate_credentials
      description: Validate Arrow API credentials without saving them.
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArrowCredentialsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowCredentialsValidationResponse'
          description: ''
  /api/admin/arrow/vendor-offering-mappings/:
    get:
      operationId: admin_arrow_vendor_offering_mappings_list
      parameters:
      - in: query
        name: arrow_vendor_name
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArrowVendorOfferingMapping'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: admin_arrow_vendor_offering_mappings_create
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArrowVendorOfferingMappingCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowVendorOfferingMappingCreate'
          description: ''
    head:
      operationId: admin_arrow_vendor_offering_mappings_count
      parameters:
      - in: query
        name: arrow_vendor_name
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/admin/arrow/vendor-offering-mappings/{uuid}/:
    get:
      operationId: admin_arrow_vendor_offering_mappings_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowVendorOfferingMapping'
          description: ''
    put:
      operationId: admin_arrow_vendor_offering_mappings_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArrowVendorOfferingMappingRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowVendorOfferingMapping'
          description: ''
    patch:
      operationId: admin_arrow_vendor_offering_mappings_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedArrowVendorOfferingMappingRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrowVendorOfferingMapping'
          description: ''
    delete:
      operationId: admin_arrow_vendor_offering_mappings_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/admin/arrow/vendor-offering-mappings/vendor_choices/:
    get:
      operationId: admin_arrow_vendor_offering_mappings_vendor_choices_list
      description: Get vendor names from Arrow catalog API (IAAS category).
      parameters:
      - in: query
        name: arrow_vendor_name
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VendorNameChoice'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: admin_arrow_vendor_offering_mappings_vendor_choices_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: arrow_vendor_name
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      tags:
      - admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/assignment-batches/:
    get:
      operationId: assignment_batches_list
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -expires_at
            - -sent_at
            - -status
            - created
            - expires_at
            - sent_at
            - status
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: reviewer_pool_entry_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: sent_after
        schema:
          type: string
          format: date-time
      - in: query
        name: sent_before
        schema:
          type: string
          format: date-time
      - in: query
        name: source
        schema:
          type: array
          items:
            type: string
            enum:
            - algorithm
            - manual
        explode: true
        style: form
      - in: query
        name: status
        schema:
          type: array
          items:
            type: string
            enum:
            - cancelled
            - draft
            - expired
            - responded
            - sent
        explode: true
        style: form
      tags:
      - assignment-batches
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AssignmentBatchList'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: assignment_batches_create
      tags:
      - assignment-batches
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignmentBatchRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignmentBatch'
          description: ''
    head:
      operationId: assignment_batches_count
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -expires_at
            - -sent_at
            - -status
            - created
            - expires_at
            - sent_at
            - status
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: reviewer_pool_entry_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: sent_after
        schema:
          type: string
          format: date-time
      - in: query
        name: sent_before
        schema:
          type: string
          format: date-time
      - in: query
        name: source
        schema:
          type: array
          items:
            type: string
            enum:
            - algorithm
            - manual
        explode: true
        style: form
      - in: query
        name: status
        schema:
          type: array
          items:
            type: string
            enum:
            - cancelled
            - draft
            - expired
            - responded
            - sent
        explode: true
        style: form
      tags:
      - assignment-batches
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/assignment-batches/{uuid}/:
    get:
      operationId: assignment_batches_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-batches
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignmentBatch'
          description: ''
    put:
      operationId: assignment_batches_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-batches
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignmentBatchRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignmentBatch'
          description: ''
    patch:
      operationId: assignment_batches_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-batches
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAssignmentBatchRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignmentBatch'
          description: ''
    delete:
      operationId: assignment_batches_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-batches
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/assignment-batches/{uuid}/cancel/:
    post:
      operationId: assignment_batches_cancel
      description: Cancel this assignment batch.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-batches
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - call.manager
  /api/assignment-batches/{uuid}/extend-deadline/:
    post:
      operationId: assignment_batches_extend_deadline
      description: Extend or modify the expiration date for an assignment batch. Can
        reactivate expired batches by setting a future deadline.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-batches
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExtendDeadlineRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtendDeadlineResponse'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - call.manager
  /api/assignment-batches/{uuid}/send/:
    post:
      operationId: assignment_batches_send
      description: Send this assignment batch invitation to the reviewer.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-batches
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendAssignmentBatchRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendAssignmentBatchResponse'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - call.manager
  /api/assignment-items/:
    get:
      operationId: assignment_items_list
      parameters:
      - in: query
        name: batch_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: has_coi
        schema:
          type: boolean
      - in: query
        name: min_affinity_score
        schema:
          type: number
          format: float
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -affinity_score
            - -created
            - -responded_at
            - -status
            - affinity_score
            - created
            - responded_at
            - status
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: proposal_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: status
        schema:
          type: array
          items:
            type: string
            enum:
            - accepted
            - coi_blocked
            - declined
            - expired
            - pending
            - reassigned
        explode: true
        style: form
      tags:
      - assignment-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AssignmentItem'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: assignment_items_create
      tags:
      - assignment-items
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignmentItemRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignmentItem'
          description: ''
    head:
      operationId: assignment_items_count
      parameters:
      - in: query
        name: batch_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: has_coi
        schema:
          type: boolean
      - in: query
        name: min_affinity_score
        schema:
          type: number
          format: float
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -affinity_score
            - -created
            - -responded_at
            - -status
            - affinity_score
            - created
            - responded_at
            - status
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: proposal_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: status
        schema:
          type: array
          items:
            type: string
            enum:
            - accepted
            - coi_blocked
            - declined
            - expired
            - pending
            - reassigned
        explode: true
        style: form
      tags:
      - assignment-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/assignment-items/{uuid}/:
    get:
      operationId: assignment_items_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignmentItem'
          description: ''
    put:
      operationId: assignment_items_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-items
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignmentItemRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignmentItem'
          description: ''
    patch:
      operationId: assignment_items_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-items
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAssignmentItemRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignmentItem'
          description: ''
    delete:
      operationId: assignment_items_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/assignment-items/{uuid}/accept/:
    post:
      operationId: assignment_items_accept
      description: Accept this assignment item. Creates a Review record.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignmentItemResponse'
          description: ''
  /api/assignment-items/{uuid}/decline/:
    post:
      operationId: assignment_items_decline
      description: Decline this assignment item.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-items
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignmentItemDeclineRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignmentItemResponse'
          description: ''
  /api/assignment-items/{uuid}/reassign/:
    post:
      operationId: assignment_items_reassign
      description: Reassign this item to a different reviewer.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-items
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReassignItemRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReassignItemResponse'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - batch.call.manager
  /api/assignment-items/{uuid}/suggest_alternatives/:
    get:
      operationId: assignment_items_suggest_alternatives_retrieve
      description: Suggest alternative reviewers for a declined assignment.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - assignment-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestAlternativeReviewers'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - batch.call.manager
  /api/auth-tokens/:
    get:
      operationId: auth_tokens_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - auth-tokens
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AuthToken'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: auth_tokens_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - auth-tokens
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/auth-tokens/{user_id}/:
    get:
      operationId: auth_tokens_retrieve
      parameters:
      - in: path
        name: user_id
        schema:
          type: integer
        required: true
      tags:
      - auth-tokens
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthToken'
          description: ''
    delete:
      operationId: auth_tokens_destroy
      parameters:
      - in: path
        name: user_id
        schema:
          type: integer
        required: true
      tags:
      - auth-tokens
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/auth-valimo/:
    post:
      operationId: auth_valimo_create
      tags:
      - auth-valimo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthResultRequest'
            examples:
              ValidRequest:
                value:
                  phone: '1234567890'
                summary: Start PKI login process
                description: Example of a valid request to start PKI login process
                  with user's phone.
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResult'
          description: ''
  /api/auth-valimo/result/:
    post:
      operationId: auth_valimo_result
      description: "\n        To get PKI login status and details - issue post request\
        \ against /api/auth-valimo/result/\n        with uuid in parameters.\n\n \
        \       Possible states:\n         - Scheduled - login process is scheduled\n\
        \         - Processing - login is in progress\n         - OK - login was successful.\
        \ Response will contain token.\n         - Canceled - login was canceled by\
        \ user or timed out. Field details will contain additional info.\n       \
        \  - Erred - unexpected exception happened during login process.\n        "
      tags:
      - auth-valimo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthResultUUIDRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResult'
              examples:
                SuccessfulLogin:
                  value:
                    uuid: e42473f39c844333a80107e139a4dd06
                    token: null
                    message: '1234'
                    state: OK
                    error_message: ''
                    details: User authenticated.
                  summary: Successful login
                  description: Example of response for successful login.
                CanceledLogin:
                  value:
                    uuid: e42473f39c844333a80107e139a4dd06
                    token: null
                    message: '1234'
                    state: Canceled
                    error_message: ''
                    details: User cancel.
                  summary: Canceled login
                  description: Example of response when login was canceled by user.
          description: ''
  /api/autoprovisioning-rules/:
    get:
      operationId: autoprovisioning_rules_list
      description: Manage autoprovisioning rules.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - autoprovisioning-rules
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Rule'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: autoprovisioning_rules_create
      description: Manage autoprovisioning rules.
      tags:
      - autoprovisioning-rules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RuleRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
          description: ''
    head:
      operationId: autoprovisioning_rules_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - autoprovisioning-rules
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/autoprovisioning-rules/{uuid}/:
    get:
      operationId: autoprovisioning_rules_retrieve
      description: Manage autoprovisioning rules.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - autoprovisioning-rules
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
          description: ''
    put:
      operationId: autoprovisioning_rules_update
      description: Manage autoprovisioning rules.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - autoprovisioning-rules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RuleRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
          description: ''
    patch:
      operationId: autoprovisioning_rules_partial_update
      description: Manage autoprovisioning rules.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - autoprovisioning-rules
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRuleRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
          description: ''
    delete:
      operationId: autoprovisioning_rules_destroy
      description: Manage autoprovisioning rules.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - autoprovisioning-rules
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/aws-images/:
    get:
      operationId: aws_images_list
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: region
        schema:
          type: string
          format: uuid
      tags:
      - aws-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AwsImage'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: aws_images_count
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: region
        schema:
          type: string
          format: uuid
      tags:
      - aws-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/aws-images/{uuid}/:
    get:
      operationId: aws_images_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwsImage'
          description: ''
  /api/aws-instances/:
    get:
      operationId: aws_instances_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - cores
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - disk
            - error_message
            - error_traceback
            - external_ips
            - image
            - image_name
            - internal_ips
            - is_limit_based
            - is_usage_based
            - key_fingerprint
            - key_name
            - latitude
            - longitude
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - min_disk
            - min_ram
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - ram
            - region
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - ssh_public_key
            - start_time
            - state
            - url
            - user_data
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - aws-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AwsInstance'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: aws_instances_create
      tags:
      - aws-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AwsInstanceRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwsInstance'
          description: ''
    head:
      operationId: aws_instances_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - aws-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/aws-instances/{uuid}/:
    get:
      operationId: aws_instances_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - cores
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - disk
            - error_message
            - error_traceback
            - external_ips
            - image
            - image_name
            - internal_ips
            - is_limit_based
            - is_usage_based
            - key_fingerprint
            - key_name
            - latitude
            - longitude
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - min_disk
            - min_ram
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - ram
            - region
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - ssh_public_key
            - start_time
            - state
            - url
            - user_data
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwsInstance'
          description: ''
    put:
      operationId: aws_instances_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AwsInstanceRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwsInstance'
          description: ''
    patch:
      operationId: aws_instances_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAwsInstanceRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwsInstance'
          description: ''
    delete:
      operationId: aws_instances_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/aws-instances/{uuid}/pull/:
    post:
      operationId: aws_instances_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/aws-instances/{uuid}/resize/:
    post:
      operationId: aws_instances_resize
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AwsInstanceResizeRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwsInstanceResize'
          description: ''
  /api/aws-instances/{uuid}/restart/:
    post:
      operationId: aws_instances_restart
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/aws-instances/{uuid}/set_erred/:
    post:
      operationId: aws_instances_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/aws-instances/{uuid}/set_ok/:
    post:
      operationId: aws_instances_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/aws-instances/{uuid}/start/:
    post:
      operationId: aws_instances_start
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/aws-instances/{uuid}/stop/:
    post:
      operationId: aws_instances_stop
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/aws-instances/{uuid}/unlink/:
    post:
      operationId: aws_instances_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/aws-regions/:
    get:
      operationId: aws_regions_list
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - aws-regions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AwsRegion'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: aws_regions_count
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - aws-regions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/aws-regions/{uuid}/:
    get:
      operationId: aws_regions_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-regions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwsRegion'
          description: ''
  /api/aws-sizes/:
    get:
      operationId: aws_sizes_list
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: region
        schema:
          type: string
          format: uuid
      tags:
      - aws-sizes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AwsSize'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: aws_sizes_count
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: region
        schema:
          type: string
          format: uuid
      tags:
      - aws-sizes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/aws-sizes/{uuid}/:
    get:
      operationId: aws_sizes_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-sizes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwsSize'
          description: ''
  /api/aws-volumes/:
    get:
      operationId: aws_volumes_list
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - device
            - error_message
            - error_traceback
            - instance
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - region
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - state
            - url
            - uuid
            - volume_type
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - aws-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AwsVolume'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: aws_volumes_create
      tags:
      - aws-volumes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AwsVolumeRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwsVolume'
          description: ''
    head:
      operationId: aws_volumes_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - aws-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/aws-volumes/{uuid}/:
    get:
      operationId: aws_volumes_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - device
            - error_message
            - error_traceback
            - instance
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - region
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - state
            - url
            - uuid
            - volume_type
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwsVolume'
          description: ''
    put:
      operationId: aws_volumes_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-volumes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AwsVolumeRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwsVolume'
          description: ''
    patch:
      operationId: aws_volumes_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwsVolume'
          description: ''
    delete:
      operationId: aws_volumes_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/aws-volumes/{uuid}/attach/:
    post:
      operationId: aws_volumes_attach
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-volumes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AwsVolumeAttachRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwsVolumeAttach'
          description: ''
  /api/aws-volumes/{uuid}/detach/:
    post:
      operationId: aws_volumes_detach
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/aws-volumes/{uuid}/pull/:
    post:
      operationId: aws_volumes_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/aws-volumes/{uuid}/set_erred/:
    post:
      operationId: aws_volumes_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-volumes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/aws-volumes/{uuid}/set_ok/:
    post:
      operationId: aws_volumes_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/aws-volumes/{uuid}/unlink/:
    post:
      operationId: aws_volumes_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - aws-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/azure-images/:
    get:
      operationId: azure_images_list
      parameters:
      - in: query
        name: location
        schema:
          type: string
      - in: query
        name: location_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - azure-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AzureImage'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: azure_images_count
      parameters:
      - in: query
        name: location
        schema:
          type: string
      - in: query
        name: location_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - azure-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/azure-images/{uuid}/:
    get:
      operationId: azure_images_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureImage'
          description: ''
  /api/azure-locations/:
    get:
      operationId: azure_locations_list
      parameters:
      - in: query
        name: has_sizes
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - azure-locations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AzureLocation'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: azure_locations_count
      parameters:
      - in: query
        name: has_sizes
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - azure-locations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/azure-locations/{uuid}/:
    get:
      operationId: azure_locations_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-locations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureLocation'
          description: ''
  /api/azure-public-ips/:
    get:
      operationId: azure_public_ips_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - location
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_group
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: resource_group
        schema:
          type: string
      - in: query
        name: resource_group_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - azure-public-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AzurePublicIP'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: azure_public_ips_create
      tags:
      - azure-public-ips
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzurePublicIPRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzurePublicIP'
          description: ''
    head:
      operationId: azure_public_ips_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: resource_group
        schema:
          type: string
      - in: query
        name: resource_group_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - azure-public-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/azure-public-ips/{uuid}/:
    get:
      operationId: azure_public_ips_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - location
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_group
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-public-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzurePublicIP'
          description: ''
    put:
      operationId: azure_public_ips_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-public-ips
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzurePublicIPRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzurePublicIP'
          description: ''
    patch:
      operationId: azure_public_ips_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-public-ips
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAzurePublicIPRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzurePublicIP'
          description: ''
    delete:
      operationId: azure_public_ips_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-public-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/azure-public-ips/{uuid}/pull/:
    post:
      operationId: azure_public_ips_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-public-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/azure-public-ips/{uuid}/set_erred/:
    post:
      operationId: azure_public_ips_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-public-ips
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/azure-public-ips/{uuid}/set_ok/:
    post:
      operationId: azure_public_ips_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-public-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/azure-public-ips/{uuid}/unlink/:
    post:
      operationId: azure_public_ips_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-public-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/azure-resource-groups/:
    get:
      operationId: azure_resource_groups_list
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - location
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - azure-resource-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AzureResourceGroup'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: azure_resource_groups_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - azure-resource-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/azure-resource-groups/{uuid}/:
    get:
      operationId: azure_resource_groups_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - location
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-resource-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureResourceGroup'
          description: ''
  /api/azure-sizes/:
    get:
      operationId: azure_sizes_list
      parameters:
      - in: query
        name: location
        schema:
          type: string
      - in: query
        name: location_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: zone
        schema:
          type: integer
      tags:
      - azure-sizes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AzureSize'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: azure_sizes_count
      parameters:
      - in: query
        name: location
        schema:
          type: string
      - in: query
        name: location_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: zone
        schema:
          type: integer
      tags:
      - azure-sizes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/azure-sizes/{uuid}/:
    get:
      operationId: azure_sizes_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sizes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureSize'
          description: ''
  /api/azure-sql-databases/:
    get:
      operationId: azure_sql_databases_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - charset
            - collation
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - location_name
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_group_name
            - resource_type
            - server
            - server_marketplace_uuid
            - server_name
            - server_uuid
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: resource_group
        schema:
          type: string
      - in: query
        name: resource_group_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: server
        schema:
          type: string
      - in: query
        name: server_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - azure-sql-databases
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AzureSqlDatabase'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: azure_sql_databases_create
      tags:
      - azure-sql-databases
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzureSqlDatabaseRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureSqlDatabase'
          description: ''
    head:
      operationId: azure_sql_databases_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: resource_group
        schema:
          type: string
      - in: query
        name: resource_group_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: server
        schema:
          type: string
      - in: query
        name: server_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - azure-sql-databases
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/azure-sql-databases/{uuid}/:
    get:
      operationId: azure_sql_databases_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - charset
            - collation
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - location_name
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_group_name
            - resource_type
            - server
            - server_marketplace_uuid
            - server_name
            - server_uuid
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-databases
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureSqlDatabase'
          description: ''
    put:
      operationId: azure_sql_databases_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-databases
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzureSqlDatabaseRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureSqlDatabase'
          description: ''
    patch:
      operationId: azure_sql_databases_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-databases
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAzureSqlDatabaseRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureSqlDatabase'
          description: ''
    delete:
      operationId: azure_sql_databases_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-databases
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/azure-sql-databases/{uuid}/pull/:
    post:
      operationId: azure_sql_databases_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-databases
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/azure-sql-databases/{uuid}/set_erred/:
    post:
      operationId: azure_sql_databases_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-databases
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/azure-sql-databases/{uuid}/set_ok/:
    post:
      operationId: azure_sql_databases_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-databases
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/azure-sql-databases/{uuid}/unlink/:
    post:
      operationId: azure_sql_databases_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-databases
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/azure-sql-servers/:
    get:
      operationId: azure_sql_servers_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - fqdn
            - is_limit_based
            - is_usage_based
            - location
            - location_name
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - password
            - project
            - project_name
            - project_uuid
            - resource_group
            - resource_group_name
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - storage_mb
            - url
            - username
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: resource_group
        schema:
          type: string
      - in: query
        name: resource_group_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - azure-sql-servers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AzureSqlServer'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: azure_sql_servers_create
      tags:
      - azure-sql-servers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzureSqlServerRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureSqlServer'
          description: ''
    head:
      operationId: azure_sql_servers_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: resource_group
        schema:
          type: string
      - in: query
        name: resource_group_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - azure-sql-servers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/azure-sql-servers/{uuid}/:
    get:
      operationId: azure_sql_servers_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - fqdn
            - is_limit_based
            - is_usage_based
            - location
            - location_name
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - password
            - project
            - project_name
            - project_uuid
            - resource_group
            - resource_group_name
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - storage_mb
            - url
            - username
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-servers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureSqlServer'
          description: ''
    put:
      operationId: azure_sql_servers_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-servers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzureSqlServerRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureSqlServer'
          description: ''
    patch:
      operationId: azure_sql_servers_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-servers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAzureSqlServerRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureSqlServer'
          description: ''
    delete:
      operationId: azure_sql_servers_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-servers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/azure-sql-servers/{uuid}/create_database/:
    post:
      operationId: azure_sql_servers_create_database
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-servers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzureSqlDatabaseCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureSqlDatabaseCreate'
          description: ''
  /api/azure-sql-servers/{uuid}/pull/:
    post:
      operationId: azure_sql_servers_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-servers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/azure-sql-servers/{uuid}/set_erred/:
    post:
      operationId: azure_sql_servers_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-servers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/azure-sql-servers/{uuid}/set_ok/:
    post:
      operationId: azure_sql_servers_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-servers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/azure-sql-servers/{uuid}/unlink/:
    post:
      operationId: azure_sql_servers_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-sql-servers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/azure-virtualmachines/:
    get:
      operationId: azure_virtualmachines_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - cores
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - disk
            - error_message
            - error_traceback
            - external_ips
            - image
            - image_name
            - internal_ips
            - is_limit_based
            - is_usage_based
            - key_fingerprint
            - key_name
            - latitude
            - location
            - location_name
            - longitude
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - min_disk
            - min_ram
            - modified
            - name
            - password
            - project
            - project_name
            - project_uuid
            - ram
            - resource_group
            - resource_group_name
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - size_name
            - ssh_public_key
            - start_time
            - state
            - url
            - user_data
            - username
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: resource_group
        schema:
          type: string
      - in: query
        name: resource_group_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - azure-virtualmachines
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AzureVirtualMachine'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: azure_virtualmachines_create
      tags:
      - azure-virtualmachines
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzureVirtualMachineRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureVirtualMachine'
          description: ''
    head:
      operationId: azure_virtualmachines_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: resource_group
        schema:
          type: string
      - in: query
        name: resource_group_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - azure-virtualmachines
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/azure-virtualmachines/{uuid}/:
    get:
      operationId: azure_virtualmachines_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - cores
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - disk
            - error_message
            - error_traceback
            - external_ips
            - image
            - image_name
            - internal_ips
            - is_limit_based
            - is_usage_based
            - key_fingerprint
            - key_name
            - latitude
            - location
            - location_name
            - longitude
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - min_disk
            - min_ram
            - modified
            - name
            - password
            - project
            - project_name
            - project_uuid
            - ram
            - resource_group
            - resource_group_name
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - size_name
            - ssh_public_key
            - start_time
            - state
            - url
            - user_data
            - username
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-virtualmachines
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureVirtualMachine'
          description: ''
    put:
      operationId: azure_virtualmachines_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-virtualmachines
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AzureVirtualMachineRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureVirtualMachine'
          description: ''
    patch:
      operationId: azure_virtualmachines_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-virtualmachines
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAzureVirtualMachineRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AzureVirtualMachine'
          description: ''
    delete:
      operationId: azure_virtualmachines_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-virtualmachines
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/azure-virtualmachines/{uuid}/pull/:
    post:
      operationId: azure_virtualmachines_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-virtualmachines
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/azure-virtualmachines/{uuid}/restart/:
    post:
      operationId: azure_virtualmachines_restart
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-virtualmachines
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/azure-virtualmachines/{uuid}/set_erred/:
    post:
      operationId: azure_virtualmachines_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-virtualmachines
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/azure-virtualmachines/{uuid}/set_ok/:
    post:
      operationId: azure_virtualmachines_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-virtualmachines
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/azure-virtualmachines/{uuid}/start/:
    post:
      operationId: azure_virtualmachines_start
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-virtualmachines
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/azure-virtualmachines/{uuid}/stop/:
    post:
      operationId: azure_virtualmachines_stop
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-virtualmachines
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/azure-virtualmachines/{uuid}/unlink/:
    post:
      operationId: azure_virtualmachines_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - azure-virtualmachines
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/backend-resource-requests/:
    get:
      operationId: backend_resource_requests_list
      description: Returns a paginated list of requests for backend resources.
      summary: List backend resource requests
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: finished
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: started
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Done
            - Erred
            - Processing
            - Sent
        description: |+
          Backend resource request state

        explode: true
        style: form
      tags:
      - backend-resource-requests
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BackendResourceReq'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: backend_resource_requests_create
      description: Creates a new request to fetch a list of importable resources from
        a backend. This is typically used by staff to trigger a site agent to report
        available resources.
      summary: Create a backend resource request
      tags:
      - backend-resource-requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BackendResourceReqRequest'
            examples:
              RequestResourcesForAnOffering:
                value:
                  offering: a1b2c3d4-e5f6-7890-1234-567890abcdef
                summary: Request resources for an offering
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BackendResourceReq'
              examples:
                RequestResourcesForAnOffering:
                  value:
                    offering: a1b2c3d4-e5f6-7890-1234-567890abcdef
                  summary: Request resources for an offering
          description: ''
    head:
      operationId: backend_resource_requests_count
      description: Get number of items in the collection matching the request parameters.
      summary: List backend resource requests
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: finished
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: started
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Done
            - Erred
            - Processing
            - Sent
        description: |+
          Backend resource request state

        explode: true
        style: form
      tags:
      - backend-resource-requests
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/backend-resource-requests/{uuid}/:
    get:
      operationId: backend_resource_requests_retrieve
      description: Returns the details of a specific backend resource request.
      summary: Retrieve a backend resource request
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - backend-resource-requests
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BackendResourceReq'
          description: ''
  /api/backend-resource-requests/{uuid}/set_done/:
    post:
      operationId: backend_resource_requests_set_done
      description: Transitions the request state from 'Processing' to 'Done'. This
        is used by a site agent to signal that it has successfully reported all available
        resources.
      summary: Mark a request as done
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - backend-resource-requests
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
          description: ''
      x-permissions:
      - permission: OFFERING.MANAGE_BACKEND_RESOURCES
        scopes:
        - offering
        - offering.customer
  /api/backend-resource-requests/{uuid}/set_erred/:
    post:
      operationId: backend_resource_requests_set_erred
      description: Transitions the request state to 'Erred'. This is used by a site
        agent to report a failure during the resource fetching process. An error message
        and traceback should be provided.
      summary: Mark a request as erred
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - backend-resource-requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BackendResourceRequestSetErredRequest'
            examples:
              ReportAnError:
                value:
                  error_message: Failed to connect to the backend API.
                  error_traceback: Traceback(...)
                summary: Report an error
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
              examples:
                ReportAnError:
                  value:
                    error_message: Failed to connect to the backend API.
                    error_traceback: Traceback(...)
                  summary: Report an error
          description: ''
      x-permissions:
      - permission: OFFERING.MANAGE_BACKEND_RESOURCES
        scopes:
        - offering
        - offering.customer
  /api/backend-resource-requests/{uuid}/start_processing/:
    post:
      operationId: backend_resource_requests_start_processing
      description: Transitions the request state from 'Sent' to 'Processing'. This
        is used by a site agent to acknowledge that it has started fetching the resource
        list.
      summary: Start processing a request
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - backend-resource-requests
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
          description: ''
      x-permissions:
      - permission: OFFERING.MANAGE_BACKEND_RESOURCES
        scopes:
        - offering
        - offering.customer
  /api/backend-resources/:
    get:
      operationId: backend_resources_list
      description: Returns a paginated list of backend resources that are available
        for import. This endpoint is typically used by site agents to see which resources
        they have reported.
      summary: List backend resources
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      tags:
      - backend-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BackendResource'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
      x-permissions:
      - permission: OFFERING.MANAGE_BACKEND_RESOURCES
        scopes:
        - offering
        - offering.customer
    post:
      operationId: backend_resources_create
      description: Creates a new backend resource record. This is typically done by
        a site agent to report a resource that is available for import into the marketplace.
      summary: Create a backend resource
      tags:
      - backend-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BackendResourceRequest'
            examples:
              CreateABackendResource:
                value:
                  name: my-backend-vm-123
                  project: a1b2c3d4-e5f6-7890-1234-567890abcdef
                  offering: b2c3d4e5-f678-9012-3456-7890abcdef12
                  backend_id: vm-backend-uuid-5678
                  backend_metadata:
                    cpu_cores: 4
                    ram_gb: 8
                    storage_gb: 100
                summary: Example of creating a backend resource for a specific offering
                  and project.
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BackendResource'
              examples:
                CreateABackendResource:
                  value:
                    name: my-backend-vm-123
                    project: a1b2c3d4-e5f6-7890-1234-567890abcdef
                    offering: b2c3d4e5-f678-9012-3456-7890abcdef12
                    backend_id: vm-backend-uuid-5678
                    backend_metadata:
                      cpu_cores: 4
                      ram_gb: 8
                      storage_gb: 100
                  summary: Example of creating a backend resource for a specific offering
                    and project.
          description: ''
    head:
      operationId: backend_resources_count
      description: Get number of items in the collection matching the request parameters.
      summary: List backend resources
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      tags:
      - backend-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.MANAGE_BACKEND_RESOURCES
        scopes:
        - offering
        - offering.customer
  /api/backend-resources/{uuid}/:
    get:
      operationId: backend_resources_retrieve
      description: Returns the details of a specific backend resource.
      summary: Retrieve a backend resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - backend-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BackendResource'
          description: ''
      x-permissions:
      - permission: OFFERING.MANAGE_BACKEND_RESOURCES
        scopes:
        - offering
        - offering.customer
    delete:
      operationId: backend_resources_destroy
      description: Deletes a backend resource record. This is typically done when
        the resource is no longer available for import.
      summary: Delete a backend resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - backend-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: OFFERING.MANAGE_BACKEND_RESOURCES
        scopes:
        - offering
        - offering.customer
  /api/backend-resources/{uuid}/import_resource/:
    post:
      operationId: backend_resources_import_resource
      description: "\n        Converts a backend resource into a full marketplace\
        \ resource. This action is restricted to staff users.\n        Upon successful\
        \ import, the original backend resource record is deleted. A fake order in\
        \ the 'done'\n        state is created to represent the import event.\n  \
        \      "
      summary: Import a backend resource (staff only)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - backend-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BackendResourceImportRequest'
            examples:
              ImportWithASpecificPlan:
                value:
                  plan: a1b2c3d4-e5f6-7890-1234-567890abcdef
                summary: Importing a resource and assigning it to a specific plan.
              ImportWithoutAPlan(forPrivateOfferings):
                value: {}
                summary: Importing a resource for a private offering where a plan
                  is not required.
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
              examples:
                ImportWithASpecificPlan:
                  value:
                    plan: a1b2c3d4-e5f6-7890-1234-567890abcdef
                  summary: Importing a resource and assigning it to a specific plan.
                ImportWithoutAPlan(forPrivateOfferings):
                  value: {}
                  summary: Importing a resource for a private offering where a plan
                    is not required.
          description: ''
  /api/billing-total-cost/:
    get:
      operationId: billing_total_cost_retrieve
      parameters:
      - in: query
        name: accounting_is_running
        schema:
          type: boolean
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: month
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: year
        schema:
          type: integer
      tags:
      - billing-total-cost
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TotalCustomerCost'
          description: ''
  /api/booking-offerings/:
    get:
      operationId: booking_offerings_list
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - attributes
            - backend_id
            - backend_metadata
            - billable
            - billing_type_classification
            - category
            - category_title
            - category_uuid
            - citation_count
            - compliance_checklist
            - components
            - country
            - created
            - customer
            - customer_name
            - customer_uuid
            - datacite_doi
            - description
            - endpoints
            - files
            - full_description
            - getting_started
            - googlecalendar
            - has_compliance_requirements
            - image
            - integration_guide
            - is_accessible
            - latitude
            - longitude
            - name
            - options
            - order_count
            - organization_groups
            - parent_description
            - parent_name
            - parent_uuid
            - partitions
            - paused_reason
            - plans
            - plugin_options
            - privacy_policy_link
            - project
            - project_name
            - project_uuid
            - quotas
            - resource_options
            - roles
            - scope
            - scope_error_message
            - scope_name
            - scope_state
            - scope_uuid
            - screenshots
            - secret_options
            - service_attributes
            - shared
            - slug
            - software_catalogs
            - state
            - tags
            - thumbnail
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
            - url
            - user_has_consent
            - uuid
            - vendor_details
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - booking-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Offering'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: booking_offerings_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - booking-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/booking-offerings/{uuid}/:
    get:
      operationId: booking_offerings_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - attributes
            - backend_id
            - backend_metadata
            - billable
            - billing_type_classification
            - category
            - category_title
            - category_uuid
            - citation_count
            - compliance_checklist
            - components
            - country
            - created
            - customer
            - customer_name
            - customer_uuid
            - datacite_doi
            - description
            - endpoints
            - files
            - full_description
            - getting_started
            - googlecalendar
            - has_compliance_requirements
            - image
            - integration_guide
            - is_accessible
            - latitude
            - longitude
            - name
            - options
            - order_count
            - organization_groups
            - parent_description
            - parent_name
            - parent_uuid
            - partitions
            - paused_reason
            - plans
            - plugin_options
            - privacy_policy_link
            - project
            - project_name
            - project_uuid
            - quotas
            - resource_options
            - roles
            - scope
            - scope_error_message
            - scope_name
            - scope_state
            - scope_uuid
            - screenshots
            - secret_options
            - service_attributes
            - shared
            - slug
            - software_catalogs
            - state
            - tags
            - thumbnail
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
            - url
            - user_has_consent
            - uuid
            - vendor_details
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - booking-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Offering'
          description: ''
  /api/booking-offerings/{uuid}/google_calendar_sync/:
    post:
      operationId: booking_offerings_google_calendar_sync
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - booking-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/booking-offerings/{uuid}/share_google_calendar/:
    post:
      operationId: booking_offerings_share_google_calendar
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - booking-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/booking-offerings/{uuid}/unshare_google_calendar/:
    post:
      operationId: booking_offerings_unshare_google_calendar
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - booking-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/booking-resources/:
    get:
      operationId: booking_resources_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: component_count
        schema:
          type: number
        description: Filter by exact number of components
      - in: query
        name: connected_customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: downscaled
        schema:
          type: boolean
        description: Downscaled
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - attributes
            - available_actions
            - backend_id
            - backend_metadata
            - can_terminate
            - category_icon
            - category_title
            - category_uuid
            - consumer_reviewed_by
            - consumer_reviewed_by_full_name
            - consumer_reviewed_by_username
            - created
            - created_by
            - created_by_full_name
            - created_by_username
            - creation_order
            - current_usages
            - customer_name
            - customer_slug
            - customer_uuid
            - description
            - downscaled
            - effective_id
            - end_date
            - end_date_requested_by
            - endpoints
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - last_sync
            - limit_usage
            - limits
            - modified
            - name
            - offering
            - offering_backend_id
            - offering_billable
            - offering_components
            - offering_description
            - offering_image
            - offering_name
            - offering_plugin_options
            - offering_shared
            - offering_slug
            - offering_state
            - offering_thumbnail
            - offering_type
            - offering_uuid
            - options
            - order_in_progress
            - parent_name
            - parent_offering_name
            - parent_offering_slug
            - parent_offering_uuid
            - parent_uuid
            - paused
            - plan
            - plan_description
            - plan_name
            - plan_unit
            - plan_uuid
            - project
            - project_description
            - project_end_date
            - project_end_date_requested_by
            - project_name
            - project_slug
            - project_uuid
            - provider_name
            - provider_slug
            - provider_uuid
            - renewal_date
            - report
            - resource_type
            - resource_uuid
            - restrict_member_access
            - scope
            - service_settings_uuid
            - slots
            - slug
            - state
            - url
            - user_requires_reconsent
            - username
            - uuid
      - in: query
        name: has_terminate_date
        schema:
          type: boolean
        description: Has termination date
      - in: query
        name: is_attached
        schema:
          type: boolean
        description: Filter by attached state
      - in: query
        name: lexis_links_supported
        schema:
          type: boolean
        description: LEXIS links supported
      - in: query
        name: limit_based
        schema:
          type: boolean
        description: Filter by limit-based offerings
      - in: query
        name: limit_component_count
        schema:
          type: number
        description: Filter by exact number of limit-based components
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -schedules
            - -type
            - created
            - name
            - schedules
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_billable
        schema:
          type: boolean
        description: Offering billable
      - in: query
        name: offering_shared
        schema:
          type: boolean
        description: Offering shared
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_type
        schema:
          type: string
        description: Offering type
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: only_limit_based
        schema:
          type: boolean
        description: Filter resources with only limit-based components
      - in: query
        name: only_usage_based
        schema:
          type: boolean
        description: Filter resources with only usage-based components
      - in: query
        name: order_state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - done
            - erred
            - executing
            - pending-consumer
            - pending-project
            - pending-provider
            - pending-start-date
            - rejected
        description: |+
          Order state

        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: paused
        schema:
          type: boolean
        description: Paused
      - in: query
        name: plan_uuid
        schema:
          type: string
          format: uuid
        description: Plan UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by resource UUID, name, slug, backend ID, effective ID,
          IPs or hypervisor
      - in: query
        name: restrict_member_access
        schema:
          type: boolean
        description: Restrict member access
      - in: query
        name: runtime_state
        schema:
          type: string
        description: Runtime state
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Creating
            - Erred
            - OK
            - Terminated
            - Terminating
            - Updating
        description: |+
          Resource state

        explode: true
        style: form
      - in: query
        name: usage_based
        schema:
          type: boolean
        description: Filter by usage-based offerings
      - in: query
        name: visible_to_providers
        schema:
          type: boolean
        description: Include only resources visible to service providers
      - in: query
        name: visible_to_username
        schema:
          type: string
        description: Visible to username
      tags:
      - booking-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BookingResource'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: booking_resources_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: component_count
        schema:
          type: number
        description: Filter by exact number of components
      - in: query
        name: connected_customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: downscaled
        schema:
          type: boolean
        description: Downscaled
      - in: query
        name: has_terminate_date
        schema:
          type: boolean
        description: Has termination date
      - in: query
        name: is_attached
        schema:
          type: boolean
        description: Filter by attached state
      - in: query
        name: lexis_links_supported
        schema:
          type: boolean
        description: LEXIS links supported
      - in: query
        name: limit_based
        schema:
          type: boolean
        description: Filter by limit-based offerings
      - in: query
        name: limit_component_count
        schema:
          type: number
        description: Filter by exact number of limit-based components
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -schedules
            - -type
            - created
            - name
            - schedules
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_billable
        schema:
          type: boolean
        description: Offering billable
      - in: query
        name: offering_shared
        schema:
          type: boolean
        description: Offering shared
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_type
        schema:
          type: string
        description: Offering type
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: only_limit_based
        schema:
          type: boolean
        description: Filter resources with only limit-based components
      - in: query
        name: only_usage_based
        schema:
          type: boolean
        description: Filter resources with only usage-based components
      - in: query
        name: order_state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - done
            - erred
            - executing
            - pending-consumer
            - pending-project
            - pending-provider
            - pending-start-date
            - rejected
        description: |+
          Order state

        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: paused
        schema:
          type: boolean
        description: Paused
      - in: query
        name: plan_uuid
        schema:
          type: string
          format: uuid
        description: Plan UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by resource UUID, name, slug, backend ID, effective ID,
          IPs or hypervisor
      - in: query
        name: restrict_member_access
        schema:
          type: boolean
        description: Restrict member access
      - in: query
        name: runtime_state
        schema:
          type: string
        description: Runtime state
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Creating
            - Erred
            - OK
            - Terminated
            - Terminating
            - Updating
        description: |+
          Resource state

        explode: true
        style: form
      - in: query
        name: usage_based
        schema:
          type: boolean
        description: Filter by usage-based offerings
      - in: query
        name: visible_to_providers
        schema:
          type: boolean
        description: Include only resources visible to service providers
      - in: query
        name: visible_to_username
        schema:
          type: string
        description: Visible to username
      tags:
      - booking-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/booking-resources/{uuid}/:
    get:
      operationId: booking_resources_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - attributes
            - available_actions
            - backend_id
            - backend_metadata
            - can_terminate
            - category_icon
            - category_title
            - category_uuid
            - consumer_reviewed_by
            - consumer_reviewed_by_full_name
            - consumer_reviewed_by_username
            - created
            - created_by
            - created_by_full_name
            - created_by_username
            - creation_order
            - current_usages
            - customer_name
            - customer_slug
            - customer_uuid
            - description
            - downscaled
            - effective_id
            - end_date
            - end_date_requested_by
            - endpoints
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - last_sync
            - limit_usage
            - limits
            - modified
            - name
            - offering
            - offering_backend_id
            - offering_billable
            - offering_components
            - offering_description
            - offering_image
            - offering_name
            - offering_plugin_options
            - offering_shared
            - offering_slug
            - offering_state
            - offering_thumbnail
            - offering_type
            - offering_uuid
            - options
            - order_in_progress
            - parent_name
            - parent_offering_name
            - parent_offering_slug
            - parent_offering_uuid
            - parent_uuid
            - paused
            - plan
            - plan_description
            - plan_name
            - plan_unit
            - plan_uuid
            - project
            - project_description
            - project_end_date
            - project_end_date_requested_by
            - project_name
            - project_slug
            - project_uuid
            - provider_name
            - provider_slug
            - provider_uuid
            - renewal_date
            - report
            - resource_type
            - resource_uuid
            - restrict_member_access
            - scope
            - service_settings_uuid
            - slots
            - slug
            - state
            - url
            - user_requires_reconsent
            - username
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - booking-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingResource'
          description: ''
  /api/booking-resources/{uuid}/accept/:
    post:
      operationId: booking_resources_accept
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - booking-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: RESOURCE.ACCEPT_BOOKING_REQUEST
        scopes:
        - project.customer
        - offering
        - offering.customer
  /api/booking-resources/{uuid}/reject/:
    post:
      operationId: booking_resources_reject
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - booking-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/broadcast-message-templates/:
    get:
      operationId: broadcast_message_templates_list
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - broadcast-message-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MessageTemplate'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: broadcast_message_templates_create
      tags:
      - broadcast-message-templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageTemplateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageTemplate'
          description: ''
    head:
      operationId: broadcast_message_templates_count
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - broadcast-message-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/broadcast-message-templates/{uuid}/:
    get:
      operationId: broadcast_message_templates_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - broadcast-message-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageTemplate'
          description: ''
    put:
      operationId: broadcast_message_templates_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - broadcast-message-templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageTemplateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageTemplate'
          description: ''
    patch:
      operationId: broadcast_message_templates_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - broadcast-message-templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMessageTemplateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageTemplate'
          description: ''
    delete:
      operationId: broadcast_message_templates_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - broadcast-message-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/broadcast-messages/:
    get:
      operationId: broadcast_messages_list
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - author_full_name
            - body
            - created
            - emails
            - query
            - send_at
            - state
            - subject
            - uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -author_full_name
            - -created
            - -subject
            - author_full_name
            - created
            - subject
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: string
          enum:
          - DRAFT
          - SCHEDULED
          - SENT
      - in: query
        name: subject
        schema:
          type: string
      tags:
      - broadcast-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BroadcastMessage'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: broadcast_messages_create
      tags:
      - broadcast-messages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BroadcastMessageRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BroadcastMessage'
          description: ''
    head:
      operationId: broadcast_messages_count
      parameters:
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -author_full_name
            - -created
            - -subject
            - author_full_name
            - created
            - subject
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: string
          enum:
          - DRAFT
          - SCHEDULED
          - SENT
      - in: query
        name: subject
        schema:
          type: string
      tags:
      - broadcast-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/broadcast-messages/{uuid}/:
    get:
      operationId: broadcast_messages_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - author_full_name
            - body
            - created
            - emails
            - query
            - send_at
            - state
            - subject
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - broadcast-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BroadcastMessage'
          description: ''
    put:
      operationId: broadcast_messages_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - broadcast-messages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BroadcastMessageRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BroadcastMessage'
          description: ''
    patch:
      operationId: broadcast_messages_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - broadcast-messages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedBroadcastMessageRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BroadcastMessage'
          description: ''
    delete:
      operationId: broadcast_messages_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - broadcast-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/broadcast-messages/{uuid}/schedule/:
    post:
      operationId: broadcast_messages_schedule
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - broadcast-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/broadcast-messages/{uuid}/send/:
    post:
      operationId: broadcast_messages_send
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - broadcast-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/broadcast-messages/recipients/:
    get:
      operationId: broadcast_messages_recipients_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - author_full_name
            - body
            - created
            - emails
            - query
            - send_at
            - state
            - subject
            - uuid
      tags:
      - broadcast-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BroadcastMessage'
          description: ''
    head:
      operationId: broadcast_messages_recipients_count
      tags:
      - broadcast-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/call-assignment-configurations/:
    get:
      operationId: call_assignment_configurations_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - call-assignment-configurations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CallAssignmentConfiguration'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: call_assignment_configurations_create
      tags:
      - call-assignment-configurations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallAssignmentConfigurationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallAssignmentConfiguration'
          description: ''
    head:
      operationId: call_assignment_configurations_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - call-assignment-configurations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/call-assignment-configurations/{uuid}/:
    get:
      operationId: call_assignment_configurations_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-assignment-configurations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallAssignmentConfiguration'
          description: ''
    put:
      operationId: call_assignment_configurations_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-assignment-configurations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallAssignmentConfigurationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallAssignmentConfiguration'
          description: ''
    patch:
      operationId: call_assignment_configurations_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-assignment-configurations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCallAssignmentConfigurationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallAssignmentConfiguration'
          description: ''
    delete:
      operationId: call_assignment_configurations_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-assignment-configurations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/call-managing-organisations/:
    get:
      operationId: call_managing_organisations_list
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_keyword
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -customer_name
            - customer_name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - call-managing-organisations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CallManagingOrganisation'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: call_managing_organisations_create
      tags:
      - call-managing-organisations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallManagingOrganisationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CallManagingOrganisationRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CallManagingOrganisationRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallManagingOrganisation'
          description: ''
    head:
      operationId: call_managing_organisations_count
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_keyword
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -customer_name
            - customer_name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - call-managing-organisations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/call-managing-organisations/{uuid}/:
    get:
      operationId: call_managing_organisations_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-managing-organisations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallManagingOrganisation'
          description: ''
    put:
      operationId: call_managing_organisations_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-managing-organisations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallManagingOrganisationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CallManagingOrganisationRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CallManagingOrganisationRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallManagingOrganisation'
          description: ''
    patch:
      operationId: call_managing_organisations_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-managing-organisations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCallManagingOrganisationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCallManagingOrganisationRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCallManagingOrganisationRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallManagingOrganisation'
          description: ''
    delete:
      operationId: call_managing_organisations_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-managing-organisations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/call-managing-organisations/{uuid}/add_user/:
    post:
      operationId: call_managing_organisations_add_user
      description: Assigns a specific role to a user within the current scope. An
        optional expiration time for the role can be set.
      summary: Grant a role to a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-managing-organisations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleCreateRequest'
            examples:
              GrantProjectAdminRoleUntilEndOfYear:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2024-12-31'
                summary: Grant project admin role until end of year
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleGrantResponse:
                  value:
                    expiration_time: '2024-12-31T00:00:00Z'
                  summary: Successful role grant response
          description: ''
        '400':
          description: Validation error, for example when trying to add a user to
            a terminated project.
  /api/call-managing-organisations/{uuid}/delete_user/:
    post:
      operationId: call_managing_organisations_delete_user
      description: Removes a specific role from a user within the current scope. This
        effectively revokes their permissions associated with that role.
      summary: Revoke a role from a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-managing-organisations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleDeleteRequest'
            examples:
              RevokeProjectAdminRoleFromUser:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                summary: Revoke project admin role from user
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: Role revoked successfully.
  /api/call-managing-organisations/{uuid}/list_users/:
    get:
      operationId: call_managing_organisations_list_users_list
      description: Retrieves a list of users who have a role within a specific scope
        (e.g., a project or an organization). The list can be filtered by user details
        or role.
      summary: List users and their roles in a scope
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - created_by_full_name
            - created_by_uuid
            - expiration_time
            - role_name
            - role_uuid
            - user_email
            - user_full_name
            - user_image
            - user_username
            - user_uuid
            - uuid
        description: Fields to include in response
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name
      - in: query
        name: native_name
        schema:
          type: string
        description: User native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: Ordering fields
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role
        schema:
          type: string
          format: uuid
        description: Role UUID or name
      - in: query
        name: search_string
        schema:
          type: string
        description: Search string for user
      - in: query
        name: user
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug
      - in: query
        name: user_url
        schema:
          type: string
        description: User URL
      - in: query
        name: username
        schema:
          type: string
        description: User username
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-managing-organisations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserRoleDetails'
                description: ''
              examples:
                ExampleUserRoleListResponse:
                  value:
                  - - uuid: a7e6b0a29a434d2889273c5240217a26
                      created: '2023-10-26T10:00:00Z'
                      expiration_time: '2024-12-31T23:59:59Z'
                      role_name: PROJECT.ADMIN
                      role_uuid: d8c2d5852d434937985392d24249b6d3
                      user_email: alice@example.com
                      user_full_name: Alice Smith
                      user_username: alice
                      user_uuid: 8f20242b638743b18a485f81ac685e13
                      user_image: null
                      created_by_full_name: Bob Johnson
                      created_by_uuid: b4e4c2f1a6f24a8d8e4c2f1a6f24a8d8
                  summary: Example user role list response
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/call-managing-organisations/{uuid}/stats/:
    get:
      operationId: call_managing_organisations_stats_retrieve
      description: Return statistics for call managing organisation.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-managing-organisations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallManagingOrganisationStat'
          description: ''
  /api/call-managing-organisations/{uuid}/update_user/:
    post:
      operationId: call_managing_organisations_update_user
      description: Updates the expiration time for a user's existing role in the current
        scope. This is useful for extending or shortening the duration of a permission.
        To make a role permanent, set expiration_time to null.
      summary: Update a user's role expiration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-managing-organisations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleUpdateRequest'
            examples:
              ExtendRoleUntilMid-2025:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2025-06-30'
                summary: Extend role until mid-2025
              MakeARolePermanent:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: null
                summary: Make a role permanent
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleUpdateResponse:
                  value:
                    expiration_time: '2025-06-30T00:00:00Z'
                  summary: Successful role update response
          description: ''
  /api/call-proposal-project-role-mappings/:
    get:
      operationId: call_proposal_project_role_mappings_list
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - call-proposal-project-role-mappings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProposalProjectRoleMapping'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: call_proposal_project_role_mappings_create
      tags:
      - call-proposal-project-role-mappings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposalProjectRoleMappingRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProposalProjectRoleMapping'
          description: ''
    head:
      operationId: call_proposal_project_role_mappings_count
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - call-proposal-project-role-mappings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/call-proposal-project-role-mappings/{uuid}/:
    get:
      operationId: call_proposal_project_role_mappings_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-proposal-project-role-mappings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProposalProjectRoleMapping'
          description: ''
    put:
      operationId: call_proposal_project_role_mappings_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-proposal-project-role-mappings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposalProjectRoleMappingRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProposalProjectRoleMapping'
          description: ''
    patch:
      operationId: call_proposal_project_role_mappings_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-proposal-project-role-mappings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProposalProjectRoleMappingRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProposalProjectRoleMapping'
          description: ''
    delete:
      operationId: call_proposal_project_role_mappings_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-proposal-project-role-mappings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/call-reviewer-pools/:
    get:
      operationId: call_reviewer_pools_list
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: invitation_status
        schema:
          type: array
          items:
            type: string
            enum:
            - accepted
            - declined
            - expired
            - pending
        explode: true
        style: form
      - in: query
        name: my_invitations
        schema:
          type: boolean
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -current_assignments
            - -expertise_match_score
            - -invited_at
            - created
            - current_assignments
            - expertise_match_score
            - invited_at
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      tags:
      - call-reviewer-pools
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CallReviewerPool'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: call_reviewer_pools_count
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: invitation_status
        schema:
          type: array
          items:
            type: string
            enum:
            - accepted
            - declined
            - expired
            - pending
        explode: true
        style: form
      - in: query
        name: my_invitations
        schema:
          type: boolean
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -current_assignments
            - -expertise_match_score
            - -invited_at
            - created
            - current_assignments
            - expertise_match_score
            - invited_at
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      tags:
      - call-reviewer-pools
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/call-reviewer-pools/{uuid}/:
    get:
      operationId: call_reviewer_pools_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-reviewer-pools
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallReviewerPool'
          description: ''
    patch:
      operationId: call_reviewer_pools_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-reviewer-pools
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCallReviewerPoolUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallReviewerPoolUpdate'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/call-reviewer-pools/{uuid}/accept/:
    post:
      operationId: call_reviewer_pools_accept
      description: Accept a pool invitation (authenticated users only).
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-reviewer-pools
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/SelfDeclaredConflictRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationAcceptResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationAcceptError'
          description: ''
  /api/call-reviewer-pools/{uuid}/decline/:
    post:
      operationId: call_reviewer_pools_decline
      description: Decline a pool invitation (authenticated users only).
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-reviewer-pools
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvitationDeclineRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationDeclineResponse'
          description: ''
  /api/call-rounds/:
    get:
      operationId: call_rounds_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - call-rounds
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CallRound'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: call_rounds_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - call-rounds
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/call-rounds/{uuid}/:
    get:
      operationId: call_rounds_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-rounds
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallRound'
          description: ''
  /api/call-rounds/{uuid}/reviewers/:
    get:
      operationId: call_rounds_reviewers_list
      description: Return list of reviewers for round.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - call-rounds
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoundReviewer'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/celery-stats/:
    get:
      operationId: celery_stats_retrieve
      description: |-
        Provides a comprehensive snapshot of all Celery workers' status.

        This endpoint returns detailed information about:
        - **active**: Tasks currently being executed by workers
        - **scheduled**: Tasks scheduled for future execution (with ETA)
        - **reserved**: Tasks received by workers but not yet started
        - **revoked**: Task IDs that have been cancelled/revoked
        - **query_task**: Results of task queries (if any)
        - **stats**: Detailed worker statistics including uptime, pool info, and broker connection

        Each field is a dictionary where keys are worker names (e.g., 'celery@hostname').
        If no workers are available, fields will be `null`.

        Requires support user permissions.
      summary: Get Celery worker statistics
      tags:
      - celery-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CeleryStatsResponse'
              examples:
                CeleryStatsWithActiveWorkers:
                  value:
                    active:
                      celery@worker1:
                      - id: e3a95109-acd5-4f5a-b4c4-65f2f4e5d123
                        name: waldur_core.tasks.send_email
                        args:
                        - user@example.com
                        kwargs:
                          subject: Welcome
                        type: waldur_core.tasks.send_email
                        hostname: celery@worker1
                        time_start: 1703952000.123456
                        acknowledged: true
                        worker_pid: 12345
                    scheduled:
                      celery@worker1: []
                    reserved:
                      celery@worker1: []
                    revoked:
                      celery@worker1: []
                    query_task: null
                    stats:
                      celery@worker1:
                        broker:
                          hostname: redis
                          port: 6379
                          transport: redis
                          virtual_host: '0'
                        clock: '12345'
                        uptime: 86400
                        pid: 1234
                        pool:
                          max_concurrency: 4
                          processes:
                          - 12345
                          - 12346
                          - 12347
                          - 12348
                        prefetch_count: 16
                        total:
                          waldur_core.tasks.send_email: 150
                          waldur_core.tasks.cleanup: 42
                  summary: Response when Celery workers are running
                  description: Example showing active workers with tasks in various
                    states.
                NoWorkersAvailable:
                  value:
                    active: null
                    scheduled: null
                    reserved: null
                    revoked: null
                    query_task: null
                    stats: null
                  summary: Response when no Celery workers are running
                  description: All fields are null when workers are offline or unreachable.
          description: ''
  /api/chat-messages/:
    get:
      operationId: chat_messages_list
      parameters:
      - in: query
        name: include_history
        schema:
          type: boolean
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: thread
        schema:
          type: string
          format: uuid
      tags:
      - chat-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Message'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/chat-messages/{uuid}/edit/:
    post:
      operationId: chat_messages_edit
      description: Edit a message (creates a new message with replaces reference).
        Only allows editing the last user message in a thread.
      summary: Edit message
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - chat-messages
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: string
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Message'
          description: ''
  /api/chat-quota/set_quota/:
    post:
      operationId: chat_quota_set_quota
      description: |-
        Allows staff/support to set token quota limits for a specific user. Configure daily, weekly, and monthly limits:
        - Omit field or send `null`: Use system default
        - `-1`: Unlimited (no quota enforcement)
        - `0` or positive integer: Specific token limit
      summary: Set token quota for user
      tags:
      - chat-quota
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetTokenQuotaRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/chat-quota/usage/:
    get:
      operationId: chat_quota_usage_retrieve
      description: "\n        Get current token quota and usage for the requesting\
        \ user.\n\n        Returns token quota for all periods (daily, weekly, monthly):\n\
        \        - limit: User's custom limit (null = use system default, -1 = unlimited,\
        \ or positive integer)\n        - usage: Tokens used in current period\n \
        \       - remaining: Tokens remaining (null if unlimited)\n        - reset_at:\
        \ When the period resets\n        - system_default: System-wide default limit\
        \ from configuration (for transparency when limit is null)\n        "
      parameters:
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: UUID of user to view quota for (staff/support only). Omit to
          view your own quota.
      tags:
      - chat-quota
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenQuotaUsageResponse'
          description: ''
  /api/chat-sessions/:
    get:
      operationId: chat_sessions_list
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - modified
            - user
            - user_full_name
            - user_username
            - uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - chat-sessions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ChatSession'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/chat-sessions/{uuid}/:
    get:
      operationId: chat_sessions_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - modified
            - user
            - user_full_name
            - user_username
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - chat-sessions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatSession'
          description: ''
  /api/chat-sessions/current/:
    get:
      operationId: chat_sessions_current_retrieve
      description: Returns the current user's chat session, creating it if it doesn't
        exist.
      summary: Get or create current user's chat session
      tags:
      - chat-sessions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatSession'
          description: ''
  /api/chat-threads/:
    get:
      operationId: chat_threads_list
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - chat_session
            - created
            - flags
            - is_archived
            - message_count
            - modified
            - name
            - user_full_name
            - user_username
            - uuid
      - in: query
        name: is_archived
        schema:
          type: boolean
      - in: query
        name: modified
        schema:
          type: string
          format: date
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -modified
            - created
            - modified
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
      - in: query
        name: user
        schema:
          type: string
          format: uuid
      tags:
      - chat-threads
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ThreadSession'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/chat-threads/{uuid}/:
    get:
      operationId: chat_threads_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - chat_session
            - created
            - flags
            - is_archived
            - message_count
            - modified
            - name
            - user_full_name
            - user_username
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - chat-threads
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThreadSession'
          description: ''
  /api/chat-threads/{uuid}/archive/:
    post:
      operationId: chat_threads_archive
      description: Archive a thread (soft delete).
      summary: Archive thread
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - chat-threads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThreadSessionRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/chat-threads/{uuid}/unarchive/:
    post:
      operationId: chat_threads_unarchive
      description: Restore an archived thread.
      summary: Unarchive thread
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - chat-threads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThreadSessionRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/chat-tools/execute/:
    post:
      operationId: chat_tools_execute
      description: Execute a tool and return the result.
      tags:
      - chat-tools
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ToolExecuteRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
  /api/chat/stream/:
    post:
      operationId: chat_stream
      tags:
      - chat
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/x-ndjson:
              schema:
                $ref: '#/components/schemas/ChatResponse'
          description: ''
  /api/checklists-admin/:
    get:
      operationId: checklists_admin_list
      parameters:
      - in: query
        name: checklist_type
        schema:
          type: string
          enum:
          - offering_compliance
          - onboarding_customer
          - onboarding_intent
          - project_compliance
          - project_metadata
          - proposal_compliance
        description: |+
          Type of compliance this checklist addresses

      - in: query
        name: checklist_type__in
        schema:
          type: array
          items:
            type: string
            enum:
            - offering_compliance
            - onboarding_customer
            - onboarding_intent
            - project_compliance
            - project_metadata
            - proposal_compliance
        description: |+
          Filter by multiple checklist types

        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - checklists-admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Checklist'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: checklists_admin_create
      tags:
      - checklists-admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChecklistRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Checklist'
          description: ''
    head:
      operationId: checklists_admin_count
      parameters:
      - in: query
        name: checklist_type
        schema:
          type: string
          enum:
          - offering_compliance
          - onboarding_customer
          - onboarding_intent
          - project_compliance
          - project_metadata
          - proposal_compliance
        description: |+
          Type of compliance this checklist addresses

      - in: query
        name: checklist_type__in
        schema:
          type: array
          items:
            type: string
            enum:
            - offering_compliance
            - onboarding_customer
            - onboarding_intent
            - project_compliance
            - project_metadata
            - proposal_compliance
        description: |+
          Filter by multiple checklist types

        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - checklists-admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/checklists-admin-question-dependencies/:
    get:
      operationId: checklists_admin_question_dependencies_list
      parameters:
      - in: query
        name: depends_on_question_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: question_uuid
        schema:
          type: string
          format: uuid
      tags:
      - checklists-admin-question-dependencies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/QuestionDependency'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: checklists_admin_question_dependencies_create
      tags:
      - checklists-admin-question-dependencies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuestionDependencyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionDependency'
          description: ''
    head:
      operationId: checklists_admin_question_dependencies_count
      parameters:
      - in: query
        name: depends_on_question_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: question_uuid
        schema:
          type: string
          format: uuid
      tags:
      - checklists-admin-question-dependencies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/checklists-admin-question-dependencies/{uuid}/:
    get:
      operationId: checklists_admin_question_dependencies_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin-question-dependencies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionDependency'
          description: ''
    put:
      operationId: checklists_admin_question_dependencies_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin-question-dependencies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuestionDependencyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionDependency'
          description: ''
    patch:
      operationId: checklists_admin_question_dependencies_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin-question-dependencies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedQuestionDependencyRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionDependency'
          description: ''
    delete:
      operationId: checklists_admin_question_dependencies_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin-question-dependencies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/checklists-admin-question-options/:
    get:
      operationId: checklists_admin_question_options_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: question_uuid
        schema:
          type: string
          format: uuid
      tags:
      - checklists-admin-question-options
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/QuestionOptionsAdmin'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: checklists_admin_question_options_create
      tags:
      - checklists-admin-question-options
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuestionOptionsAdminRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionOptionsAdmin'
          description: ''
    head:
      operationId: checklists_admin_question_options_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: question_uuid
        schema:
          type: string
          format: uuid
      tags:
      - checklists-admin-question-options
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/checklists-admin-question-options/{uuid}/:
    get:
      operationId: checklists_admin_question_options_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin-question-options
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionOptionsAdmin'
          description: ''
    put:
      operationId: checklists_admin_question_options_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin-question-options
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuestionOptionsAdminRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionOptionsAdmin'
          description: ''
    patch:
      operationId: checklists_admin_question_options_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin-question-options
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedQuestionOptionsAdminRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionOptionsAdmin'
          description: ''
    delete:
      operationId: checklists_admin_question_options_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin-question-options
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/checklists-admin-questions/:
    get:
      operationId: checklists_admin_questions_list
      parameters:
      - in: query
        name: checklist_type
        schema:
          type: string
          enum:
          - offering_compliance
          - onboarding_customer
          - onboarding_intent
          - project_compliance
          - project_metadata
          - proposal_compliance
        description: |+
          Type of compliance this checklist addresses

      - in: query
        name: checklist_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: has_onboarding_mapping
        schema:
          type: boolean
        description: Filter questions that have onboarding metadata mapping
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - checklists-admin-questions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/QuestionAdmin'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: checklists_admin_questions_create
      tags:
      - checklists-admin-questions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuestionAdminRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionAdmin'
          description: ''
    head:
      operationId: checklists_admin_questions_count
      parameters:
      - in: query
        name: checklist_type
        schema:
          type: string
          enum:
          - offering_compliance
          - onboarding_customer
          - onboarding_intent
          - project_compliance
          - project_metadata
          - proposal_compliance
        description: |+
          Type of compliance this checklist addresses

      - in: query
        name: checklist_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: has_onboarding_mapping
        schema:
          type: boolean
        description: Filter questions that have onboarding metadata mapping
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - checklists-admin-questions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/checklists-admin-questions/{uuid}/:
    get:
      operationId: checklists_admin_questions_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin-questions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionAdmin'
          description: ''
    put:
      operationId: checklists_admin_questions_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin-questions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuestionAdminRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionAdmin'
          description: ''
    patch:
      operationId: checklists_admin_questions_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin-questions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedQuestionAdminRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionAdmin'
          description: ''
    delete:
      operationId: checklists_admin_questions_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin-questions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/checklists-admin/{uuid}/:
    get:
      operationId: checklists_admin_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Checklist'
          description: ''
    put:
      operationId: checklists_admin_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChecklistRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Checklist'
          description: ''
    patch:
      operationId: checklists_admin_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedChecklistRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Checklist'
          description: ''
    delete:
      operationId: checklists_admin_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/checklists-admin/{uuid}/questions/:
    get:
      operationId: checklists_admin_checklist_questions
      description: Return checklist questions.
      parameters:
      - in: query
        name: checklist_type
        schema:
          type: string
          enum:
          - offering_compliance
          - onboarding_customer
          - onboarding_intent
          - project_compliance
          - project_metadata
          - proposal_compliance
        description: |+
          Type of compliance this checklist addresses

      - in: query
        name: checklist_type__in
        schema:
          type: array
          items:
            type: string
            enum:
            - offering_compliance
            - onboarding_customer
            - onboarding_intent
            - project_compliance
            - project_metadata
            - proposal_compliance
        description: |+
          Filter by multiple checklist types

        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - checklists-admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/QuestionAdmin'
                description: ''
          description: ''
  /api/coi-detection-jobs/:
    get:
      operationId: coi_detection_jobs_list
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: job_type
        schema:
          type: string
          enum:
          - full_call
          - incremental
          - single_pair
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -completed_at
            - -created
            - -started_at
            - -state
            - completed_at
            - created
            - started_at
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - cancelled
            - completed
            - failed
            - pending
            - running
        explode: true
        style: form
      tags:
      - coi-detection-jobs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/COIDetectionJob'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: coi_detection_jobs_count
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: job_type
        schema:
          type: string
          enum:
          - full_call
          - incremental
          - single_pair
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -completed_at
            - -created
            - -started_at
            - -state
            - completed_at
            - created
            - started_at
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - cancelled
            - completed
            - failed
            - pending
            - running
        explode: true
        style: form
      tags:
      - coi-detection-jobs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/coi-detection-jobs/{uuid}/:
    get:
      operationId: coi_detection_jobs_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - coi-detection-jobs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/COIDetectionJob'
          description: ''
  /api/coi-disclosures/:
    get:
      operationId: coi_disclosures_list
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: certified
        schema:
          type: boolean
      - in: query
        name: is_current
        schema:
          type: boolean
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -certification_date
            - -created
            - -valid_until
            - certification_date
            - created
            - valid_until
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      tags:
      - coi-disclosures
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/COIDisclosureForm'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: coi_disclosures_create
      tags:
      - coi-disclosures
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/COIDisclosureFormRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/COIDisclosureForm'
          description: ''
    head:
      operationId: coi_disclosures_count
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: certified
        schema:
          type: boolean
      - in: query
        name: is_current
        schema:
          type: boolean
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -certification_date
            - -created
            - -valid_until
            - certification_date
            - created
            - valid_until
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      tags:
      - coi-disclosures
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/coi-disclosures/{uuid}/:
    get:
      operationId: coi_disclosures_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - coi-disclosures
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/COIDisclosureForm'
          description: ''
  /api/component-user-usage-limits/:
    get:
      operationId: component_user_usage_limits_list
      description: Returns a paginated list of usage limits set for specific users
        on resource components.
      summary: List component usage limits for users
      parameters:
      - in: query
        name: component_type
        schema:
          type: string
        description: Component type
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: resource
        schema:
          type: string
        description: Resource URL
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: username
        schema:
          type: string
        description: Username
      tags:
      - component-user-usage-limits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ComponentUserUsageLimit'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: component_user_usage_limits_create
      description: Sets a usage limit for a specific user on a resource's component.
        This is only applicable for offerings that support per-user consumption limitation.
      summary: Create a component usage limit for a user
      tags:
      - component-user-usage-limits
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComponentUserUsageLimitRequest'
            examples:
              SetACPUUsageLimitForAUser:
                value:
                  resource: http://testserver/api/marketplace-resources/a1b2c3d4-e5f6-7890-1234-567890abcdef/
                  component: b2c3d4e5-f678-9012-3456-7890abcdef12
                  user: http://testserver/api/marketplace-offering-users/c3d4e5f6-7890-1234-5678-90abcdef1234/
                  limit: 100
                summary: Set a CPU usage limit for a user
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentUserUsageLimit'
              examples:
                SetACPUUsageLimitForAUser:
                  value:
                    resource: http://testserver/api/marketplace-resources/a1b2c3d4-e5f6-7890-1234-567890abcdef/
                    component: b2c3d4e5-f678-9012-3456-7890abcdef12
                    user: http://testserver/api/marketplace-offering-users/c3d4e5f6-7890-1234-5678-90abcdef1234/
                    limit: 100
                  summary: Set a CPU usage limit for a user
          description: ''
    head:
      operationId: component_user_usage_limits_count
      description: Get number of items in the collection matching the request parameters.
      summary: List component usage limits for users
      parameters:
      - in: query
        name: component_type
        schema:
          type: string
        description: Component type
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: resource
        schema:
          type: string
        description: Resource URL
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: username
        schema:
          type: string
        description: Username
      tags:
      - component-user-usage-limits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/component-user-usage-limits/{uuid}/:
    get:
      operationId: component_user_usage_limits_retrieve
      description: Returns the details of a specific user's usage limit for a component.
      summary: Retrieve a component usage limit
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - component-user-usage-limits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentUserUsageLimit'
          description: ''
    put:
      operationId: component_user_usage_limits_update
      description: Updates an existing usage limit for a user on a component.
      summary: Update a component usage limit
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - component-user-usage-limits
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComponentUserUsageLimitRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentUserUsageLimit'
          description: ''
      x-permissions:
      - permission: RESOURCE.CONSUMPTION_LIMITATION
        scopes:
        - resource.project.customer
        - resource.project
    patch:
      operationId: component_user_usage_limits_partial_update
      description: Partially updates an existing usage limit for a user on a component.
      summary: Partially update a component usage limit
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - component-user-usage-limits
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedComponentUserUsageLimitRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentUserUsageLimit'
          description: ''
      x-permissions:
      - permission: RESOURCE.CONSUMPTION_LIMITATION
        scopes:
        - resource.project.customer
        - resource.project
    delete:
      operationId: component_user_usage_limits_destroy
      description: Removes a usage limit for a user on a component.
      summary: Delete a component usage limit
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - component-user-usage-limits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: RESOURCE.CONSUMPTION_LIMITATION
        scopes:
        - resource.project.customer
        - resource.project
  /api/configuration/:
    get:
      operationId: configuration_retrieve
      description: Returns a dictionary of public settings for the Waldur deployment.
        This includes feature flags, authentication methods, and other configuration
        details that are safe to expose to any user.
      summary: Get public configuration
      tags:
      - configuration
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
  /api/conflicts-of-interest/:
    get:
      operationId: conflicts_of_interest_list
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: coi_type
        schema:
          type: array
          items:
            type: string
            enum:
            - COAUTH_OLD
            - COAUTH_RECENT
            - COLLAB_ACTIVE
            - COLLAB_GRANT
            - COMPET
            - CONF_ATTEND
            - FIN_DIRECT
            - INST_CONSORT
            - INST_DEPT
            - INST_FORMER
            - INST_SAME
            - REL_EDITORIAL
            - REL_FAMILY
            - REL_MENTOR
            - REL_SUPERVISOR
            - ROLE_CONF
            - ROLE_NAMED
            - SOC_MEMBER
        explode: true
        style: form
      - in: query
        name: detection_method
        schema:
          type: array
          items:
            type: string
            enum:
            - automated
            - manager_identified
            - reported
            - self_disclosed
        explode: true
        style: form
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -detected_at
            - -severity
            - -status
            - created
            - detected_at
            - severity
            - status
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: proposal_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: reviewer_name
        schema:
          type: string
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: round_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: severity
        schema:
          type: string
          enum:
          - apparent
          - potential
          - real
      - in: query
        name: status
        schema:
          type: array
          items:
            type: string
            enum:
            - dismissed
            - pending
            - recused
            - waived
        explode: true
        style: form
      tags:
      - conflicts-of-interest
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConflictOfInterest'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: conflicts_of_interest_count
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: coi_type
        schema:
          type: array
          items:
            type: string
            enum:
            - COAUTH_OLD
            - COAUTH_RECENT
            - COLLAB_ACTIVE
            - COLLAB_GRANT
            - COMPET
            - CONF_ATTEND
            - FIN_DIRECT
            - INST_CONSORT
            - INST_DEPT
            - INST_FORMER
            - INST_SAME
            - REL_EDITORIAL
            - REL_FAMILY
            - REL_MENTOR
            - REL_SUPERVISOR
            - ROLE_CONF
            - ROLE_NAMED
            - SOC_MEMBER
        explode: true
        style: form
      - in: query
        name: detection_method
        schema:
          type: array
          items:
            type: string
            enum:
            - automated
            - manager_identified
            - reported
            - self_disclosed
        explode: true
        style: form
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -detected_at
            - -severity
            - -status
            - created
            - detected_at
            - severity
            - status
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: proposal_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: reviewer_name
        schema:
          type: string
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: round_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: severity
        schema:
          type: string
          enum:
          - apparent
          - potential
          - real
      - in: query
        name: status
        schema:
          type: array
          items:
            type: string
            enum:
            - dismissed
            - pending
            - recused
            - waived
        explode: true
        style: form
      tags:
      - conflicts-of-interest
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/conflicts-of-interest/{uuid}/:
    get:
      operationId: conflicts_of_interest_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - conflicts-of-interest
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictOfInterest'
          description: ''
    put:
      operationId: conflicts_of_interest_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - conflicts-of-interest
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConflictOfInterestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictOfInterest'
          description: ''
    patch:
      operationId: conflicts_of_interest_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - conflicts-of-interest
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedConflictOfInterestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictOfInterest'
          description: ''
  /api/conflicts-of-interest/{uuid}/dismiss/:
    post:
      operationId: conflicts_of_interest_dismiss
      description: Dismiss a conflict of interest (not a real conflict).
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - conflicts-of-interest
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/COIStatusUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictOfInterest'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - call
        - call.manager
  /api/conflicts-of-interest/{uuid}/recuse/:
    post:
      operationId: conflicts_of_interest_recuse
      description: Recuse reviewer from the proposal.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - conflicts-of-interest
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/COIStatusUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictOfInterest'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - call
        - call.manager
  /api/conflicts-of-interest/{uuid}/waive/:
    post:
      operationId: conflicts_of_interest_waive
      description: Waive a conflict with a management plan.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - conflicts-of-interest
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/COIStatusUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictOfInterest'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - call
        - call.manager
  /api/customer-credits/:
    get:
      operationId: customer_credits_list
      parameters:
      - in: query
        name: customer_name
        schema:
          type: string
      - in: query
        name: customer_slug
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -customer_name
            - -end_date
            - -expected_consumption
            - -value
            - customer_name
            - end_date
            - expected_consumption
            - value
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
      tags:
      - customer-credits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerCredit'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: customer_credits_create
      tags:
      - customer-credits
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomerCreditRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCustomerCredit'
          description: ''
    head:
      operationId: customer_credits_count
      parameters:
      - in: query
        name: customer_name
        schema:
          type: string
      - in: query
        name: customer_slug
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -customer_name
            - -end_date
            - -expected_consumption
            - -value
            - customer_name
            - end_date
            - expected_consumption
            - value
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
      tags:
      - customer-credits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/customer-credits/{uuid}/:
    get:
      operationId: customer_credits_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customer-credits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerCredit'
          description: ''
    put:
      operationId: customer_credits_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customer-credits
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomerCreditRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCustomerCredit'
          description: ''
    patch:
      operationId: customer_credits_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customer-credits
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCreateCustomerCreditRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCustomerCredit'
          description: ''
    delete:
      operationId: customer_credits_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customer-credits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/customer-credits/{uuid}/apply_compensations/:
    post:
      operationId: customer_credits_apply_compensations
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customer-credits
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerCreditRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerCredit'
          description: ''
  /api/customer-credits/{uuid}/clear_compensations/:
    post:
      operationId: customer_credits_clear_compensations
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customer-credits
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerCreditRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerCredit'
          description: ''
  /api/customer-credits/{uuid}/consumptions/:
    get:
      operationId: customer_credits_consumptions_list
      description: Get credit consumption history grouped by month.
      parameters:
      - in: query
        name: customer_name
        schema:
          type: string
      - in: query
        name: customer_slug
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -customer_name
            - -end_date
            - -expected_consumption
            - -value
            - customer_name
            - end_date
            - expected_consumption
            - value
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customer-credits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerCreditConsumption'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/customer-permissions-reviews/:
    get:
      operationId: customer_permissions_reviews_list
      parameters:
      - in: query
        name: closed
        schema:
          type: string
          format: date-time
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: is_pending
        schema:
          type: boolean
        description: Is pending
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -closed
            - -created
            - closed
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
        description: Reviewer UUID
      tags:
      - customer-permissions-reviews
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerPermissionReview'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: customer_permissions_reviews_count
      parameters:
      - in: query
        name: closed
        schema:
          type: string
          format: date-time
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: is_pending
        schema:
          type: boolean
        description: Is pending
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -closed
            - -created
            - closed
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
        description: Reviewer UUID
      tags:
      - customer-permissions-reviews
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/customer-permissions-reviews/{uuid}/:
    get:
      operationId: customer_permissions_reviews_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customer-permissions-reviews
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerPermissionReview'
          description: ''
  /api/customer-permissions-reviews/{uuid}/close/:
    post:
      operationId: customer_permissions_reviews_close
      summary: Close customer permission review
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customer-permissions-reviews
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/customer-quotas/:
    get:
      operationId: customer_quotas_list
      description: List customer quotas.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - customer-quotas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerQuotas'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: customer_quotas_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - customer-quotas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/customers/:
    get:
      operationId: customers_list
      description: Retrieve a list of customers. The list is filtered based on the
        user's permissions.
      summary: List customers
      parameters:
      - in: query
        name: abbreviation
        schema:
          type: string
        description: Abbreviation
      - in: query
        name: agreement_number
        schema:
          type: string
      - in: query
        name: archived
        schema:
          type: boolean
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: contact_details
        schema:
          type: string
        description: Contact details
      - in: query
        name: current_user_has_project_create_permission
        schema:
          type: boolean
        description: Return a list of customers where current user has project create
          permission.
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - abbreviation
            - access_subnets
            - accounting_start_date
            - address
            - agreement_number
            - archived
            - backend_id
            - bank_account
            - bank_name
            - billing_price_estimate
            - blocked
            - call_managing_organization_uuid
            - contact_details
            - country
            - country_name
            - created
            - customer_credit
            - customer_unallocated_credit
            - default_tax_percent
            - description
            - display_billing_info_in_projects
            - display_name
            - domain
            - email
            - grace_period_days
            - homepage
            - image
            - is_service_provider
            - latitude
            - longitude
            - max_service_accounts
            - name
            - native_name
            - notification_emails
            - organization_groups
            - payment_profiles
            - phone_number
            - postal
            - project_metadata_checklist
            - projects_count
            - registration_code
            - service_provider
            - service_provider_uuid
            - slug
            - sponsor_number
            - url
            - user_affiliations
            - user_email_patterns
            - user_identity_sources
            - users_count
            - uuid
            - vat_code
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: organization_group_name
        schema:
          type: string
        description: Organization group name
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - in: query
        name: owned_by_current_user
        schema:
          type: boolean
        description: Return a list of customers where current user is owner.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, native name, abbreviation, domain, UUID, registration
          code or agreement number
      - in: query
        name: registration_code
        schema:
          type: string
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Customer'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: customers_create
      description: A new customer can only be created by users with staff privilege.
      summary: Create a new customer
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerRequest'
            examples:
              CreateCustomer:
                value:
                  name: Customer A
                  native_name: Customer A
                  abbreviation: CA
                  contact_details: Luhamaa 28, 10128 Tallinn
                summary: Create customer
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CustomerRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CustomerRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
          description: ''
    head:
      operationId: customers_count
      description: Get number of items in the collection matching the request parameters.
      summary: List customers
      parameters:
      - in: query
        name: abbreviation
        schema:
          type: string
        description: Abbreviation
      - in: query
        name: agreement_number
        schema:
          type: string
      - in: query
        name: archived
        schema:
          type: boolean
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: contact_details
        schema:
          type: string
        description: Contact details
      - in: query
        name: current_user_has_project_create_permission
        schema:
          type: boolean
        description: Return a list of customers where current user has project create
          permission.
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: organization_group_name
        schema:
          type: string
        description: Organization group name
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - in: query
        name: owned_by_current_user
        schema:
          type: boolean
        description: Return a list of customers where current user is owner.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, native name, abbreviation, domain, UUID, registration
          code or agreement number
      - in: query
        name: registration_code
        schema:
          type: string
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/customers/{customer_uuid}/project-metadata-compliance-details/:
    get:
      operationId: customers_project_metadata_compliance_details_list
      description: Provides detailed compliance status for all projects within a customer,
        including individual answers and completion status.
      summary: Get detailed project metadata compliance
      parameters:
      - in: path
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the customer
        required: true
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectDetailsResponse'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/customers/{customer_uuid}/project-metadata-compliance-overview/:
    get:
      operationId: customers_project_metadata_compliance_overview_list
      description: Provides aggregated statistics about project metadata compliance
        for all projects within a customer.
      summary: Get project metadata compliance overview
      parameters:
      - in: path
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the customer
        required: true
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ComplianceOverview'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/customers/{customer_uuid}/project-metadata-compliance-projects/:
    get:
      operationId: customers_project_metadata_compliance_projects_list
      description: Provides a paginated list of projects with their checklist completion
        status and answer details.
      summary: List projects with compliance data
      parameters:
      - in: path
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the customer
        required: true
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectAnswer'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/customers/{customer_uuid}/project-metadata-question-answers/:
    get:
      operationId: customers_project_metadata_question_answers_list
      description: Provides a paginated list of all questions from the customer's
        compliance checklist, including the answers given in each project.
      summary: List questions with project answers
      parameters:
      - in: path
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the customer
        required: true
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/QuestionAnswer'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/customers/{customer_uuid}/users/:
    get:
      operationId: customers_users_list
      description: Lists all users who have a role in the specified customer or any
        of its projects. Requires permissions to list customer users.
      summary: List users of a customer
      parameters:
      - in: query
        name: agreement_date
        schema:
          type: string
          format: date-time
        description: Agreement date after
      - in: query
        name: civil_number
        schema:
          type: string
      - in: path
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the customer
        required: true
      - in: query
        name: date_joined
        schema:
          type: string
          format: date-time
        description: Date joined after
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: email
        schema:
          type: string
        description: Email
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - email
            - expiration_time
            - full_name
            - image
            - projects
            - role_name
            - url
            - username
            - uuid
      - in: query
        name: full_name
        schema:
          type: string
        description: Full name
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: job_title
        schema:
          type: string
        description: Job title
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Date modified after
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: o
        schema:
          type: string
          enum:
          - concatenated_name
          - -concatenated_name
        description: Ordering. Sort by a combination of first name, last name, and
          username.
      - in: query
        name: organization
        schema:
          type: string
        description: Organization
      - in: query
        name: organization_role
        schema:
          type: array
          items:
            anyOf:
            - type: string
              enum:
              - CUSTOMER.MANAGER
              - CUSTOMER.OWNER
              - CUSTOMER.SUPPORT
            - type: string
        description: Filter by one or more organization roles. Select a standard role
          or provide a custom role string. Can be specified multiple times.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: phone_number
        schema:
          type: string
      - in: query
        name: project_role
        schema:
          type: array
          items:
            anyOf:
            - type: string
              enum:
              - PROJECT.ADMIN
              - PROJECT.MANAGER
              - PROJECT.MEMBER
            - type: string
        description: Filter by one or more project roles. Select a standard role or
          provide a custom role string. Can be specified multiple times.
      - in: query
        name: registration_method
        schema:
          type: string
      - in: query
        name: user_keyword
        schema:
          type: string
        description: User keyword
      - in: query
        name: username
        schema:
          type: string
        description: Username
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerUser'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/customers/{uuid}/:
    get:
      operationId: customers_retrieve
      description: Fetch the details of a specific customer by its UUID.
      summary: Retrieve customer details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - abbreviation
            - access_subnets
            - accounting_start_date
            - address
            - agreement_number
            - archived
            - backend_id
            - bank_account
            - bank_name
            - billing_price_estimate
            - blocked
            - call_managing_organization_uuid
            - contact_details
            - country
            - country_name
            - created
            - customer_credit
            - customer_unallocated_credit
            - default_tax_percent
            - description
            - display_billing_info_in_projects
            - display_name
            - domain
            - email
            - grace_period_days
            - homepage
            - image
            - is_service_provider
            - latitude
            - longitude
            - max_service_accounts
            - name
            - native_name
            - notification_emails
            - organization_groups
            - payment_profiles
            - phone_number
            - postal
            - project_metadata_checklist
            - projects_count
            - registration_code
            - service_provider
            - service_provider_uuid
            - slug
            - sponsor_number
            - url
            - user_affiliations
            - user_email_patterns
            - user_identity_sources
            - users_count
            - uuid
            - vat_code
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
          description: ''
    put:
      operationId: customers_update
      description: Update the details of an existing customer. Requires customer owner
        or staff permissions.
      summary: Update a customer
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CustomerRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CustomerRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
          description: ''
    patch:
      operationId: customers_partial_update
      description: Partially update the details of an existing customer. Requires
        customer owner or staff permissions.
      summary: Partially update a customer
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCustomerRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCustomerRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCustomerRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
          description: ''
    delete:
      operationId: customers_destroy
      description: Delete a customer. This action is only available to staff users.
        If a customer has any active projects, the deletion request will fail with
        a 409 Conflict response.
      summary: Delete a customer
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/customers/{uuid}/add_user/:
    post:
      operationId: customers_add_user
      description: Assigns a specific role to a user within the current scope. An
        optional expiration time for the role can be set.
      summary: Grant a role to a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleCreateRequest'
            examples:
              GrantProjectAdminRoleUntilEndOfYear:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2024-12-31'
                summary: Grant project admin role until end of year
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleGrantResponse:
                  value:
                    expiration_time: '2024-12-31T00:00:00Z'
                  summary: Successful role grant response
          description: ''
        '400':
          description: Validation error, for example when trying to add a user to
            a terminated project.
  /api/customers/{uuid}/contact/:
    post:
      operationId: customers_contact
      description: Update organization contact information. Requires CUSTOMER_CONTACT_UPDATE
        or CUSTOMER.UPDATE permission.
      summary: Update customer contact details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerContactUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerContactUpdate'
          description: ''
  /api/customers/{uuid}/delete_user/:
    post:
      operationId: customers_delete_user
      description: Removes a specific role from a user within the current scope. This
        effectively revokes their permissions associated with that role.
      summary: Revoke a role from a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleDeleteRequest'
            examples:
              RevokeProjectAdminRoleFromUser:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                summary: Revoke project admin role from user
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: Role revoked successfully.
  /api/customers/{uuid}/history/:
    get:
      operationId: customers_history_list
      description: Returns the version history for this object. Only accessible by
        staff and support users.
      summary: Get version history
      parameters:
      - in: query
        name: abbreviation
        schema:
          type: string
        description: Abbreviation
      - in: query
        name: agreement_number
        schema:
          type: string
      - in: query
        name: archived
        schema:
          type: boolean
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: contact_details
        schema:
          type: string
        description: Contact details
      - in: query
        name: created_after
        schema:
          type: string
        description: Filter versions created after this timestamp (ISO 8601)
      - in: query
        name: created_before
        schema:
          type: string
        description: Filter versions created before this timestamp (ISO 8601)
      - in: query
        name: current_user_has_project_create_permission
        schema:
          type: boolean
        description: Return a list of customers where current user has project create
          permission.
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: organization_group_name
        schema:
          type: string
        description: Organization group name
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - in: query
        name: owned_by_current_user
        schema:
          type: boolean
        description: Return a list of customers where current user is owner.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, native name, abbreviation, domain, UUID, registration
          code or agreement number
      - in: query
        name: registration_code
        schema:
          type: string
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VersionHistory'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/customers/{uuid}/history/at/:
    get:
      operationId: customers_history_at_retrieve
      description: Returns the state of the object as it was at the specified timestamp.
        Only accessible by staff and support users.
      summary: Get object state at a specific timestamp
      parameters:
      - in: query
        name: timestamp
        schema:
          type: string
        description: ISO 8601 timestamp to query the object state at
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionHistory'
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
        '404':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
  /api/customers/{uuid}/list_users/:
    get:
      operationId: customers_list_users_list
      description: Retrieves a list of users who have a role within a specific scope
        (e.g., a project or an organization). The list can be filtered by user details
        or role.
      summary: List users and their roles in a scope
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - created_by_full_name
            - created_by_uuid
            - expiration_time
            - role_name
            - role_uuid
            - user_email
            - user_full_name
            - user_image
            - user_username
            - user_uuid
            - uuid
        description: Fields to include in response
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name
      - in: query
        name: native_name
        schema:
          type: string
        description: User native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: Ordering fields
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role
        schema:
          type: string
          format: uuid
        description: Role UUID or name
      - in: query
        name: search_string
        schema:
          type: string
        description: Search string for user
      - in: query
        name: user
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug
      - in: query
        name: user_url
        schema:
          type: string
        description: User URL
      - in: query
        name: username
        schema:
          type: string
        description: User username
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserRoleDetails'
                description: ''
              examples:
                ExampleUserRoleListResponse:
                  value:
                  - - uuid: a7e6b0a29a434d2889273c5240217a26
                      created: '2023-10-26T10:00:00Z'
                      expiration_time: '2024-12-31T23:59:59Z'
                      role_name: PROJECT.ADMIN
                      role_uuid: d8c2d5852d434937985392d24249b6d3
                      user_email: alice@example.com
                      user_full_name: Alice Smith
                      user_username: alice
                      user_uuid: 8f20242b638743b18a485f81ac685e13
                      user_image: null
                      created_by_full_name: Bob Johnson
                      created_by_uuid: b4e4c2f1a6f24a8d8e4c2f1a6f24a8d8
                  summary: Example user role list response
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/customers/{uuid}/project-digest-config/:
    get:
      operationId: customers_project_digest_config_retrieve
      description: Retrieve the project digest email configuration for this organization.
      summary: Get project digest configuration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectDigestConfig'
          description: ''
  /api/customers/{uuid}/project-digest-config/preview/:
    post:
      operationId: customers_project_digest_config_preview
      description: Returns rendered HTML preview of the digest for a specific project.
      summary: Preview digest for a project
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectDigestPreviewRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectDigestPreviewResponse'
          description: ''
  /api/customers/{uuid}/project-digest-config/send-test/:
    post:
      operationId: customers_project_digest_config_send_test
      description: Send a test digest email to the requesting user.
      summary: Send a test digest email
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/customers/{uuid}/stats/:
    get:
      operationId: customers_stats_retrieve
      description: Provides statistics about the resource usage (e.g., CPU, RAM, storage)
        for all projects within a customer. Can be filtered to show usage for the
        current month only.
      summary: Get customer resource usage statistics
      parameters:
      - in: query
        name: for_current_month
        schema:
          type: boolean
        description: If true, returns usage data for the current month only. Otherwise,
          returns total usage.
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentsUsageStats'
          description: ''
  /api/customers/{uuid}/update-project-digest-config/:
    put:
      operationId: customers_update_project_digest_config_update
      description: Update the project digest email configuration for this organization.
      summary: Update project digest configuration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectDigestConfigRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectDigestConfig'
          description: ''
    patch:
      operationId: customers_update_project_digest_config_partial_update
      description: Update the project digest email configuration for this organization.
      summary: Update project digest configuration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProjectDigestConfigRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectDigestConfig'
          description: ''
  /api/customers/{uuid}/update_organization_groups/:
    post:
      operationId: customers_update_organization_groups
      description: Assigns a customer to one or more organization groups. This action
        is restricted to staff users.
      summary: Update organization groups for a customer
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationGroupsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/customers/{uuid}/update_user/:
    post:
      operationId: customers_update_user
      description: Updates the expiration time for a user's existing role in the current
        scope. This is useful for extending or shortening the duration of a permission.
        To make a role permanent, set expiration_time to null.
      summary: Update a user's role expiration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleUpdateRequest'
            examples:
              ExtendRoleUntilMid-2025:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2025-06-30'
                summary: Extend role until mid-2025
              MakeARolePermanent:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: null
                summary: Make a role permanent
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleUpdateResponse:
                  value:
                    expiration_time: '2025-06-30T00:00:00Z'
                  summary: Successful role update response
          description: ''
  /api/customers/countries/:
    get:
      operationId: customers_countries_list
      description: Returns a list of countries that can be used when creating or updating
        a customer. The list can be configured by the service provider.
      summary: Get list of available countries
      parameters:
      - in: query
        name: abbreviation
        schema:
          type: string
        description: Abbreviation
      - in: query
        name: agreement_number
        schema:
          type: string
      - in: query
        name: archived
        schema:
          type: boolean
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: contact_details
        schema:
          type: string
        description: Contact details
      - in: query
        name: current_user_has_project_create_permission
        schema:
          type: boolean
        description: Return a list of customers where current user has project create
          permission.
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: organization_group_name
        schema:
          type: string
        description: Organization group name
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - in: query
        name: owned_by_current_user
        schema:
          type: boolean
        description: Return a list of customers where current user is owner.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, native name, abbreviation, domain, UUID, registration
          code or agreement number
      - in: query
        name: registration_code
        schema:
          type: string
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Country'
                description: ''
              examples:
                CountryListResponse:
                  value:
                  - - label: Estonia
                      value: EE
                    - label: Latvia
                      value: LV
                    - label: Finland
                      value: FI
                  summary: Country list response
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: customers_countries_count
      description: Get number of items in the collection matching the request parameters.
      summary: Get list of available countries
      parameters:
      - in: query
        name: abbreviation
        schema:
          type: string
        description: Abbreviation
      - in: query
        name: agreement_number
        schema:
          type: string
      - in: query
        name: archived
        schema:
          type: boolean
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: contact_details
        schema:
          type: string
        description: Contact details
      - in: query
        name: current_user_has_project_create_permission
        schema:
          type: boolean
        description: Return a list of customers where current user has project create
          permission.
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: organization_group_name
        schema:
          type: string
        description: Organization group name
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - in: query
        name: owned_by_current_user
        schema:
          type: boolean
        description: Return a list of customers where current user is owner.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, native name, abbreviation, domain, UUID, registration
          code or agreement number
      - in: query
        name: registration_code
        schema:
          type: string
      tags:
      - customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/daily-quotas/:
    get:
      operationId: daily_quotas_retrieve
      parameters:
      - in: query
        name: end
        schema:
          type: string
          format: date
        description: End date in format YYYY-MM-DD
      - in: query
        name: quota_names
        schema:
          type: array
          items:
            type: string
        description: List of quota names
      - in: query
        name: scope
        schema:
          type: string
          format: uuid
        description: UUID of the scope object
      - in: query
        name: start
        schema:
          type: string
          format: date
        description: Start date in format YYYY-MM-DD
      tags:
      - daily-quotas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: integer
          description: ''
  /api/data-access-logs/:
    get:
      operationId: data_access_logs_list
      parameters:
      - in: query
        name: accessor_type
        schema:
          type: string
          enum:
          - organization_member
          - self
          - service_provider
          - staff
          - support
        description: |+
          Type of accessor

      - in: query
        name: accessor_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: end_date
        schema:
          type: string
          format: date
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -accessor_type
            - -accessor_username
            - -timestamp
            - -user_username
            - accessor_type
            - accessor_username
            - timestamp
            - user_username
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
      - in: query
        name: start_date
        schema:
          type: string
          format: date
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      tags:
      - data-access-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GlobalUserDataAccessLog'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: data_access_logs_count
      parameters:
      - in: query
        name: accessor_type
        schema:
          type: string
          enum:
          - organization_member
          - self
          - service_provider
          - staff
          - support
        description: |+
          Type of accessor

      - in: query
        name: accessor_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: end_date
        schema:
          type: string
          format: date
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -accessor_type
            - -accessor_username
            - -timestamp
            - -user_username
            - accessor_type
            - accessor_username
            - timestamp
            - user_username
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
      - in: query
        name: start_date
        schema:
          type: string
          format: date
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      tags:
      - data-access-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/data-access-logs/{uuid}/:
    get:
      operationId: data_access_logs_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - data-access-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalUserDataAccessLog'
          description: ''
    delete:
      operationId: data_access_logs_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - data-access-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/database-stats/:
    get:
      operationId: database_stats_retrieve
      description: |-
        Retrieves comprehensive statistics about the PostgreSQL database including:
        - **Table statistics**: Top 10 largest tables by size
        - **Connection statistics**: Active, idle, and waiting connections with utilization
        - **Database size**: Total size, data size, and index size
        - **Cache performance**: Buffer cache and index hit ratios (should be >99%)
        - **Transaction statistics**: Commits, rollbacks, deadlocks
        - **Lock statistics**: Current locks and waiting queries
        - **Maintenance statistics**: Dead tuples, vacuum needs, oldest transaction age
        - **Active queries**: Currently running queries with duration
        - **Query performance**: Sequential vs index scan ratios
        - **Replication status**: WAL size and replication lag (if applicable)

        This information is useful for monitoring, debugging, and performance tuning.
        Requires support user permissions.
      summary: Get comprehensive database statistics
      tags:
      - database-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabaseStatsResponse'
          description: ''
  /api/debug/pubsub/circuit_breaker/:
    get:
      operationId: debug_pubsub_circuit_breaker_retrieve
      description: |-
        Get current STOMP circuit breaker state and statistics.

        Returns:
        - state: Current state (closed/open/half_open)
        - failure_count: Number of consecutive failures
        - success_count: Successes since last state change
        - last_failure_time: Timestamp of last failure
        - last_state_change: When state last changed
        - config: Circuit breaker configuration
        - state_history: Recent state transitions

        Requires staff permissions.
      summary: Get circuit breaker state
      tags:
      - debug
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CircuitBreakerStatus'
          description: ''
  /api/debug/pubsub/circuit_breaker_reset/:
    post:
      operationId: debug_pubsub_circuit_breaker_reset
      description: |-
        Manually reset the STOMP circuit breaker to CLOSED state.

        Use with caution - only when RabbitMQ is confirmed healthy.

        Requires staff permissions.
      summary: Reset circuit breaker
      tags:
      - debug
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CircuitBreakerReset'
          description: ''
  /api/debug/pubsub/dead_letter_queue/:
    get:
      operationId: debug_pubsub_dead_letter_queue_retrieve
      description: |-
        Get dead letter queue (DLQ) statistics.

        The DLQ receives messages that failed to be delivered to their original
        destination. This endpoint shows the current DLQ status.

        Note: DLQ is configured per-vhost. This endpoint checks all vhosts
        for queues with 'dlq' in the name.

        Requires staff permissions.
      summary: Get dead letter queue status
      tags:
      - debug
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeadLetterQueue'
          description: ''
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RmqStatsError'
          description: ''
  /api/debug/pubsub/message_state_cache/:
    get:
      operationId: debug_pubsub_message_state_cache_retrieve
      description: |-
        Get message state tracker cache statistics for idempotency.

        The message state tracker prevents duplicate message sends by caching
        the hash of message content. This endpoint provides cache statistics.

        Query params:
        - resource_uuid: Filter by specific resource
        - message_type: Filter by message type

        Requires staff permissions.
      summary: Get message state cache statistics
      tags:
      - debug
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageStateCache'
          description: ''
  /api/debug/pubsub/metrics/:
    get:
      operationId: debug_pubsub_metrics_retrieve
      description: |-
        Get message publishing metrics and statistics.

        Returns:
        - messages_sent: Total messages successfully sent
        - messages_failed: Total failed message attempts
        - messages_retried: Messages that required retry
        - messages_skipped: Messages skipped due to circuit breaker
        - circuit_breaker_trips: Number of times circuit opened
        - rate_limiter_rejections: Messages rejected by rate limiter
        - avg_publish_time_ms: Average publish latency
        - last_publish_time: Timestamp of last publish attempt

        Requires staff permissions.
      summary: Get publishing metrics
      tags:
      - debug
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishingMetrics'
          description: ''
  /api/debug/pubsub/metrics_reset/:
    post:
      operationId: debug_pubsub_metrics_reset
      description: |-
        Reset all publishing metrics counters to zero.

        Requires staff permissions.
      summary: Reset publishing metrics
      tags:
      - debug
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricsReset'
          description: ''
  /api/debug/pubsub/overview/:
    get:
      operationId: debug_pubsub_overview_retrieve
      description: |-
        Dashboard overview of pubsub system health.

        Combines circuit breaker state, publishing metrics, and health indicators
        into a single response suitable for monitoring dashboards.

        Requires staff permissions.
      summary: Get pubsub system health overview
      tags:
      - debug
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PubsubOverview'
          description: ''
  /api/debug/pubsub/queues/:
    get:
      operationId: debug_pubsub_queues_retrieve
      description: |-
        Get overview of subscription queues from RabbitMQ.

        Returns summary of subscription queues across all vhosts including
        message counts and queue statistics.

        Note: For detailed queue management, use /api/rabbitmq-stats/ endpoint.

        Requires staff permissions.
      summary: Get subscription queues overview
      tags:
      - debug
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscriptionQueuesOverview'
          description: ''
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RmqStatsError'
          description: ''
  /api/digitalocean-droplets/:
    get:
      operationId: digitalocean_droplets_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - cores
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - disk
            - error_message
            - error_traceback
            - external_ips
            - image
            - image_name
            - internal_ips
            - is_limit_based
            - is_usage_based
            - key_fingerprint
            - key_name
            - latitude
            - longitude
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - min_disk
            - min_ram
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - ram
            - region
            - region_name
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - ssh_public_key
            - start_time
            - state
            - url
            - user_data
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - digitalocean-droplets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DigitalOceanDroplet'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: digitalocean_droplets_create
      tags:
      - digitalocean-droplets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DigitalOceanDropletRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalOceanDroplet'
          description: ''
    head:
      operationId: digitalocean_droplets_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - digitalocean-droplets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/digitalocean-droplets/{uuid}/:
    get:
      operationId: digitalocean_droplets_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - cores
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - disk
            - error_message
            - error_traceback
            - external_ips
            - image
            - image_name
            - internal_ips
            - is_limit_based
            - is_usage_based
            - key_fingerprint
            - key_name
            - latitude
            - longitude
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - min_disk
            - min_ram
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - ram
            - region
            - region_name
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - ssh_public_key
            - start_time
            - state
            - url
            - user_data
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-droplets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalOceanDroplet'
          description: ''
    put:
      operationId: digitalocean_droplets_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-droplets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DigitalOceanDropletRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalOceanDroplet'
          description: ''
    patch:
      operationId: digitalocean_droplets_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-droplets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedDigitalOceanDropletRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalOceanDroplet'
          description: ''
    delete:
      operationId: digitalocean_droplets_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-droplets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/digitalocean-droplets/{uuid}/pull/:
    post:
      operationId: digitalocean_droplets_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-droplets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/digitalocean-droplets/{uuid}/resize/:
    post:
      operationId: digitalocean_droplets_resize
      description: |-
        To resize droplet, submit a POST request to the instance URL, specifying URI of a target size.

        Pass {'disk': true} along with target size in order to perform permanent resizing,
        which allows you to resize your disk space as well as CPU and RAM.
        After increasing the disk size, you will not be able to decrease it.

        Pass {'disk': false} along with target size in order to perform flexible resizing,
        which only upgrades your CPU and RAM. This option is reversible.

        Note that instance must be OFFLINE.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-droplets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DigitalOceanDropletResizeRequest'
            examples:
              Digitalocean-droplet-resize:
                value:
                  size: http://example.com/api/digitalocean-sizes/1ee385bc043249498cfeb8c7e3e079f0/
                summary: digitalocean-droplet-resize
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalOceanDropletResize'
          description: ''
  /api/digitalocean-droplets/{uuid}/restart/:
    post:
      operationId: digitalocean_droplets_restart
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-droplets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/digitalocean-droplets/{uuid}/set_erred/:
    post:
      operationId: digitalocean_droplets_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-droplets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/digitalocean-droplets/{uuid}/set_ok/:
    post:
      operationId: digitalocean_droplets_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-droplets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/digitalocean-droplets/{uuid}/start/:
    post:
      operationId: digitalocean_droplets_start
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-droplets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/digitalocean-droplets/{uuid}/stop/:
    post:
      operationId: digitalocean_droplets_stop
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-droplets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/digitalocean-droplets/{uuid}/unlink/:
    post:
      operationId: digitalocean_droplets_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-droplets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/digitalocean-images/:
    get:
      operationId: digitalocean_images_list
      parameters:
      - in: query
        name: distribution
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -distribution
            - -type
            - distribution
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: type
        schema:
          type: string
      tags:
      - digitalocean-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DigitalOceanImage'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: digitalocean_images_count
      parameters:
      - in: query
        name: distribution
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -distribution
            - -type
            - distribution
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: type
        schema:
          type: string
      tags:
      - digitalocean-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/digitalocean-images/{uuid}/:
    get:
      operationId: digitalocean_images_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalOceanImage'
          description: ''
  /api/digitalocean-regions/:
    get:
      operationId: digitalocean_regions_list
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - digitalocean-regions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DigitalOceanRegion'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: digitalocean_regions_count
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - digitalocean-regions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/digitalocean-regions/{uuid}/:
    get:
      operationId: digitalocean_regions_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-regions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalOceanRegion'
          description: ''
  /api/digitalocean-sizes/:
    get:
      operationId: digitalocean_sizes_list
      parameters:
      - in: query
        name: cores
        schema:
          type: integer
      - in: query
        name: disk
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: ram
        schema:
          type: integer
      tags:
      - digitalocean-sizes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DigitalOceanSize'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: digitalocean_sizes_count
      parameters:
      - in: query
        name: cores
        schema:
          type: integer
      - in: query
        name: disk
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: ram
        schema:
          type: integer
      tags:
      - digitalocean-sizes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/digitalocean-sizes/{uuid}/:
    get:
      operationId: digitalocean_sizes_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - digitalocean-sizes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalOceanSize'
          description: ''
  /api/email-logs/:
    get:
      operationId: email_logs_list
      parameters:
      - in: query
        name: body
        schema:
          type: string
      - in: query
        name: emails
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -sent_at
            - -subject
            - sent_at
            - subject
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: sent_at
        schema:
          type: string
          format: date
      - in: query
        name: subject
        schema:
          type: string
      tags:
      - email-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EmailLog'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: email_logs_count
      parameters:
      - in: query
        name: body
        schema:
          type: string
      - in: query
        name: emails
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -sent_at
            - -subject
            - sent_at
            - subject
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: sent_at
        schema:
          type: string
          format: date
      - in: query
        name: subject
        schema:
          type: string
      tags:
      - email-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/email-logs/{uuid}/:
    get:
      operationId: email_logs_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - email-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailLog'
          description: ''
  /api/event-subscription-queues/:
    get:
      operationId: event_subscription_queues_list
      parameters:
      - in: query
        name: event_subscription_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: object_type
        schema:
          type: string
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - event-subscription-queues
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EventSubscriptionQueue'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: event_subscription_queues_count
      parameters:
      - in: query
        name: event_subscription_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: object_type
        schema:
          type: string
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - event-subscription-queues
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/event-subscription-queues/{uuid}/:
    get:
      operationId: event_subscription_queues_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - event-subscription-queues
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscriptionQueue'
          description: ''
    delete:
      operationId: event_subscription_queues_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - event-subscription-queues
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/event-subscriptions/:
    get:
      operationId: event_subscriptions_list
      parameters:
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user_username
        schema:
          type: string
      - in: query
        name: user_uuid
        schema:
          type: string
      tags:
      - event-subscriptions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EventSubscription'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: event_subscriptions_create
      tags:
      - event-subscriptions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventSubscriptionRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscription'
          description: ''
    head:
      operationId: event_subscriptions_count
      parameters:
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user_username
        schema:
          type: string
      - in: query
        name: user_uuid
        schema:
          type: string
      tags:
      - event-subscriptions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/event-subscriptions/{uuid}/:
    get:
      operationId: event_subscriptions_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - event-subscriptions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscription'
          description: ''
    delete:
      operationId: event_subscriptions_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - event-subscriptions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/event-subscriptions/{uuid}/create_queue/:
    post:
      operationId: event_subscriptions_create_queue
      description: Create a RabbitMQ queue for receiving events for a specific offering
        and object type. The receiver must call this endpoint before subscribing via
        STOMP to ensure the queue is created with correct arguments (DLX, max-length,
        etc.).
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - event-subscriptions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventSubscriptionQueueCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscriptionQueue'
          description: ''
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscriptionQueue'
          description: ''
  /api/events/:
    get:
      operationId: events_list
      parameters:
      - in: query
        name: created_from
        schema:
          type: number
      - in: query
        name: created_to
        schema:
          type: number
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - context
            - created
            - event_type
            - message
            - uuid
      - in: query
        name: message
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      tags:
      - events
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Event'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: events_count
      parameters:
      - in: query
        name: created_from
        schema:
          type: number
      - in: query
        name: created_to
        schema:
          type: number
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: message
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      tags:
      - events
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/events-stats/:
    get:
      operationId: events_stats_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - events-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EventStats'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: events_stats_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - events-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/events/{id}/:
    get:
      operationId: events_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - context
            - created
            - event_type
            - message
            - uuid
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this event.
        required: true
      tags:
      - events
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
  /api/events/count/:
    get:
      operationId: events_count_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - context
            - created
            - event_type
            - message
            - uuid
      tags:
      - events
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
              examples:
                ValidExample:
                  value:
                    count: 12321
                  summary: Valid example
          description: ''
    head:
      operationId: events_count_count
      tags:
      - events
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/events/event_groups/:
    get:
      operationId: events_event_groups_retrieve
      description: |-
        Returns a list of groups with event types.
        Group is used in exclude_features query param.
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - context
            - created
            - event_type
            - message
            - uuid
      tags:
      - events
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
    head:
      operationId: events_event_groups_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - events
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/events/scope_types/:
    get:
      operationId: events_scope_types_retrieve
      description: Returns a list of scope types acceptable by events filter.
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - context
            - created
            - event_type
            - message
            - uuid
      tags:
      - events
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event'
          description: ''
    head:
      operationId: events_scope_types_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - events
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/expertise-categories/:
    get:
      operationId: expertise_categories_list
      parameters:
      - in: query
        name: code
        schema:
          type: string
      - in: query
        name: level
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -code
            - -level
            - -name
            - code
            - level
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
      tags:
      - expertise-categories
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExpertiseCategory'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: expertise_categories_count
      parameters:
      - in: query
        name: code
        schema:
          type: string
      - in: query
        name: level
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -code
            - -level
            - -name
            - code
            - level
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
      tags:
      - expertise-categories
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/expertise-categories/{uuid}/:
    get:
      operationId: expertise_categories_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - expertise-categories
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpertiseCategory'
          description: ''
  /api/external-links/:
    get:
      operationId: external_links_list
      description: Retrieve a list of external links available in the system.
      summary: List external links
      parameters:
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, link or description
      tags:
      - external-links
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExternalLink'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: external_links_create
      description: Create a new external link. This action is restricted to staff
        users.
      summary: Create an external link
      tags:
      - external-links
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalLinkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ExternalLinkRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ExternalLinkRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalLink'
          description: ''
    head:
      operationId: external_links_count
      description: Get number of items in the collection matching the request parameters.
      summary: List external links
      parameters:
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, link or description
      tags:
      - external-links
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/external-links/{uuid}/:
    get:
      operationId: external_links_retrieve
      description: Fetch the details of a specific external link by its UUID.
      summary: Retrieve external link
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - external-links
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalLink'
          description: ''
    put:
      operationId: external_links_update
      description: Update an existing external link. This action is restricted to
        staff users.
      summary: Update an external link
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - external-links
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalLinkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ExternalLinkRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ExternalLinkRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalLink'
          description: ''
    patch:
      operationId: external_links_partial_update
      description: Partially update an existing external link. This action is restricted
        to staff users.
      summary: Partially update an external link
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - external-links
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedExternalLinkRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedExternalLinkRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedExternalLinkRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalLink'
          description: ''
    delete:
      operationId: external_links_destroy
      description: Delete an existing external link. This action is restricted to
        staff users.
      summary: Delete an external link
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - external-links
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/feature-values/:
    post:
      operationId: feature_values
      description: Allows administrators to enable or disable specific feature flags
        in the system. The request should be a dictionary where keys are feature sections
        and values are dictionaries of feature keys and their boolean state.
      summary: Update feature flags
      tags:
      - feature-values
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
            examples:
              UpdateUserAndMarketplaceFeatures:
                value:
                  user:
                    ssh_keys: true
                  marketplace:
                    conceal_prices: true
                summary: Example of enabling SSH keys for users and concealing prices
                  in the marketplace.
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: string
              examples:
                SuccessfulResponse:
                  value: 2 features are updated.
                  summary: Example response after updating two features.
          description: ''
  /api/financial-reports/:
    get:
      operationId: financial_reports_list
      parameters:
      - in: query
        name: abbreviation
        schema:
          type: string
        description: Abbreviation
      - in: query
        name: agreement_number
        schema:
          type: string
      - in: query
        name: archived
        schema:
          type: boolean
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: contact_details
        schema:
          type: string
        description: Contact details
      - in: query
        name: current_user_has_project_create_permission
        schema:
          type: boolean
        description: Return a list of customers where current user has project create
          permission.
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: organization_group_name
        schema:
          type: string
        description: Organization group name
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - in: query
        name: owned_by_current_user
        schema:
          type: boolean
        description: Return a list of customers where current user is owner.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, native name, abbreviation, domain, UUID, registration
          code or agreement number
      - in: query
        name: registration_code
        schema:
          type: string
      tags:
      - financial-reports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FinancialReport'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: financial_reports_count
      parameters:
      - in: query
        name: abbreviation
        schema:
          type: string
        description: Abbreviation
      - in: query
        name: agreement_number
        schema:
          type: string
      - in: query
        name: archived
        schema:
          type: boolean
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: contact_details
        schema:
          type: string
        description: Contact details
      - in: query
        name: current_user_has_project_create_permission
        schema:
          type: boolean
        description: Return a list of customers where current user has project create
          permission.
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: organization_group_name
        schema:
          type: string
        description: Organization group name
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - in: query
        name: owned_by_current_user
        schema:
          type: boolean
        description: Return a list of customers where current user is owner.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, native name, abbreviation, domain, UUID, registration
          code or agreement number
      - in: query
        name: registration_code
        schema:
          type: string
      tags:
      - financial-reports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/financial-reports/{uuid}/:
    get:
      operationId: financial_reports_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - financial-reports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FinancialReport'
          description: ''
  /api/freeipa-profiles/:
    get:
      operationId: freeipa_profiles_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by username, user UUID, first name or last name
      - in: query
        name: user
        schema:
          type: string
          format: uuid
      tags:
      - freeipa-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FreeipaProfile'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: freeipa_profiles_create
      tags:
      - freeipa-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FreeipaProfileRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FreeipaProfile'
          description: ''
    head:
      operationId: freeipa_profiles_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by username, user UUID, first name or last name
      - in: query
        name: user
        schema:
          type: string
          format: uuid
      tags:
      - freeipa-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/freeipa-profiles/{uuid}/:
    get:
      operationId: freeipa_profiles_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - freeipa-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FreeipaProfile'
          description: ''
    put:
      operationId: freeipa_profiles_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - freeipa-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FreeipaProfileRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FreeipaProfile'
          description: ''
    patch:
      operationId: freeipa_profiles_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - freeipa-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FreeipaProfile'
          description: ''
  /api/freeipa-profiles/{uuid}/update_ssh_keys/:
    post:
      operationId: freeipa_profiles_update_ssh_keys
      description: Update SSH keys for profile.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - freeipa-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/google-auth/:
    get:
      operationId: google_auth_list
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - calendar_refresh_token
            - calendar_token
            - created
            - customer
            - customer_abbreviation
            - customer_country
            - customer_image
            - customer_name
            - customer_native_name
            - customer_slug
            - customer_uuid
            - description
            - enable_notifications
            - google_auth_url
            - image
            - offering_count
            - organization_groups
            - url
            - uuid
      - in: query
        name: has_credentials
        schema:
          type: boolean
        description: has_credentials
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - google-auth
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GoogleCredentials'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: google_auth_count
      parameters:
      - in: query
        name: has_credentials
        schema:
          type: boolean
        description: has_credentials
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - google-auth
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/google-auth/{uuid}/:
    get:
      operationId: google_auth_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - calendar_refresh_token
            - calendar_token
            - created
            - customer
            - customer_abbreviation
            - customer_country
            - customer_image
            - customer_name
            - customer_native_name
            - customer_slug
            - customer_uuid
            - description
            - enable_notifications
            - google_auth_url
            - image
            - offering_count
            - organization_groups
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - google-auth
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleCredentials'
          description: ''
  /api/google-auth/{uuid}/authorize/:
    get:
      operationId: google_auth_authorize_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - calendar_refresh_token
            - calendar_token
            - created
            - customer
            - customer_abbreviation
            - customer_country
            - customer_image
            - customer_name
            - customer_native_name
            - customer_slug
            - customer_uuid
            - description
            - enable_notifications
            - google_auth_url
            - image
            - offering_count
            - organization_groups
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - google-auth
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleCredentials'
          description: ''
  /api/google-auth/callback/:
    get:
      operationId: google_auth_callback_retrieve
      description: Callback endpoint for Google authorization.
      parameters:
      - in: query
        name: code
        schema:
          type: string
        description: Authorization code
        required: true
      - in: query
        name: state
        schema:
          type: string
        description: Service provider UUID
        required: true
      tags:
      - google-auth
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
    head:
      operationId: google_auth_callback_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: code
        schema:
          type: string
        description: Authorization code
        required: true
      - in: query
        name: state
        schema:
          type: string
        description: Service provider UUID
        required: true
      tags:
      - google-auth
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/hooks/:
    get:
      operationId: hooks_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - hooks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
    head:
      operationId: hooks_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - hooks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/hooks-email/:
    get:
      operationId: hooks_email_list
      parameters:
      - in: query
        name: author_email
        schema:
          type: string
      - in: query
        name: author_fullname
        schema:
          type: string
        description: User full name contains
      - in: query
        name: author_username
        schema:
          type: string
      - in: query
        name: author_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: email
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: last_published
        schema:
          type: string
          format: date-time
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by author name, username and email
      tags:
      - hooks-email
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EmailHook'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: hooks_email_create
      tags:
      - hooks-email
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailHookRequest'
            examples:
              Email-hook-create:
                value:
                  event_types:
                  - openstack_instance_start_succeeded
                  event_groups:
                  - users
                  email: test@example.com
                summary: email-hook-create
                description: You should specify list of event_types or event_groups.
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailHook'
          description: ''
    head:
      operationId: hooks_email_count
      parameters:
      - in: query
        name: author_email
        schema:
          type: string
      - in: query
        name: author_fullname
        schema:
          type: string
        description: User full name contains
      - in: query
        name: author_username
        schema:
          type: string
      - in: query
        name: author_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: email
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: last_published
        schema:
          type: string
          format: date-time
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by author name, username and email
      tags:
      - hooks-email
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/hooks-email/{uuid}/:
    get:
      operationId: hooks_email_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - hooks-email
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailHook'
          description: ''
    put:
      operationId: hooks_email_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - hooks-email
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailHookRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailHook'
          description: ''
    patch:
      operationId: hooks_email_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - hooks-email
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedEmailHookRequest'
            examples:
              Email-hook-update:
                value:
                  is_active: 'false'
                summary: email-hook-update
                description: temporarily disable hook without deleting it.
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailHook'
          description: ''
    delete:
      operationId: hooks_email_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - hooks-email
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/hooks-web/:
    get:
      operationId: hooks_web_list
      parameters:
      - in: query
        name: author_email
        schema:
          type: string
      - in: query
        name: author_fullname
        schema:
          type: string
        description: User full name contains
      - in: query
        name: author_username
        schema:
          type: string
      - in: query
        name: author_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: content_type
        schema:
          type: integer
          enum:
          - 1
          - 2
      - in: query
        name: destination_url
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: last_published
        schema:
          type: string
          format: date-time
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by author name, username and email
      tags:
      - hooks-web
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WebHook'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: hooks_web_create
      description: |-
        When hook is activated, POST request is issued against destination URL with the following data:

        .. code-block:: javascript

            {
                "timestamp": "2015-07-14T12:12:56.000000",
                "message": "Customer ABC LLC has been updated.",
                "type": "customer_update_succeeded",
                "context": {
                    "user_native_name": "Walter Lebrowski",
                    "customer_contact_details": "",
                    "user_username": "Walter",
                    "user_uuid": "1c3323fc4ae44120b57ec40dea1be6e6",
                    "customer_uuid": "4633bbbb0b3a4b91bffc0e18f853de85",
                    "ip_address": "8.8.8.8",
                    "user_full_name": "Walter Lebrowski",
                    "customer_abbreviation": "ABC LLC",
                    "customer_name": "ABC LLC"
                },
                "levelname": "INFO"
            }

        Note that context depends on event type.
      tags:
      - hooks-web
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebHookRequest'
            examples:
              Webhook-create:
                value:
                  event_types:
                  - customer_update_succeeded
                  event_groups:
                  - users
                  destination_url: http://example.com/
                summary: webhook-create
                description: You should specify list of event_types or event_groups.
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebHook'
          description: ''
    head:
      operationId: hooks_web_count
      parameters:
      - in: query
        name: author_email
        schema:
          type: string
      - in: query
        name: author_fullname
        schema:
          type: string
        description: User full name contains
      - in: query
        name: author_username
        schema:
          type: string
      - in: query
        name: author_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: content_type
        schema:
          type: integer
          enum:
          - 1
          - 2
      - in: query
        name: destination_url
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: last_published
        schema:
          type: string
          format: date-time
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by author name, username and email
      tags:
      - hooks-web
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/hooks-web/{uuid}/:
    get:
      operationId: hooks_web_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - hooks-web
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebHook'
          description: ''
    put:
      operationId: hooks_web_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - hooks-web
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebHookRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebHook'
          description: ''
    patch:
      operationId: hooks_web_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - hooks-web
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedWebHookRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebHook'
          description: ''
    delete:
      operationId: hooks_web_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - hooks-web
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/identity-bridge/:
    post:
      operationId: identity_bridge
      description: Allows Identity Service Domains (ISDs) to push user attributes
        to Waldur. Creates or updates a user based on username (CUID). Requires FEDERATED_IDENTITY_SYNC_ENABLED
        to be True. Caller must be staff or an identity manager with the declared
        source in managed_isds.
      summary: Push user attributes from an ISD
      tags:
      - identity-bridge
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentityBridgeRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityBridgeResponse'
          description: ''
  /api/identity-bridge/remove/:
    post:
      operationId: identity_bridge_remove
      description: Signals that a user has been removed from an ISD. Removes the source
        from active_isds, clears attributes owned by that source, and deactivates
        the user if no ISDs remain (configurable via FEDERATED_IDENTITY_DEACTIVATION_POLICY).
        Requires FEDERATED_IDENTITY_SYNC_ENABLED to be True. Caller must be staff
        or an identity manager with the declared source in managed_isds.
      summary: Remove a user from an ISD
      tags:
      - identity-bridge
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentityBridgeRemoveRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityBridgeRemoveResponse'
          description: ''
  /api/identity-bridge/stats/:
    get:
      operationId: identity_bridge_stats_retrieve
      description: 'Returns system-wide statistics about the Identity Bridge: feature
        configuration, per-ISD user counts, stale attribute detection, and total federated
        user counts. Staff only.'
      summary: Get Identity Bridge statistics
      tags:
      - identity-bridge
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityBridgeStats'
          description: ''
  /api/identity-providers/:
    get:
      operationId: identity_providers_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - identity-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IdentityProvider'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: identity_providers_create
      tags:
      - identity-providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentityProviderRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityProvider'
          description: ''
    head:
      operationId: identity_providers_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - identity-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/identity-providers/{provider}/:
    get:
      operationId: identity_providers_retrieve
      parameters:
      - in: path
        name: provider
        schema:
          type: string
        required: true
      tags:
      - identity-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityProvider'
          description: ''
    put:
      operationId: identity_providers_update
      parameters:
      - in: path
        name: provider
        schema:
          type: string
        required: true
      tags:
      - identity-providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentityProviderRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityProvider'
          description: ''
    patch:
      operationId: identity_providers_partial_update
      parameters:
      - in: path
        name: provider
        schema:
          type: string
        required: true
      tags:
      - identity-providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedIdentityProviderRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityProvider'
          description: ''
    delete:
      operationId: identity_providers_destroy
      parameters:
      - in: path
        name: provider
        schema:
          type: string
        required: true
      tags:
      - identity-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/identity-providers/discover_metadata/:
    post:
      operationId: identity_providers_discover_metadata
      description: Fetches OIDC discovery metadata from the provider and returns supported
        claims, scopes, and suggested mappings to Waldur User fields. Use this to
        configure attribute_mapping when setting up a new identity provider.
      summary: Discover OIDC provider metadata
      tags:
      - identity-providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverMetadataRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DiscoverMetadataResponse'
          description: ''
  /api/identity-providers/generate-mapping/:
    post:
      operationId: identity_providers_generate_mapping
      description: Generates a suggested attribute_mapping configuration based on
        the claims supported by an OIDC provider. This can be used as a starting point
        when creating a new identity provider.
      summary: Generate default attribute mapping
      tags:
      - identity-providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverMetadataRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  attribute_mapping:
                    type: object
                    additionalProperties:
                      type: string
                    description: Suggested mapping of Waldur fields to OIDC claims
                  extra_scope:
                    type: string
                    description: Suggested scopes to request (space-separated)
          description: ''
  /api/invoice-items/:
    get:
      operationId: invoice_items_list
      parameters:
      - in: query
        name: credit_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: month
        schema:
          type: integer
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: start_month
        schema:
          type: number
        description: Start month
      - in: query
        name: start_year
        schema:
          type: number
        description: Start year
      - in: query
        name: year
        schema:
          type: integer
      tags:
      - invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InvoiceItemDetail'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: invoice_items_count
      parameters:
      - in: query
        name: credit_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: month
        schema:
          type: integer
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: start_month
        schema:
          type: number
        description: Start month
      - in: query
        name: start_year
        schema:
          type: number
        description: Start year
      - in: query
        name: year
        schema:
          type: integer
      tags:
      - invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/invoice-items/{uuid}/:
    get:
      operationId: invoice_items_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceItemDetail'
          description: ''
    put:
      operationId: invoice_items_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoice-items
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceItemUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceItemUpdate'
          description: ''
    patch:
      operationId: invoice_items_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoice-items
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedInvoiceItemUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceItemUpdate'
          description: ''
    delete:
      operationId: invoice_items_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/invoice-items/{uuid}/consumptions/:
    get:
      operationId: invoice_items_consumptions_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceItemDetail'
          description: ''
  /api/invoice-items/{uuid}/create_compensation/:
    post:
      operationId: invoice_items_create_compensation
      description: Create compensation invoice item for selected invoice item.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoice-items
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceItemCompensationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceItemCompensation'
          description: ''
  /api/invoice-items/{uuid}/migrate_to/:
    post:
      operationId: invoice_items_migrate_to
      description: Move invoice item from one invoice to another one.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoice-items
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceItemMigrateToRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceItemMigrateTo'
          description: ''
  /api/invoice-items/costs/:
    get:
      operationId: invoice_items_costs_list
      description: Get costs breakdown for a project by year and month.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the project for which statistics should be calculated.
      tags:
      - invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InvoiceCost'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: invoice_items_costs_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the project for which statistics should be calculated.
      tags:
      - invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/invoice-items/customer_costs_for_period/:
    get:
      operationId: invoice_items_customer_costs_for_period_retrieve
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the project for which statistics should be calculated.
      - in: query
        name: period
        schema:
          type: integer
        description: Period for which statistics should be calculated.
      tags:
      - invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CostsForPeriod'
          description: ''
    head:
      operationId: invoice_items_customer_costs_for_period_count
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the project for which statistics should be calculated.
      - in: query
        name: period
        schema:
          type: integer
        description: Period for which statistics should be calculated.
      tags:
      - invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/invoice-items/project_costs_for_period/:
    get:
      operationId: invoice_items_project_costs_for_period_retrieve
      description: Get resource cost breakdown for a project over a specified period.
      parameters:
      - in: query
        name: period
        schema:
          type: integer
        description: Period for which statistics should be calculated (1, 3 or 12
          months).
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the project for which statistics should be calculated.
      tags:
      - invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CostsForPeriod'
          description: ''
    head:
      operationId: invoice_items_project_costs_for_period_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: period
        schema:
          type: integer
        description: Period for which statistics should be calculated (1, 3 or 12
          months).
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the project for which statistics should be calculated.
      tags:
      - invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/invoice-items/total_price/:
    get:
      operationId: invoice_items_total_price_retrieve
      description: Calculate total price for filtered invoice items.
      parameters:
      - in: query
        name: credit_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: month
        schema:
          type: integer
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: start_month
        schema:
          type: number
        description: Start month
      - in: query
        name: start_year
        schema:
          type: number
        description: Start year
      - in: query
        name: year
        schema:
          type: integer
      tags:
      - invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceItemTotalPrice'
          description: ''
    head:
      operationId: invoice_items_total_price_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: credit_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: month
        schema:
          type: integer
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: start_month
        schema:
          type: number
        description: Start month
      - in: query
        name: start_year
        schema:
          type: number
        description: Start year
      - in: query
        name: year
        schema:
          type: integer
      tags:
      - invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/invoice/send-financial-report-by-mail/:
    post:
      operationId: invoice_send_financial_report_by_mail
      tags:
      - invoice
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FinancialReportEmailRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/invoices/:
    get:
      operationId: invoices_list
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: end_date
        schema:
          type: string
          format: date
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - compensations
            - customer
            - customer_details
            - due_date
            - incurred_costs
            - invoice_date
            - issuer_details
            - items
            - month
            - number
            - payment_url
            - price
            - reference_number
            - state
            - tax
            - total
            - url
            - uuid
            - year
      - in: query
        name: month
        schema:
          type: integer
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -month
            - -year
            - created
            - month
            - year
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: start_date
        schema:
          type: string
          format: date
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - created
            - paid
            - pending
            - pending_finalization
        explode: true
        style: form
      - in: query
        name: year
        schema:
          type: integer
      tags:
      - invoices
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Invoice'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: invoices_count
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: end_date
        schema:
          type: string
          format: date
      - in: query
        name: month
        schema:
          type: integer
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -month
            - -year
            - created
            - month
            - year
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: start_date
        schema:
          type: string
          format: date
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - created
            - paid
            - pending
            - pending_finalization
        explode: true
        style: form
      - in: query
        name: year
        schema:
          type: integer
      tags:
      - invoices
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/invoices/{uuid}/:
    get:
      operationId: invoices_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - compensations
            - customer
            - customer_details
            - due_date
            - incurred_costs
            - invoice_date
            - issuer_details
            - items
            - month
            - number
            - payment_url
            - price
            - reference_number
            - state
            - tax
            - total
            - url
            - uuid
            - year
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoices
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
          description: ''
  /api/invoices/{uuid}/history/:
    get:
      operationId: invoices_history_list
      description: Returns the version history for this object. Only accessible by
        staff and support users.
      summary: Get version history
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date
      - in: query
        name: created_after
        schema:
          type: string
        description: Filter versions created after this timestamp (ISO 8601)
      - in: query
        name: created_before
        schema:
          type: string
        description: Filter versions created before this timestamp (ISO 8601)
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: end_date
        schema:
          type: string
          format: date
      - in: query
        name: month
        schema:
          type: integer
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -month
            - -year
            - created
            - month
            - year
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: start_date
        schema:
          type: string
          format: date
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - created
            - paid
            - pending
            - pending_finalization
        explode: true
        style: form
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: year
        schema:
          type: integer
      tags:
      - invoices
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VersionHistory'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/invoices/{uuid}/history/at/:
    get:
      operationId: invoices_history_at_retrieve
      description: Returns the state of the object as it was at the specified timestamp.
        Only accessible by staff and support users.
      summary: Get object state at a specific timestamp
      parameters:
      - in: query
        name: timestamp
        schema:
          type: string
        description: ISO 8601 timestamp to query the object state at
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoices
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionHistory'
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
        '404':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
  /api/invoices/{uuid}/items/:
    get:
      operationId: invoices_items_retrieve
      description: Retrieve a list of invoice items for the specified invoice.
      summary: Get invoice items
      parameters:
      - in: query
        name: conceal_compensation_items
        schema:
          type: boolean
        description: Conceal compensation items
      - in: query
        name: o
        schema:
          type: string
          enum:
          - project_name
          - -project_name
          - resource_name
          - -resource_name
          - provider_name
          - -provider_name
          - name
          - -name
        description: Order results by field
      - in: query
        name: offering_uuid
        schema:
          type: string
      - in: query
        name: project_uuid
        schema:
          type: string
      - in: query
        name: provider_uuid
        schema:
          type: string
      - in: query
        name: query
        schema:
          type: string
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoices
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceItem'
          description: ''
  /api/invoices/{uuid}/paid/:
    post:
      operationId: invoices_paid
      description: Mark invoice as paid and optionally create payment record with
        proof of payment.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoices
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaidRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PaidRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PaidRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
          description: ''
  /api/invoices/{uuid}/send_notification/:
    post:
      operationId: invoices_send_notification
      description: Schedule sending of a notification for the specified invoice.
      summary: Send invoice notification
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoices
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/invoices/{uuid}/set_backend_id/:
    post:
      operationId: invoices_set_backend_id
      description: Set backend ID for invoice.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoices
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BackendIdRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/invoices/{uuid}/set_payment_url/:
    post:
      operationId: invoices_set_payment_url
      description: Set payment URL for invoice.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoices
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentURLRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/invoices/{uuid}/set_reference_number/:
    post:
      operationId: invoices_set_reference_number
      description: Set reference number for invoice.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - invoices
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReferenceNumberRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/invoices/{uuid}/stats/:
    get:
      operationId: invoices_stats_list
      description: Spendings grouped by offerings and filtered by provider.
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: end_date
        schema:
          type: string
          format: date
      - in: query
        name: month
        schema:
          type: integer
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -month
            - -year
            - created
            - month
            - year
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: provider_uuid
        schema:
          type: string
      - in: query
        name: start_date
        schema:
          type: string
          format: date
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - created
            - paid
            - pending
            - pending_finalization
        explode: true
        style: form
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: year
        schema:
          type: integer
      tags:
      - invoices
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InvoiceStatsOffering'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/invoices/growth/:
    get:
      operationId: invoices_growth_retrieve
      description: Analyze invoice trends over time by comparing monthly totals for
        major customers versus others over the past year.
      parameters:
      - in: query
        name: accounting_is_running
        schema:
          type: boolean
      - in: query
        name: accounting_mode
        schema:
          type: string
      - in: query
        name: customers_count
        schema:
          type: integer
      tags:
      - invoices
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceGrowth'
          description: ''
    head:
      operationId: invoices_growth_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: accounting_is_running
        schema:
          type: boolean
      - in: query
        name: accounting_mode
        schema:
          type: string
      - in: query
        name: customers_count
        schema:
          type: integer
      tags:
      - invoices
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/invoices/import_usage/:
    post:
      operationId: invoices_import_usage
      description: Import component usage items as JSON data for multiple customers.
        Creates invoice items for the specified billing period. Items are deduplicated
        by name, customer, and billing period to prevent duplicates.
      summary: Import usage data
      tags:
      - invoices
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportUsageRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImportUsageResponse'
          description: ''
  /api/keycloak-groups/:
    get:
      operationId: keycloak_groups_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role
        schema:
          type: string
      - in: query
        name: scope_type
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - keycloak-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/KeycloakGroup'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: keycloak_groups_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role
        schema:
          type: string
      - in: query
        name: scope_type
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - keycloak-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/keycloak-groups/{uuid}/:
    get:
      operationId: keycloak_groups_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - keycloak-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeycloakGroup'
          description: ''
  /api/keycloak-user-group-memberships/:
    get:
      operationId: keycloak_user_group_memberships_list
      parameters:
      - in: query
        name: email
        schema:
          type: string
      - in: query
        name: first_name
        schema:
          type: string
      - in: query
        name: group_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: last_name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: scope_type
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - active
            - pending
        explode: true
        style: form
      - in: query
        name: username
        schema:
          type: string
      tags:
      - keycloak-user-group-memberships
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/KeycloakUserGroupMembership'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: keycloak_user_group_memberships_create
      tags:
      - keycloak-user-group-memberships
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KeycloakUserGroupMembershipRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeycloakUserGroupMembership'
          description: ''
    head:
      operationId: keycloak_user_group_memberships_count
      parameters:
      - in: query
        name: email
        schema:
          type: string
      - in: query
        name: first_name
        schema:
          type: string
      - in: query
        name: group_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: last_name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: scope_type
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - active
            - pending
        explode: true
        style: form
      - in: query
        name: username
        schema:
          type: string
      tags:
      - keycloak-user-group-memberships
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/keycloak-user-group-memberships/{uuid}/:
    get:
      operationId: keycloak_user_group_memberships_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - keycloak-user-group-memberships
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeycloakUserGroupMembership'
          description: ''
    put:
      operationId: keycloak_user_group_memberships_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - keycloak-user-group-memberships
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KeycloakUserGroupMembershipRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeycloakUserGroupMembership'
          description: ''
    patch:
      operationId: keycloak_user_group_memberships_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - keycloak-user-group-memberships
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedKeycloakUserGroupMembershipRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeycloakUserGroupMembership'
          description: ''
    delete:
      operationId: keycloak_user_group_memberships_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - keycloak-user-group-memberships
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/keys/:
    get:
      operationId: keys_list
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - fingerprint_md5
            - fingerprint_sha256
            - fingerprint_sha512
            - is_shared
            - name
            - public_key
            - type
            - url
            - user_uuid
            - uuid
      - in: query
        name: fingerprint_md5
        schema:
          type: string
      - in: query
        name: fingerprint_sha256
        schema:
          type: string
      - in: query
        name: fingerprint_sha512
        schema:
          type: string
      - in: query
        name: is_shared
        schema:
          type: boolean
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - keys
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SshKey'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: keys_create
      tags:
      - keys
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SshKeyRequest'
            examples:
              Ssh-key-create:
                value:
                  name: ssh_public_key1
                  public_key: ssh-rsa ... jhon@example.com
                summary: ssh-key-create
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SshKey'
          description: ''
    head:
      operationId: keys_count
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: fingerprint_md5
        schema:
          type: string
      - in: query
        name: fingerprint_sha256
        schema:
          type: string
      - in: query
        name: fingerprint_sha512
        schema:
          type: string
      - in: query
        name: is_shared
        schema:
          type: boolean
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - keys
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/keys/{uuid}/:
    get:
      operationId: keys_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - fingerprint_md5
            - fingerprint_sha256
            - fingerprint_sha512
            - is_shared
            - name
            - public_key
            - type
            - url
            - user_uuid
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - keys
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SshKey'
          description: ''
    delete:
      operationId: keys_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - keys
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/keys/{uuid}/history/:
    get:
      operationId: keys_history_list
      description: Returns the version history for this object. Only accessible by
        staff and support users.
      summary: Get version history
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: created_after
        schema:
          type: string
        description: Filter versions created after this timestamp (ISO 8601)
      - in: query
        name: created_before
        schema:
          type: string
        description: Filter versions created before this timestamp (ISO 8601)
      - in: query
        name: fingerprint_md5
        schema:
          type: string
      - in: query
        name: fingerprint_sha256
        schema:
          type: string
      - in: query
        name: fingerprint_sha512
        schema:
          type: string
      - in: query
        name: is_shared
        schema:
          type: boolean
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - keys
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VersionHistory'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/keys/{uuid}/history/at/:
    get:
      operationId: keys_history_at_retrieve
      description: Returns the state of the object as it was at the specified timestamp.
        Only accessible by staff and support users.
      summary: Get object state at a specific timestamp
      parameters:
      - in: query
        name: timestamp
        schema:
          type: string
        description: ISO 8601 timestamp to query the object state at
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - keys
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionHistory'
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
        '404':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
  /api/lexis-links/:
    get:
      operationId: lexis_links_list
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: query
        schema:
          type: string
        description: Filter by robot account username or type
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
      tags:
      - lexis-links
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LexisLink'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: lexis_links_create
      tags:
      - lexis-links
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LexisLinkCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          description: No response body
    head:
      operationId: lexis_links_count
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: query
        schema:
          type: string
        description: Filter by robot account username or type
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
      tags:
      - lexis-links
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/lexis-links/{uuid}/:
    get:
      operationId: lexis_links_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - lexis-links
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LexisLink'
          description: ''
    put:
      operationId: lexis_links_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - lexis-links
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LexisLinkRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LexisLink'
          description: ''
    patch:
      operationId: lexis_links_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - lexis-links
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLexisLinkRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LexisLink'
          description: ''
    delete:
      operationId: lexis_links_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - lexis-links
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: LEXIS_LINK.DELETE
        scopes:
        - '*'
        - robot_account.resource.offering.customer
  /api/maintenance-announcement-offerings/:
    get:
      operationId: maintenance_announcement_offerings_list
      description: Returns a paginated list of offerings affected by maintenance announcements.
      summary: List affected offerings for maintenance
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - maintenance-announcement-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MaintenanceAnnouncementOffering'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: maintenance_announcement_offerings_create
      description: Creates a new association between an offering and a maintenance
        announcement, specifying the expected impact.
      summary: Link an offering to a maintenance announcement
      tags:
      - maintenance-announcement-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaintenanceAnnouncementOfferingRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncementOffering'
          description: ''
    head:
      operationId: maintenance_announcement_offerings_count
      description: Get number of items in the collection matching the request parameters.
      summary: List affected offerings for maintenance
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - maintenance-announcement-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/maintenance-announcement-offerings/{uuid}/:
    get:
      operationId: maintenance_announcement_offerings_retrieve
      description: Returns the details of a specific link between a maintenance announcement
        and an offering, including the impact level and description.
      summary: Retrieve an affected offering link
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcement-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncementOffering'
          description: ''
    put:
      operationId: maintenance_announcement_offerings_update
      description: Updates the impact level or description for an offering linked
        to a maintenance announcement.
      summary: Update an affected offering link
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcement-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaintenanceAnnouncementOfferingRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncementOffering'
          description: ''
    patch:
      operationId: maintenance_announcement_offerings_partial_update
      description: Partially updates the impact level or description for an offering
        linked to a maintenance announcement.
      summary: Partially update an affected offering link
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcement-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMaintenanceAnnouncementOfferingRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncementOffering'
          description: ''
    delete:
      operationId: maintenance_announcement_offerings_destroy
      description: Removes the association between an offering and a maintenance announcement.
      summary: Unlink an offering from a maintenance announcement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcement-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/maintenance-announcement-template-offerings/:
    get:
      operationId: maintenance_announcement_template_offerings_list
      description: Returns a paginated list of associations between maintenance announcement
        templates and offerings.
      summary: List affected offering templates
      parameters:
      - in: query
        name: impact_level
        schema:
          type: integer
        description: Impact level
      - in: query
        name: maintenance_template_uuid
        schema:
          type: string
          format: uuid
        description: Maintenance template UUID
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        description: Service provider UUID
      tags:
      - maintenance-announcement-template-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MaintenanceAnnouncementOfferingTemplate'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: maintenance_announcement_template_offerings_create
      description: Creates a reusable association between an offering and a maintenance
        announcement template, specifying a default impact level and description.
      summary: Link an offering to a maintenance template
      tags:
      - maintenance-announcement-template-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaintenanceAnnouncementOfferingTemplateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncementOfferingTemplate'
          description: ''
    head:
      operationId: maintenance_announcement_template_offerings_count
      description: Get number of items in the collection matching the request parameters.
      summary: List affected offering templates
      parameters:
      - in: query
        name: impact_level
        schema:
          type: integer
        description: Impact level
      - in: query
        name: maintenance_template_uuid
        schema:
          type: string
          format: uuid
        description: Maintenance template UUID
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        description: Service provider UUID
      tags:
      - maintenance-announcement-template-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/maintenance-announcement-template-offerings/{uuid}/:
    get:
      operationId: maintenance_announcement_template_offerings_retrieve
      description: Returns the details of a specific link between a maintenance announcement
        template and an offering.
      summary: Retrieve an affected offering template link
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcement-template-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncementOfferingTemplate'
          description: ''
    put:
      operationId: maintenance_announcement_template_offerings_update
      description: Updates the default impact level or description for an offering
        linked to a maintenance template.
      summary: Update an affected offering template link
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcement-template-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaintenanceAnnouncementOfferingTemplateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncementOfferingTemplate'
          description: ''
    patch:
      operationId: maintenance_announcement_template_offerings_partial_update
      description: Partially updates the default impact level or description for an
        offering linked to a maintenance template.
      summary: Partially update an affected offering template link
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcement-template-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMaintenanceAnnouncementOfferingTemplateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncementOfferingTemplate'
          description: ''
    delete:
      operationId: maintenance_announcement_template_offerings_destroy
      description: Removes the association between an offering and a maintenance announcement
        template.
      summary: Unlink an offering from a maintenance template
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcement-template-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/maintenance-announcements/:
    get:
      operationId: maintenance_announcements_list
      description: Returns a paginated list of maintenance announcements.
      summary: List maintenance announcements
      parameters:
      - in: query
        name: maintenance_type
        schema:
          type: integer
        description: Maintenance type
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -scheduled_end
            - -scheduled_start
            - created
            - name
            - scheduled_end
            - scheduled_start
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scheduled_end_after
        schema:
          type: string
          format: date-time
        description: Scheduled end after
      - in: query
        name: scheduled_end_before
        schema:
          type: string
          format: date-time
        description: Scheduled end before
      - in: query
        name: scheduled_start_after
        schema:
          type: string
          format: date-time
        description: Scheduled start after
      - in: query
        name: scheduled_start_before
        schema:
          type: string
          format: date-time
        description: Scheduled start before
      - in: query
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        description: Service provider UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Cancelled
            - Completed
            - Draft
            - In progress
            - Scheduled
        description: |+
          Maintenance state

        explode: true
        style: form
      tags:
      - maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MaintenanceAnnouncement'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: maintenance_announcements_create
      description: Creates a new maintenance announcement in the 'Draft' state.
      summary: Create a maintenance announcement
      tags:
      - maintenance-announcements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaintenanceAnnouncementRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncement'
          description: ''
    head:
      operationId: maintenance_announcements_count
      description: Get number of items in the collection matching the request parameters.
      summary: List maintenance announcements
      parameters:
      - in: query
        name: maintenance_type
        schema:
          type: integer
        description: Maintenance type
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -scheduled_end
            - -scheduled_start
            - created
            - name
            - scheduled_end
            - scheduled_start
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scheduled_end_after
        schema:
          type: string
          format: date-time
        description: Scheduled end after
      - in: query
        name: scheduled_end_before
        schema:
          type: string
          format: date-time
        description: Scheduled end before
      - in: query
        name: scheduled_start_after
        schema:
          type: string
          format: date-time
        description: Scheduled start after
      - in: query
        name: scheduled_start_before
        schema:
          type: string
          format: date-time
        description: Scheduled start before
      - in: query
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        description: Service provider UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Cancelled
            - Completed
            - Draft
            - In progress
            - Scheduled
        description: |+
          Maintenance state

        explode: true
        style: form
      tags:
      - maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/maintenance-announcements-template/:
    get:
      operationId: maintenance_announcements_template_list
      description: Returns a paginated list of reusable templates for maintenance
        announcements.
      summary: List maintenance announcement templates
      parameters:
      - in: query
        name: maintenance_type
        schema:
          type: integer
        description: Maintenance type
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - created
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        description: Service provider UUID
      tags:
      - maintenance-announcements-template
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MaintenanceAnnouncementTemplate'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: maintenance_announcements_template_create
      description: Creates a new reusable template for maintenance announcements,
        including a default message and type.
      summary: Create a maintenance announcement template
      tags:
      - maintenance-announcements-template
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaintenanceAnnouncementTemplateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncementTemplate'
          description: ''
    head:
      operationId: maintenance_announcements_template_count
      description: Get number of items in the collection matching the request parameters.
      summary: List maintenance announcement templates
      parameters:
      - in: query
        name: maintenance_type
        schema:
          type: integer
        description: Maintenance type
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - created
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        description: Service provider UUID
      tags:
      - maintenance-announcements-template
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/maintenance-announcements-template/{uuid}/:
    get:
      operationId: maintenance_announcements_template_retrieve
      description: Returns the details of a specific maintenance announcement template.
      summary: Retrieve a maintenance announcement template
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcements-template
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncementTemplate'
          description: ''
    put:
      operationId: maintenance_announcements_template_update
      description: Updates an existing maintenance announcement template.
      summary: Update a maintenance announcement template
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcements-template
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaintenanceAnnouncementTemplateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncementTemplate'
          description: ''
    patch:
      operationId: maintenance_announcements_template_partial_update
      description: Partially updates an existing maintenance announcement template.
      summary: Partially update a maintenance announcement template
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcements-template
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMaintenanceAnnouncementTemplateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncementTemplate'
          description: ''
    delete:
      operationId: maintenance_announcements_template_destroy
      description: Deletes a maintenance announcement template.
      summary: Delete a maintenance announcement template
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcements-template
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/maintenance-announcements/{uuid}/:
    get:
      operationId: maintenance_announcements_retrieve
      description: Returns the details of a specific maintenance announcement.
      summary: Retrieve a maintenance announcement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncement'
          description: ''
    put:
      operationId: maintenance_announcements_update
      description: Updates an existing maintenance announcement.
      summary: Update a maintenance announcement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaintenanceAnnouncementRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncement'
          description: ''
    patch:
      operationId: maintenance_announcements_partial_update
      description: Partially updates an existing maintenance announcement.
      summary: Partially update a maintenance announcement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMaintenanceAnnouncementRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceAnnouncement'
          description: ''
    delete:
      operationId: maintenance_announcements_destroy
      description: Deletes a maintenance announcement.
      summary: Delete a maintenance announcement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/maintenance-announcements/{uuid}/cancel_maintenance/:
    post:
      operationId: maintenance_announcements_cancel_maintenance
      description: Transitions a 'Draft' or 'Scheduled' maintenance announcement to
        'Cancelled'.
      summary: Cancel the maintenance announcement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceActionResponse'
          description: ''
  /api/maintenance-announcements/{uuid}/complete_maintenance/:
    post:
      operationId: maintenance_announcements_complete_maintenance
      description: Transitions an 'In progress' maintenance announcement to 'Completed',
        indicating that the maintenance work has finished.
      summary: Complete the maintenance announcement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceActionResponse'
          description: ''
  /api/maintenance-announcements/{uuid}/schedule/:
    post:
      operationId: maintenance_announcements_schedule
      description: Transitions a 'Draft' maintenance announcement to the 'Scheduled'
        state, making it publicly visible.
      summary: Schedule/publish the maintenance announcement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceActionResponse'
          description: ''
  /api/maintenance-announcements/{uuid}/start_maintenance/:
    post:
      operationId: maintenance_announcements_start_maintenance
      description: Transitions a 'Scheduled' maintenance announcement to 'In progress',
        indicating that the maintenance work has begun.
      summary: Start the maintenance announcement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceActionResponse'
          description: ''
  /api/maintenance-announcements/{uuid}/unschedule/:
    post:
      operationId: maintenance_announcements_unschedule
      description: Transitions a 'Scheduled' maintenance announcement back to the
        'Draft' state, hiding it from public view.
      summary: Unschedule/unpublish the maintenance announcement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceActionResponse'
          description: ''
  /api/maintenance-announcements/maintenance_stats/:
    get:
      operationId: maintenance_announcements_maintenance_stats_retrieve
      description: Returns comprehensive statistics for maintenance announcements
        including counts by state, type, impact level, and daily breakdown.
      summary: Get maintenance announcement statistics
      parameters:
      - in: query
        name: end
        schema:
          type: string
        description: End date in YYYY-MM-DD format. Defaults to 30 days in the future.
      - in: query
        name: provider_uuid
        schema:
          type: string
        description: Filter by service provider UUID.
      - in: query
        name: start
        schema:
          type: string
        description: Start date in YYYY-MM-DD format. Defaults to 90 days ago.
      tags:
      - maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceStatsResponse'
          description: ''
    head:
      operationId: maintenance_announcements_maintenance_stats_count
      description: Get number of items in the collection matching the request parameters.
      summary: Get maintenance announcement statistics
      parameters:
      - in: query
        name: end
        schema:
          type: string
        description: End date in YYYY-MM-DD format. Defaults to 30 days in the future.
      - in: query
        name: provider_uuid
        schema:
          type: string
        description: Filter by service provider UUID.
      - in: query
        name: start
        schema:
          type: string
        description: Start date in YYYY-MM-DD format. Defaults to 90 days ago.
      tags:
      - maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/managed-rancher-cluster-resources/:
    get:
      operationId: managed_rancher_cluster_resources_list
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - attributes
            - available_actions
            - backend_id
            - backend_metadata
            - can_terminate
            - category_icon
            - category_title
            - category_uuid
            - created
            - creation_order
            - current_usages
            - customer_name
            - customer_slug
            - customer_uuid
            - description
            - downscaled
            - effective_id
            - end_date
            - end_date_requested_by
            - endpoints
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - last_sync
            - limit_usage
            - limits
            - modified
            - name
            - offering
            - offering_backend_id
            - offering_billable
            - offering_components
            - offering_description
            - offering_image
            - offering_name
            - offering_plugin_options
            - offering_shared
            - offering_slug
            - offering_state
            - offering_thumbnail
            - offering_type
            - offering_uuid
            - options
            - order_in_progress
            - parent_name
            - parent_offering_name
            - parent_offering_slug
            - parent_offering_uuid
            - parent_uuid
            - paused
            - plan
            - plan_description
            - plan_name
            - plan_unit
            - plan_uuid
            - project
            - project_description
            - project_end_date
            - project_end_date_requested_by
            - project_name
            - project_slug
            - project_uuid
            - provider_name
            - provider_slug
            - provider_uuid
            - renewal_date
            - report
            - resource_type
            - resource_uuid
            - restrict_member_access
            - scope
            - service_settings_uuid
            - slug
            - state
            - url
            - user_requires_reconsent
            - username
            - uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - managed-rancher-cluster-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Resource'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: managed_rancher_cluster_resources_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - managed-rancher-cluster-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/managed-rancher-cluster-resources/{uuid}/:
    get:
      operationId: managed_rancher_cluster_resources_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - attributes
            - available_actions
            - backend_id
            - backend_metadata
            - can_terminate
            - category_icon
            - category_title
            - category_uuid
            - created
            - creation_order
            - current_usages
            - customer_name
            - customer_slug
            - customer_uuid
            - description
            - downscaled
            - effective_id
            - end_date
            - end_date_requested_by
            - endpoints
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - last_sync
            - limit_usage
            - limits
            - modified
            - name
            - offering
            - offering_backend_id
            - offering_billable
            - offering_components
            - offering_description
            - offering_image
            - offering_name
            - offering_plugin_options
            - offering_shared
            - offering_slug
            - offering_state
            - offering_thumbnail
            - offering_type
            - offering_uuid
            - options
            - order_in_progress
            - parent_name
            - parent_offering_name
            - parent_offering_slug
            - parent_offering_uuid
            - parent_uuid
            - paused
            - plan
            - plan_description
            - plan_name
            - plan_unit
            - plan_uuid
            - project
            - project_description
            - project_end_date
            - project_end_date_requested_by
            - project_name
            - project_slug
            - project_uuid
            - provider_name
            - provider_slug
            - provider_uuid
            - renewal_date
            - report
            - resource_type
            - resource_uuid
            - restrict_member_access
            - scope
            - service_settings_uuid
            - slug
            - state
            - url
            - user_requires_reconsent
            - username
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - managed-rancher-cluster-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
          description: ''
  /api/managed-rancher-cluster-resources/{uuid}/add_node/:
    post:
      operationId: managed_rancher_cluster_resources_add_node
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - managed-rancher-cluster-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedRancherCreateNodeRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherNode'
          description: ''
      x-permissions:
      - permission: ORDER.APPROVE
        scopes:
        - project.customer
  /api/marketplace-bookings/{uuid}/:
    get:
      operationId: marketplace_bookings_list
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - marketplace-bookings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Booking'
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-categories/:
    get:
      operationId: marketplace_categories_list
      description: Returns a paginated list of marketplace categories.
      summary: List categories
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customers_offerings_state
        schema:
          type: array
          items:
            type: string
            enum:
            - 1
            - 2
            - 3
            - 4
            - 5
        description: |+
          Customers offerings state

        explode: true
        style: form
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - articles
            - available_offerings_count
            - columns
            - components
            - default_tenant_category
            - default_vm_category
            - default_volume_category
            - description
            - group
            - icon
            - offering_count
            - sections
            - title
            - url
            - uuid
      - in: query
        name: group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: has_shared
        schema:
          type: boolean
        description: Has shared
      - in: query
        name: offering_name
        schema:
          type: string
        description: Offering name contains
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: title
        schema:
          type: string
        description: Title contains
      tags:
      - marketplace-categories
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MarketplaceCategory'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_categories_create
      description: Creates a new marketplace category. Requires staff permissions.
      summary: Create a category
      tags:
      - marketplace-categories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MarketplaceCategoryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MarketplaceCategoryRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MarketplaceCategoryRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketplaceCategory'
          description: ''
    head:
      operationId: marketplace_categories_count
      description: Get number of items in the collection matching the request parameters.
      summary: List categories
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customers_offerings_state
        schema:
          type: array
          items:
            type: string
            enum:
            - 1
            - 2
            - 3
            - 4
            - 5
        description: |+
          Customers offerings state

        explode: true
        style: form
      - in: query
        name: group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: has_shared
        schema:
          type: boolean
        description: Has shared
      - in: query
        name: offering_name
        schema:
          type: string
        description: Offering name contains
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: title
        schema:
          type: string
        description: Title contains
      tags:
      - marketplace-categories
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-categories/{uuid}/:
    get:
      operationId: marketplace_categories_retrieve
      description: Returns details of a specific marketplace category.
      summary: Retrieve a category
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - articles
            - available_offerings_count
            - columns
            - components
            - default_tenant_category
            - default_vm_category
            - default_volume_category
            - description
            - group
            - icon
            - offering_count
            - sections
            - title
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-categories
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketplaceCategory'
          description: ''
    put:
      operationId: marketplace_categories_update
      description: Updates an existing marketplace category. Requires staff permissions.
      summary: Update a category
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-categories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MarketplaceCategoryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/MarketplaceCategoryRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/MarketplaceCategoryRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketplaceCategory'
          description: ''
    patch:
      operationId: marketplace_categories_partial_update
      description: Partially updates an existing marketplace category. Requires staff
        permissions.
      summary: Partially update a category
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-categories
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMarketplaceCategoryRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedMarketplaceCategoryRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedMarketplaceCategoryRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MarketplaceCategory'
          description: ''
    delete:
      operationId: marketplace_categories_destroy
      description: Deletes a marketplace category. Requires staff permissions.
      summary: Delete a category
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-categories
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-category-columns/:
    get:
      operationId: marketplace_category_columns_list
      description: Returns a paginated list of category columns used for resource
        table rendering.
      summary: List category columns
      parameters:
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: title
        schema:
          type: string
        description: Title contains
      tags:
      - marketplace-category-columns
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CategoryColumn'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_category_columns_create
      description: Creates a new category column. Requires staff permissions.
      summary: Create a category column
      tags:
      - marketplace-category-columns
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryColumnRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryColumn'
          description: ''
    head:
      operationId: marketplace_category_columns_count
      description: Get number of items in the collection matching the request parameters.
      summary: List category columns
      parameters:
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: title
        schema:
          type: string
        description: Title contains
      tags:
      - marketplace-category-columns
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-category-columns/{uuid}/:
    get:
      operationId: marketplace_category_columns_retrieve
      description: Returns details of a specific category column.
      summary: Retrieve a category column
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-category-columns
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryColumn'
          description: ''
    put:
      operationId: marketplace_category_columns_update
      description: Updates an existing category column. Requires staff permissions.
      summary: Update a category column
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-category-columns
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryColumnRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryColumn'
          description: ''
    patch:
      operationId: marketplace_category_columns_partial_update
      description: Partially updates an existing category column. Requires staff permissions.
      summary: Partially update a category column
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-category-columns
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCategoryColumnRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryColumn'
          description: ''
    delete:
      operationId: marketplace_category_columns_destroy
      description: Deletes a category column. Requires staff permissions.
      summary: Delete a category column
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-category-columns
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-category-component-usages/:
    get:
      operationId: marketplace_category_component_usages_list
      description: "\n        Returns a paginated list of aggregated component usages\
        \ for marketplace categories.\n        This data is scoped to either a customer\
        \ or a project and represents the total usage\n        of a component type\
        \ (e.g., total 'CPU hours' used across all resources of a certain category\n\
        \        within a project).\n\n        The list **must** be filtered by a\
        \ `scope` parameter (either a customer or project URL).\n        "
      summary: List aggregated category component usages
      parameters:
      - in: query
        name: date_after
        schema:
          type: string
          format: date
        description: Date after or equal to
      - in: query
        name: date_before
        schema:
          type: string
          format: date
        description: Date before or equal to
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - category_title
            - category_uuid
            - date
            - fixed_usage
            - measured_unit
            - name
            - reported_usage
            - scope
            - type
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-category-component-usages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CategoryComponentUsage'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_category_component_usages_count
      description: Get number of items in the collection matching the request parameters.
      summary: List aggregated category component usages
      parameters:
      - in: query
        name: date_after
        schema:
          type: string
          format: date
        description: Date after or equal to
      - in: query
        name: date_before
        schema:
          type: string
          format: date
        description: Date before or equal to
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-category-component-usages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-category-component-usages/{id}/:
    get:
      operationId: marketplace_category_component_usages_retrieve
      description: Returns the details of a single aggregated usage record for a category
        component, identified by its database ID.
      summary: Retrieve an aggregated category component usage record
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - category_title
            - category_uuid
            - date
            - fixed_usage
            - measured_unit
            - name
            - reported_usage
            - scope
            - type
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this category component usage.
        required: true
      tags:
      - marketplace-category-component-usages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryComponentUsage'
          description: ''
  /api/marketplace-category-components/:
    get:
      operationId: marketplace_category_components_list
      description: Returns a paginated list of all components defined at the category
        level. These act as templates for components in offerings.
      summary: List category components
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-category-components
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CategoryComponents'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_category_components_create
      description: Creates a new component for a category. Requires staff permissions.
      summary: Create a category component
      tags:
      - marketplace-category-components
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryComponentsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryComponents'
          description: ''
    head:
      operationId: marketplace_category_components_count
      description: Get number of items in the collection matching the request parameters.
      summary: List category components
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-category-components
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-category-components/{id}/:
    get:
      operationId: marketplace_category_components_retrieve
      description: Returns the details of a specific category component, identified
        by its ID.
      summary: Retrieve a category component
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this category component.
        required: true
      tags:
      - marketplace-category-components
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryComponents'
          description: ''
    put:
      operationId: marketplace_category_components_update
      description: Updates an existing category component. Requires staff permissions.
      summary: Update a category component
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this category component.
        required: true
      tags:
      - marketplace-category-components
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryComponentsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryComponents'
          description: ''
    patch:
      operationId: marketplace_category_components_partial_update
      description: Partially updates an existing category component. Requires staff
        permissions.
      summary: Partially update a category component
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this category component.
        required: true
      tags:
      - marketplace-category-components
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCategoryComponentsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryComponents'
          description: ''
    delete:
      operationId: marketplace_category_components_destroy
      description: Deletes a category component. Requires staff permissions.
      summary: Delete a category component
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this category component.
        required: true
      tags:
      - marketplace-category-components
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-category-groups/:
    get:
      operationId: marketplace_category_groups_list
      description: Returns a paginated list of category groups.
      summary: List category groups
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - description
            - icon
            - title
            - url
            - uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: title
        schema:
          type: string
      tags:
      - marketplace-category-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CategoryGroup'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_category_groups_create
      description: Creates a new category group. Requires staff permissions.
      summary: Create a category group
      tags:
      - marketplace-category-groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryGroupRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CategoryGroupRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CategoryGroupRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryGroup'
          description: ''
    head:
      operationId: marketplace_category_groups_count
      description: Get number of items in the collection matching the request parameters.
      summary: List category groups
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: title
        schema:
          type: string
      tags:
      - marketplace-category-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-category-groups/{uuid}/:
    get:
      operationId: marketplace_category_groups_retrieve
      description: Returns details of a specific category group.
      summary: Retrieve a category group
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - description
            - icon
            - title
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-category-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryGroup'
          description: ''
    put:
      operationId: marketplace_category_groups_update
      description: Updates an existing category group. Requires staff permissions.
      summary: Update a category group
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-category-groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryGroupRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CategoryGroupRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CategoryGroupRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryGroup'
          description: ''
    patch:
      operationId: marketplace_category_groups_partial_update
      description: Partially updates an existing category group. Requires staff permissions.
      summary: Partially update a category group
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-category-groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCategoryGroupRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCategoryGroupRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCategoryGroupRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryGroup'
          description: ''
    delete:
      operationId: marketplace_category_groups_destroy
      description: Deletes a category group. Requires staff permissions.
      summary: Delete a category group
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-category-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-category-help-articles/:
    get:
      operationId: marketplace_category_help_articles_list
      description: Returns a paginated list of all help articles associated with marketplace
        categories.
      summary: List category help articles
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-category-help-articles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CategoryHelpArticles'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_category_help_articles_create
      description: Creates a new help article and associates it with one or more categories.
        Requires staff permissions.
      summary: Create a category help article
      tags:
      - marketplace-category-help-articles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryHelpArticlesRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryHelpArticles'
          description: ''
    head:
      operationId: marketplace_category_help_articles_count
      description: Get number of items in the collection matching the request parameters.
      summary: List category help articles
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-category-help-articles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-category-help-articles/{id}/:
    get:
      operationId: marketplace_category_help_articles_retrieve
      description: Returns the details of a specific help article, identified by its
        ID.
      summary: Retrieve a category help article
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this category help article.
        required: true
      tags:
      - marketplace-category-help-articles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryHelpArticles'
          description: ''
    put:
      operationId: marketplace_category_help_articles_update
      description: Updates an existing help article. Requires staff permissions.
      summary: Update a category help article
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this category help article.
        required: true
      tags:
      - marketplace-category-help-articles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryHelpArticlesRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryHelpArticles'
          description: ''
    patch:
      operationId: marketplace_category_help_articles_partial_update
      description: Partially updates an existing help article. Requires staff permissions.
      summary: Partially update a category help article
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this category help article.
        required: true
      tags:
      - marketplace-category-help-articles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCategoryHelpArticlesRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryHelpArticles'
          description: ''
    delete:
      operationId: marketplace_category_help_articles_destroy
      description: Deletes a help article. Requires staff permissions.
      summary: Delete a category help article
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this category help article.
        required: true
      tags:
      - marketplace-category-help-articles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-component-usages/:
    get:
      operationId: marketplace_component_usages_list
      description: Returns a paginated list of component usage records for resources.
        This data is used for billing and usage tracking.
      summary: List component usage records
      parameters:
      - in: query
        name: billing_period
        schema:
          type: string
          format: date
      - in: query
        name: billing_period_month
        schema:
          type: number
        description: Billing period month
      - in: query
        name: billing_period_year
        schema:
          type: number
        description: Billing period year
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_after
        schema:
          type: string
          format: date
        description: Date after or equal to
      - in: query
        name: date_before
        schema:
          type: string
          format: date
        description: Date before or equal to
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - billing_period
            - created
            - customer_name
            - customer_uuid
            - date
            - description
            - measured_unit
            - modified_by
            - name
            - offering_name
            - offering_uuid
            - project_name
            - project_uuid
            - recurring
            - resource_name
            - resource_uuid
            - type
            - usage
            - uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -billing_period
            - -usage
            - billing_period
            - usage
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: resource
        schema:
          type: string
        description: Resource URL
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: type
        schema:
          type: string
        description: Component type
      tags:
      - marketplace-component-usages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ComponentUsage'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_component_usages_count
      description: Get number of items in the collection matching the request parameters.
      summary: List component usage records
      parameters:
      - in: query
        name: billing_period
        schema:
          type: string
          format: date
      - in: query
        name: billing_period_month
        schema:
          type: number
        description: Billing period month
      - in: query
        name: billing_period_year
        schema:
          type: number
        description: Billing period year
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_after
        schema:
          type: string
          format: date
        description: Date after or equal to
      - in: query
        name: date_before
        schema:
          type: string
          format: date
        description: Date before or equal to
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -billing_period
            - -usage
            - billing_period
            - usage
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: resource
        schema:
          type: string
        description: Resource URL
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: type
        schema:
          type: string
        description: Component type
      tags:
      - marketplace-component-usages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-component-usages/{uuid}/:
    get:
      operationId: marketplace_component_usages_retrieve
      description: Returns the details of a specific component usage record.
      summary: Retrieve a component usage record
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - billing_period
            - created
            - customer_name
            - customer_uuid
            - date
            - description
            - measured_unit
            - modified_by
            - name
            - offering_name
            - offering_uuid
            - project_name
            - project_uuid
            - recurring
            - resource_name
            - resource_uuid
            - type
            - usage
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-component-usages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentUsage'
          description: ''
  /api/marketplace-component-usages/{uuid}/set_user_usage/:
    post:
      operationId: marketplace_component_usages_set_user_usage
      description: "\n        Allows a service provider to report usage for a specific\
        \ user associated with a resource's component.\n        This is used for detailed,\
        \ per-user usage tracking within a single resource.\n\n        - If a user-specific\
        \ usage record already exists for the given component usage, it will be updated.\n\
        \        - Otherwise, a new record is created.\n        "
      summary: Set user-specific component usage
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-component-usages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComponentUserUsageCreateRequest'
            examples:
              ReportUsageForASpecificUser:
                value:
                  user: http://testserver/api/marketplace-offering-users/a1b2c3d4e5f678901234567890abcdef/
                  username: johndoe
                  usage: 50.75
                summary: Example of reporting usage for a user identified by their
                  OfferingUser link.
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          description: No response body
      x-permissions:
      - permission: RESOURCE.SET_USAGE
        scopes:
        - resource.offering
        - resource.offering.customer
  /api/marketplace-component-usages/set_usage/:
    post:
      operationId: marketplace_component_usages_set_usage
      description: "\n        Allows a service provider to report usage for one or\
        \ more components of a specific resource.\n        This endpoint is typically\
        \ used by backend systems or agents to submit periodic usage data.\n\n   \
        \     - If a `plan_period` is provided, the usage is associated with that\
        \ period.\n        - If only a `resource` is provided, the system will determine\
        \ the correct plan period based on the current date.\n        - If a usage\
        \ record for the same resource, component, and billing period already exists,\
        \ it will be updated. Otherwise, a new record is created.\n        "
      summary: Set component usage for a resource
      tags:
      - marketplace-component-usages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComponentUsageCreateRequest'
            examples:
              ReportUsageForMultipleComponents:
                value:
                  plan_period: a1b2c3d4-e5f6-7890-1234-567890abcdef
                  usages:
                  - type: cpu
                    amount: 120.5
                    description: CPU usage for the last period
                  - type: ram
                    amount: 240.0
                    description: RAM usage for the last period
                    recurring: true
                summary: Example of reporting usage for 'cpu' and 'ram' components.
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          description: No response body
  /api/marketplace-component-user-usages/:
    get:
      operationId: marketplace_component_user_usages_list
      description: "\n        Returns a paginated list of component usage records\
        \ attributed to specific users.\n        This provides a granular view of\
        \ resource consumption, breaking down the total usage of a component\n   \
        \     by individual users.\n        "
      summary: List user-specific component usages
      parameters:
      - in: query
        name: billing_period_month
        schema:
          type: number
        description: Billing period month
      - in: query
        name: billing_period_year
        schema:
          type: number
        description: Billing period year
      - in: query
        name: component_usage__billing_period
        schema:
          type: string
          format: date
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_after
        schema:
          type: string
          format: date
        description: Date after or equal to
      - in: query
        name: date_before
        schema:
          type: string
          format: date
        description: Date before or equal .google/docsto
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - billing_period
            - component_type
            - component_usage
            - created
            - customer_name
            - customer_uuid
            - date
            - description
            - measured_unit
            - modified
            - offering_name
            - offering_uuid
            - project_name
            - project_uuid
            - resource_name
            - resource_uuid
            - usage
            - user
            - username
            - uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -component_usage__billing_period
            - -usage
            - -username
            - component_usage__billing_period
            - usage
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: resource
        schema:
          type: string
        description: Resource URL
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: type
        schema:
          type: string
        description: Component type
      - in: query
        name: username
        schema:
          type: string
        description: Username contains
      tags:
      - marketplace-component-user-usages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ComponentUserUsage'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_component_user_usages_count
      description: Get number of items in the collection matching the request parameters.
      summary: List user-specific component usages
      parameters:
      - in: query
        name: billing_period_month
        schema:
          type: number
        description: Billing period month
      - in: query
        name: billing_period_year
        schema:
          type: number
        description: Billing period year
      - in: query
        name: component_usage__billing_period
        schema:
          type: string
          format: date
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_after
        schema:
          type: string
          format: date
        description: Date after or equal to
      - in: query
        name: date_before
        schema:
          type: string
          format: date
        description: Date before or equal .google/docsto
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -component_usage__billing_period
            - -usage
            - -username
            - component_usage__billing_period
            - usage
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: resource
        schema:
          type: string
        description: Resource URL
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: type
        schema:
          type: string
        description: Component type
      - in: query
        name: username
        schema:
          type: string
        description: Username contains
      tags:
      - marketplace-component-user-usages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-component-user-usages/{uuid}/:
    get:
      operationId: marketplace_component_user_usages_retrieve
      description: Returns the details of a single user-specific component usage record.
      summary: Retrieve a user-specific component usage record
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - billing_period
            - component_type
            - component_usage
            - created
            - customer_name
            - customer_uuid
            - date
            - description
            - measured_unit
            - modified
            - offering_name
            - offering_uuid
            - project_name
            - project_uuid
            - resource_name
            - resource_uuid
            - usage
            - user
            - username
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-component-user-usages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentUserUsage'
          description: ''
  /api/marketplace-course-accounts/:
    get:
      operationId: marketplace_course_accounts_list
      description: Returns a paginated list of course accounts accessible to the current
        user.
      summary: List course accounts
      parameters:
      - in: query
        name: email
        schema:
          type: string
        description: Email contains
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -email
            - -modified
            - -project_end_date
            - -project_name
            - -project_start_date
            - -state
            - -username
            - created
            - email
            - modified
            - project_end_date
            - project_name
            - project_start_date
            - state
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_end_date_after
        schema:
          type: string
          format: date
        description: Project end date range
      - in: query
        name: project_end_date_before
        schema:
          type: string
          format: date
        description: Project end date range
      - in: query
        name: project_start_date_after
        schema:
          type: string
          format: date
        description: Project start date range
      - in: query
        name: project_start_date_before
        schema:
          type: string
          format: date
        description: Project start date range
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Closed
            - Erred
            - OK
        description: |+
          Course account state

        explode: true
        style: form
      - in: query
        name: username
        schema:
          type: string
        description: Username
      tags:
      - marketplace-course-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CourseAccount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_course_accounts_create
      description: Creates a new temporary course account within a specified course
        project.
      summary: Create a course account
      tags:
      - marketplace-course-accounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CourseAccountRequest'
            examples:
              CreateACourseAccount:
                value:
                  project: a1b2c3d4-e5f6-7890-1234-567890abcdef
                  email: student@example.com
                  description: Account for summer course
                summary: Create a course account
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseAccount'
              examples:
                CreateACourseAccount:
                  value:
                    project: a1b2c3d4-e5f6-7890-1234-567890abcdef
                    email: student@example.com
                    description: Account for summer course
                  summary: Create a course account
          description: ''
    head:
      operationId: marketplace_course_accounts_count
      description: Get number of items in the collection matching the request parameters.
      summary: List course accounts
      parameters:
      - in: query
        name: email
        schema:
          type: string
        description: Email contains
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -email
            - -modified
            - -project_end_date
            - -project_name
            - -project_start_date
            - -state
            - -username
            - created
            - email
            - modified
            - project_end_date
            - project_name
            - project_start_date
            - state
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_end_date_after
        schema:
          type: string
          format: date
        description: Project end date range
      - in: query
        name: project_end_date_before
        schema:
          type: string
          format: date
        description: Project end date range
      - in: query
        name: project_start_date_after
        schema:
          type: string
          format: date
        description: Project start date range
      - in: query
        name: project_start_date_before
        schema:
          type: string
          format: date
        description: Project start date range
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Closed
            - Erred
            - OK
        description: |+
          Course account state

        explode: true
        style: form
      - in: query
        name: username
        schema:
          type: string
        description: Username
      tags:
      - marketplace-course-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-course-accounts/{uuid}/:
    get:
      operationId: marketplace_course_accounts_retrieve
      description: Returns the details of a specific course account.
      summary: Retrieve a course account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-course-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseAccount'
          description: ''
    delete:
      operationId: marketplace_course_accounts_destroy
      description: Deletes a course account, which triggers a 'close' operation in
        the backend.
      summary: Delete (close) a course account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-course-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: PROJECT.COURSE_ACCOUNT_MANAGE
        scopes:
        - project
        - project.customer
  /api/marketplace-course-accounts/create_bulk/:
    post:
      operationId: marketplace_course_accounts_create_bulk
      description: Creates multiple course accounts within a specified course project
        in a single request.
      summary: Bulk create course accounts
      parameters:
      - in: query
        name: email
        schema:
          type: string
        description: Email contains
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -email
            - -modified
            - -project_end_date
            - -project_name
            - -project_start_date
            - -state
            - -username
            - created
            - email
            - modified
            - project_end_date
            - project_name
            - project_start_date
            - state
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_end_date_after
        schema:
          type: string
          format: date
        description: Project end date range
      - in: query
        name: project_end_date_before
        schema:
          type: string
          format: date
        description: Project end date range
      - in: query
        name: project_start_date_after
        schema:
          type: string
          format: date
        description: Project start date range
      - in: query
        name: project_start_date_before
        schema:
          type: string
          format: date
        description: Project start date range
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Closed
            - Erred
            - OK
        description: |+
          Course account state

        explode: true
        style: form
      - in: query
        name: username
        schema:
          type: string
        description: Username
      tags:
      - marketplace-course-accounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CourseAccountsBulkCreateRequest'
            examples:
              BulkCreateThreeCourseAccounts:
                value:
                  project: a1b2c3d4-e5f6-7890-1234-567890abcdef
                  course_accounts:
                  - email: student1@example.com
                    description: Student One
                  - email: student2@example.com
                    description: Student Two
                  - email: student3@example.com
                summary: Bulk create three course accounts
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CourseAccount'
                description: ''
              examples:
                BulkCreateThreeCourseAccounts:
                  value:
                  - project: a1b2c3d4-e5f6-7890-1234-567890abcdef
                    course_accounts:
                    - email: student1@example.com
                      description: Student One
                    - email: student2@example.com
                      description: Student Two
                    - email: student3@example.com
                  summary: Bulk create three course accounts
          description: ''
  /api/marketplace-customer-component-usage-policies/:
    get:
      operationId: marketplace_customer_component_usage_policies_list
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-customer-component-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerComponentUsagePolicy'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_customer_component_usage_policies_create
      tags:
      - marketplace-customer-component-usage-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerComponentUsagePolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerComponentUsagePolicy'
          description: ''
    head:
      operationId: marketplace_customer_component_usage_policies_count
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-customer-component-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-customer-component-usage-policies/{uuid}/:
    get:
      operationId: marketplace_customer_component_usage_policies_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-customer-component-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerComponentUsagePolicy'
          description: ''
    put:
      operationId: marketplace_customer_component_usage_policies_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-customer-component-usage-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerComponentUsagePolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerComponentUsagePolicy'
          description: ''
    patch:
      operationId: marketplace_customer_component_usage_policies_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-customer-component-usage-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCustomerComponentUsagePolicyRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerComponentUsagePolicy'
          description: ''
    delete:
      operationId: marketplace_customer_component_usage_policies_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-customer-component-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-customer-component-usage-policies/actions/:
    get:
      operationId: marketplace_customer_component_usage_policies_actions_retrieve
      tags:
      - marketplace-customer-component-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerComponentUsagePolicy'
          description: ''
    head:
      operationId: marketplace_customer_component_usage_policies_actions_count
      tags:
      - marketplace-customer-component-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-customer-estimated-cost-policies/:
    get:
      operationId: marketplace_customer_estimated_cost_policies_list
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-customer-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerEstimatedCostPolicy'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_customer_estimated_cost_policies_create
      tags:
      - marketplace-customer-estimated-cost-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerEstimatedCostPolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerEstimatedCostPolicy'
          description: ''
    head:
      operationId: marketplace_customer_estimated_cost_policies_count
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-customer-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-customer-estimated-cost-policies/{uuid}/:
    get:
      operationId: marketplace_customer_estimated_cost_policies_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-customer-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerEstimatedCostPolicy'
          description: ''
    put:
      operationId: marketplace_customer_estimated_cost_policies_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-customer-estimated-cost-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerEstimatedCostPolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerEstimatedCostPolicy'
          description: ''
    patch:
      operationId: marketplace_customer_estimated_cost_policies_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-customer-estimated-cost-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCustomerEstimatedCostPolicyRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerEstimatedCostPolicy'
          description: ''
    delete:
      operationId: marketplace_customer_estimated_cost_policies_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-customer-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-customer-estimated-cost-policies/actions/:
    get:
      operationId: marketplace_customer_estimated_cost_policies_actions_retrieve
      tags:
      - marketplace-customer-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerEstimatedCostPolicy'
          description: ''
    head:
      operationId: marketplace_customer_estimated_cost_policies_actions_count
      tags:
      - marketplace-customer-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-customer-service-accounts/:
    get:
      operationId: marketplace_customer_service_accounts_list
      summary: List service accounts
      parameters:
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: email
        schema:
          type: string
        description: Email contains
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Closed
            - Erred
            - OK
        description: |+
          Service account state

        explode: true
        style: form
      - in: query
        name: username
        schema:
          type: string
        description: Username
      tags:
      - marketplace-customer-service-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerServiceAccount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_customer_service_accounts_create
      description: Creates a new service account scoped to a specific customer (organization).
        This generates an API key that can be used for automated access to resources
        across all projects within that customer.
      summary: Create a customer service account
      tags:
      - marketplace-customer-service-accounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerServiceAccountRequest'
            examples:
              CreateACustomerServiceAccount:
                value:
                  customer: a1b2c3d4-e5f6-7890-1234-567890abcdef
                  email: billing-bot@example.com
                  description: Service account for billing and reporting
                  preferred_identifier: billing-bot-customer-alpha
                summary: Create a customer service account
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerServiceAccount'
              examples:
                CreateACustomerServiceAccount:
                  value:
                    customer: a1b2c3d4-e5f6-7890-1234-567890abcdef
                    email: billing-bot@example.com
                    description: Service account for billing and reporting
                    preferred_identifier: billing-bot-customer-alpha
                  summary: Create a customer service account
          description: ''
    head:
      operationId: marketplace_customer_service_accounts_count
      summary: List service accounts
      parameters:
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: email
        schema:
          type: string
        description: Email contains
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Closed
            - Erred
            - OK
        description: |+
          Service account state

        explode: true
        style: form
      - in: query
        name: username
        schema:
          type: string
        description: Username
      tags:
      - marketplace-customer-service-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-customer-service-accounts/{uuid}/:
    get:
      operationId: marketplace_customer_service_accounts_retrieve
      summary: Retrieve a service account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-customer-service-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerServiceAccount'
          description: ''
    put:
      operationId: marketplace_customer_service_accounts_update
      summary: Update a service account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-customer-service-accounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerServiceAccountRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerServiceAccount'
          description: ''
      x-permissions:
      - permission: SERVICE_ACCOUNT.MANAGE
        scopes:
        - customer
    patch:
      operationId: marketplace_customer_service_accounts_partial_update
      summary: Partially update a service account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-customer-service-accounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCustomerServiceAccountRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerServiceAccount'
          description: ''
      x-permissions:
      - permission: SERVICE_ACCOUNT.MANAGE
        scopes:
        - customer
    delete:
      operationId: marketplace_customer_service_accounts_destroy
      description: Deactivates a customer service account and revokes its API key.
      summary: Close a customer service account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-customer-service-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: SERVICE_ACCOUNT.MANAGE
        scopes:
        - customer
  /api/marketplace-customer-service-accounts/{uuid}/rotate_api_key/:
    post:
      operationId: marketplace_customer_service_accounts_rotate_api_key
      description: Generates a new API key for the service account, immediately invalidating
        the old one. The new key is returned in the response.
      summary: Rotate API key for a customer service account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-customer-service-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerServiceAccount'
          description: ''
      x-permissions:
      - permission: SERVICE_ACCOUNT.MANAGE
        scopes:
        - customer
  /api/marketplace-demo-presets/info/{name}/:
    get:
      operationId: marketplace_demo_presets_info_retrieve
      description: Returns detailed information about a specific demo preset. Staff
        access only.
      summary: Get demo preset details
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: Name of the preset
        required: true
      tags:
      - marketplace-demo-presets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DemoPreset'
          description: ''
        '404':
          description: No response body
    head:
      operationId: marketplace_demo_presets_info_count
      description: Get number of items in the collection matching the request parameters.
      summary: Get demo preset details
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: Name of the preset
        required: true
      tags:
      - marketplace-demo-presets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-demo-presets/list/:
    get:
      operationId: marketplace_demo_presets_list_list
      description: Returns a list of available demo data presets. Staff access only.
      summary: List demo presets
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-demo-presets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DemoPreset'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_demo_presets_list_count
      description: Get number of items in the collection matching the request parameters.
      summary: List demo presets
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-demo-presets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-demo-presets/load/{name}/:
    post:
      operationId: marketplace_demo_presets_load
      description: Load a demo preset into the database. This operation will optionally
        clean up existing data before loading. Staff access only.
      summary: Load demo preset
      parameters:
      - in: path
        name: name
        schema:
          type: string
        description: Name of the preset to load
        required: true
      tags:
      - marketplace-demo-presets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DemoPresetLoadRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DemoPresetLoadResponse'
          description: ''
        '400':
          description: No response body
        '404':
          description: No response body
  /api/marketplace-global-categories/:
    get:
      operationId: marketplace_global_categories_retrieve
      description: "\n        Returns a dictionary mapping marketplace category UUIDs\
        \ to the count of active (non-terminated)\n        resources the current user\
        \ has access to within that category. This is primarily used for UI\n    \
        \    dashboards or sidebars to display the number of resources in each category\
        \ filter.\n\n        The counts can be further filtered by providing a `project_uuid`\
        \ or `customer_uuid`.\n        "
      summary: Get resource counts by category
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Filter counts by resources within a specific customer.
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Filter counts by resources within a specific project.
      tags:
      - marketplace-global-categories
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
              examples:
                ExampleOfCategoryResourceCounts:
                  value:
                    a1b2c3d4e5f678901234567890abcdef: 5
                    b2c3d4e5f678901234567890abcdef12: 2
                    c3d4e5f678901234567890abcdef1234: 10
                  summary: A dictionary of category UUIDs and their corresponding
                    resource counts.
                  description: The keys are the UUIDs of the categories (in hex format),
                    and the values are the number of non-terminated resources the
                    user can see in that category.
          description: ''
  /api/marketplace-integration-statuses/:
    get:
      operationId: marketplace_integration_statuses_list
      description: Returns a paginated list of integration statuses for offerings.
        This is used to monitor the connectivity and health of backend agents (e.g.,
        site agents) associated with offerings.
      summary: List integration statuses
      parameters:
      - in: query
        name: agent_type
        schema:
          type: string
        description: Agent type
      - in: query
        name: customer_uuid
        schema:
          type: string
        description: Customer UUID
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -last_request_timestamp
            - last_request_timestamp
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: status
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Disconnected
            - Unknown
        description: |+
          Integration status

        explode: true
        style: form
      tags:
      - marketplace-integration-statuses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IntegrationStatusDetails'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_integration_statuses_count
      description: Get number of items in the collection matching the request parameters.
      summary: List integration statuses
      parameters:
      - in: query
        name: agent_type
        schema:
          type: string
        description: Agent type
      - in: query
        name: customer_uuid
        schema:
          type: string
        description: Customer UUID
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -last_request_timestamp
            - last_request_timestamp
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: status
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Disconnected
            - Unknown
        description: |+
          Integration status

        explode: true
        style: form
      tags:
      - marketplace-integration-statuses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-integration-statuses/{uuid}/:
    get:
      operationId: marketplace_integration_statuses_retrieve
      description: Returns the details of a specific integration status, including
        the agent type, status, and last request timestamp.
      summary: Retrieve an integration status
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-integration-statuses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationStatusDetails'
          description: ''
  /api/marketplace-offering-estimated-cost-policies/:
    get:
      operationId: marketplace_offering_estimated_cost_policies_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-offering-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingEstimatedCostPolicy'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_offering_estimated_cost_policies_create
      tags:
      - marketplace-offering-estimated-cost-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingEstimatedCostPolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingEstimatedCostPolicy'
          description: ''
    head:
      operationId: marketplace_offering_estimated_cost_policies_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-offering-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-offering-estimated-cost-policies/{uuid}/:
    get:
      operationId: marketplace_offering_estimated_cost_policies_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingEstimatedCostPolicy'
          description: ''
    put:
      operationId: marketplace_offering_estimated_cost_policies_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-estimated-cost-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingEstimatedCostPolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingEstimatedCostPolicy'
          description: ''
    patch:
      operationId: marketplace_offering_estimated_cost_policies_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-estimated-cost-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOfferingEstimatedCostPolicyRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingEstimatedCostPolicy'
          description: ''
    delete:
      operationId: marketplace_offering_estimated_cost_policies_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-offering-estimated-cost-policies/actions/:
    get:
      operationId: marketplace_offering_estimated_cost_policies_actions_retrieve
      description: List available actions for OfferingEstimatedCostPolicy
      tags:
      - marketplace-offering-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingEstimatedCostPolicy'
          description: ''
    head:
      operationId: marketplace_offering_estimated_cost_policies_actions_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - marketplace-offering-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-offering-files/:
    get:
      operationId: marketplace_offering_files_list
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - file
            - name
            - offering
            - url
            - uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - created
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-offering-files
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingFile'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_offering_files_create
      tags:
      - marketplace-offering-files
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingFileRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OfferingFileRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OfferingFileRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingFile'
          description: ''
    head:
      operationId: marketplace_offering_files_count
      parameters:
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - created
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-offering-files
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-offering-files/{uuid}/:
    get:
      operationId: marketplace_offering_files_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - file
            - name
            - offering
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-files
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingFile'
          description: ''
    delete:
      operationId: marketplace_offering_files_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-files
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-offering-permissions/:
    get:
      operationId: marketplace_offering_permissions_list
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name contains
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: native_name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -email
            - -expiration_time
            - -full_name
            - -native_name
            - -role
            - -username
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role_name
        schema:
          type: string
        description: Role name contains
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
        description: Role UUID
      - in: query
        name: scope_name
        schema:
          type: string
        description: Scope name
      - in: query
        name: scope_type
        schema:
          type: string
        description: Scope type
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: user
        schema:
          type: string
          format: uuid
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug contains
      - in: query
        name: user_url
        schema:
          type: string
      - in: query
        name: username
        schema:
          type: string
      tags:
      - marketplace-offering-permissions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingPermission'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_offering_permissions_count
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name contains
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: native_name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -email
            - -expiration_time
            - -full_name
            - -native_name
            - -role
            - -username
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role_name
        schema:
          type: string
        description: Role name contains
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
        description: Role UUID
      - in: query
        name: scope_name
        schema:
          type: string
        description: Scope name
      - in: query
        name: scope_type
        schema:
          type: string
        description: Scope type
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: user
        schema:
          type: string
          format: uuid
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug contains
      - in: query
        name: user_url
        schema:
          type: string
      - in: query
        name: username
        schema:
          type: string
      tags:
      - marketplace-offering-permissions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-offering-permissions-log/:
    get:
      operationId: marketplace_offering_permissions_log_list
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name contains
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: native_name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -email
            - -expiration_time
            - -full_name
            - -native_name
            - -role
            - -username
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role_name
        schema:
          type: string
        description: Role name contains
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
        description: Role UUID
      - in: query
        name: scope_name
        schema:
          type: string
        description: Scope name
      - in: query
        name: scope_type
        schema:
          type: string
        description: Scope type
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: user
        schema:
          type: string
          format: uuid
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug contains
      - in: query
        name: user_url
        schema:
          type: string
      - in: query
        name: username
        schema:
          type: string
      tags:
      - marketplace-offering-permissions-log
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingPermission'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_offering_permissions_log_count
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name contains
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: native_name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -email
            - -expiration_time
            - -full_name
            - -native_name
            - -role
            - -username
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role_name
        schema:
          type: string
        description: Role name contains
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
        description: Role UUID
      - in: query
        name: scope_name
        schema:
          type: string
        description: Scope name
      - in: query
        name: scope_type
        schema:
          type: string
        description: Scope type
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: user
        schema:
          type: string
          format: uuid
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug contains
      - in: query
        name: user_url
        schema:
          type: string
      - in: query
        name: username
        schema:
          type: string
      tags:
      - marketplace-offering-permissions-log
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-offering-permissions-log/{id}/:
    get:
      operationId: marketplace_offering_permissions_log_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user role.
        required: true
      tags:
      - marketplace-offering-permissions-log
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingPermission'
          description: ''
  /api/marketplace-offering-permissions/{id}/:
    get:
      operationId: marketplace_offering_permissions_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user role.
        required: true
      tags:
      - marketplace-offering-permissions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingPermission'
          description: ''
  /api/marketplace-offering-referrals/:
    get:
      operationId: marketplace_offering_referrals_list
      description: Returns a paginated list of Datacite referrals associated with
        marketplace offerings. Referrals represent relationships between an offering
        (identified by a DOI) and other research outputs, such as publications or
        datasets. The list must be filtered by the offering's scope.
      summary: List Datacite referrals for offerings
      parameters:
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -published
            - -relation_type
            - -resource_type
            - published
            - relation_type
            - resource_type
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-offering-referrals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingReferral'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_offering_referrals_count
      description: Get number of items in the collection matching the request parameters.
      summary: List Datacite referrals for offerings
      parameters:
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -published
            - -relation_type
            - -resource_type
            - published
            - relation_type
            - resource_type
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-offering-referrals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-offering-referrals/{uuid}/:
    get:
      operationId: marketplace_offering_referrals_retrieve
      description: Returns the details of a single Datacite referral record, identified
        by its UUID. Details include the related identifier (PID), the type of relationship,
        and metadata about the related work.
      summary: Retrieve a specific Datacite referral
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-referrals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingReferral'
          description: ''
  /api/marketplace-offering-terms-of-service/:
    get:
      operationId: marketplace_offering_terms_of_service_list
      description: 'Returns a paginated list of Terms of Service configurations for
        offerings. Visibility depends on user permissions: staff/support see all;
        service providers see their own; regular users see ToS for offerings they
        have consented to or shared offerings.'
      summary: List Terms of Service configurations
      parameters:
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -modified
            - -version
            - created
            - modified
            - version
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
        description: Offering URL
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: requires_reconsent
        schema:
          type: boolean
        description: Requires reconsent
      - in: query
        name: version
        schema:
          type: string
        description: Version
      tags:
      - marketplace-offering-terms-of-service
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingTermsOfService'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_offering_terms_of_service_create
      description: Creates a new Terms of Service configuration for an offering. Only
        one active ToS configuration is allowed per offering.
      summary: Create a Terms of Service configuration
      tags:
      - marketplace-offering-terms-of-service
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingTermsOfServiceCreateRequest'
            examples:
              CreateANewActiveToSForAnOffering:
                value:
                  offering: http://testserver/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-1234-567890abcdef/
                  terms_of_service: <h1>New Terms</h1><p>Users must agree to these
                    terms...</p>
                  version: '2.0'
                  is_active: true
                  requires_reconsent: true
                summary: Create a new active ToS for an offering
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingTermsOfServiceCreate'
              examples:
                CreateANewActiveToSForAnOffering:
                  value:
                    offering: http://testserver/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-1234-567890abcdef/
                    terms_of_service: <h1>New Terms</h1><p>Users must agree to these
                      terms...</p>
                    version: '2.0'
                    is_active: true
                    requires_reconsent: true
                  summary: Create a new active ToS for an offering
          description: ''
    head:
      operationId: marketplace_offering_terms_of_service_count
      description: Get number of items in the collection matching the request parameters.
      summary: List Terms of Service configurations
      parameters:
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -modified
            - -version
            - created
            - modified
            - version
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
        description: Offering URL
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: requires_reconsent
        schema:
          type: boolean
        description: Requires reconsent
      - in: query
        name: version
        schema:
          type: string
        description: Version
      tags:
      - marketplace-offering-terms-of-service
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-offering-terms-of-service/{uuid}/:
    get:
      operationId: marketplace_offering_terms_of_service_retrieve
      description: Returns the details of a specific Terms of Service configuration.
      summary: Retrieve a Terms of Service configuration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-terms-of-service
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingTermsOfService'
          description: ''
    put:
      operationId: marketplace_offering_terms_of_service_update
      description: Updates an existing Terms of Service configuration. Note that some
        fields like `version` and `requires_reconsent` are protected and cannot be
        changed after creation.
      summary: Update a Terms of Service configuration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-terms-of-service
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingTermsOfServiceRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingTermsOfService'
          description: ''
      x-permissions:
      - permission: OFFERING.UPDATE
        scopes:
        - offering.customer
    patch:
      operationId: marketplace_offering_terms_of_service_partial_update
      description: Partially updates an existing Terms of Service configuration.
      summary: Partially update a Terms of Service configuration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-terms-of-service
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOfferingTermsOfServiceRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingTermsOfService'
          description: ''
      x-permissions:
      - permission: OFFERING.UPDATE
        scopes:
        - offering.customer
    delete:
      operationId: marketplace_offering_terms_of_service_destroy
      description: Deletes a Terms of Service configuration. This is a hard delete
        and should be used with caution.
      summary: Delete a Terms of Service configuration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-terms-of-service
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE
        scopes:
        - offering.customer
  /api/marketplace-offering-usage-policies/:
    get:
      operationId: marketplace_offering_usage_policies_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-offering-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingUsagePolicy'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_offering_usage_policies_create
      tags:
      - marketplace-offering-usage-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingUsagePolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUsagePolicy'
          description: ''
    head:
      operationId: marketplace_offering_usage_policies_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-offering-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-offering-usage-policies/{uuid}/:
    get:
      operationId: marketplace_offering_usage_policies_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUsagePolicy'
          description: ''
    put:
      operationId: marketplace_offering_usage_policies_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-usage-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingUsagePolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUsagePolicy'
          description: ''
    patch:
      operationId: marketplace_offering_usage_policies_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-usage-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOfferingUsagePolicyRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUsagePolicy'
          description: ''
    delete:
      operationId: marketplace_offering_usage_policies_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-offering-usage-policies/actions/:
    get:
      operationId: marketplace_offering_usage_policies_actions_retrieve
      tags:
      - marketplace-offering-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUsagePolicy'
          description: ''
    head:
      operationId: marketplace_offering_usage_policies_actions_count
      tags:
      - marketplace-offering-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-offering-user-checklist-completions/:
    get:
      operationId: marketplace_offering_user_checklist_completions_list
      description: "\n        Returns a paginated list of all checklist completions\
        \ for offering users that the current user is allowed to see.\n        This\
        \ endpoint is used by service providers to monitor compliance status and by\
        \ users to see their own required checklists.\n        Visibility follows\
        \ the same rules as the `OfferingUsers` endpoint.\n        "
      summary: List checklist completions for offering users
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: is_completed
        schema:
          type: boolean
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -is_completed
            - -modified
            - is_completed
            - modified
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Filter by offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: Filter by user UUID
      tags:
      - marketplace-offering-user-checklist-completions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserChecklistCompletion'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_offering_user_checklist_completions_count
      description: Get number of items in the collection matching the request parameters.
      summary: List checklist completions for offering users
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: is_completed
        schema:
          type: boolean
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -is_completed
            - -modified
            - is_completed
            - modified
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Filter by offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: Filter by user UUID
      tags:
      - marketplace-offering-user-checklist-completions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-offering-user-checklist-completions/{id}/:
    get:
      operationId: marketplace_offering_user_checklist_completions_retrieve
      description: Returns the details of a specific checklist completion for an offering
        user.
      summary: Retrieve a checklist completion
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Checklist completion.
        required: true
      tags:
      - marketplace-offering-user-checklist-completions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserChecklistCompletion'
          description: ''
  /api/marketplace-offering-user-roles/:
    get:
      operationId: marketplace_offering_user_roles_list
      parameters:
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-offering-user-roles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingUserRole'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_offering_user_roles_create
      tags:
      - marketplace-offering-user-roles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingUserRoleRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUserRole'
          description: ''
    head:
      operationId: marketplace_offering_user_roles_count
      parameters:
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-offering-user-roles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-offering-user-roles/{uuid}/:
    get:
      operationId: marketplace_offering_user_roles_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-user-roles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUserRole'
          description: ''
    put:
      operationId: marketplace_offering_user_roles_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-user-roles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingUserRoleRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUserRole'
          description: ''
      x-permissions:
      - permission: OFFERING.MANAGE_USER_ROLE
        scopes:
        - offering.customer
    patch:
      operationId: marketplace_offering_user_roles_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-user-roles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOfferingUserRoleRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUserRole'
          description: ''
      x-permissions:
      - permission: OFFERING.MANAGE_USER_ROLE
        scopes:
        - offering.customer
    delete:
      operationId: marketplace_offering_user_roles_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-user-roles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: OFFERING.MANAGE_USER_ROLE
        scopes:
        - offering.customer
  /api/marketplace-offering-users/:
    get:
      operationId: marketplace_offering_users_list
      description: Returns a paginated list of users associated with offerings. The
        visibility of users depends on the role of the authenticated user. Staff and
        support can see all users. Service providers can see users of their offerings
        if the user has consented. Regular users can only see their own offering-user
        records.
      summary: List offering users
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - consent_data
            - created
            - customer_name
            - customer_uuid
            - has_compliance_checklist
            - has_consent
            - is_restricted
            - modified
            - offering
            - offering_name
            - offering_uuid
            - requires_reconsent
            - service_provider_comment
            - service_provider_comment_url
            - state
            - url
            - user
            - user_active_isds
            - user_affiliations
            - user_birth_date
            - user_civil_number
            - user_country_of_residence
            - user_eduperson_assurance
            - user_email
            - user_first_name
            - user_full_name
            - user_gender
            - user_identity_source
            - user_job_title
            - user_last_name
            - user_nationalities
            - user_nationality
            - user_organization
            - user_organization_country
            - user_organization_type
            - user_personal_title
            - user_phone_number
            - user_place_of_birth
            - user_username
            - user_uuid
            - username
            - uuid
      - in: query
        name: has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: is_restricted
        schema:
          type: boolean
        description: Is restricted
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -modified
            - -username
            - created
            - modified
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, username or user name
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Creating
            - Deleted
            - Deleting
            - Error creating
            - Error deleting
            - OK
            - Pending account linking
            - Pending additional validation
            - Requested
            - Requested deletion
        description: |+
          Offering user state

        explode: true
        style: form
      - in: query
        name: user_username
        schema:
          type: string
        description: User username
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingUser'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_offering_users_create
      description: Associates a user with a specific offering, creating an offering-specific
        user account. This is typically done by a service provider.
      summary: Create an offering user
      tags:
      - marketplace-offering-users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingUserRequest'
            examples:
              CreateAnOfferingUserLink:
                value:
                  offering: http://testserver/api/marketplace-provider-offerings/a1b2c3d4e5f678901234567890abcdef/
                  user: http://testserver/api/users/b2c3d4e5f678901234567890abcdef12/
                  username: johndoe_hpc
                summary: Create an offering user link
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUser'
              examples:
                CreateAnOfferingUserLink:
                  value:
                    offering: http://testserver/api/marketplace-provider-offerings/a1b2c3d4e5f678901234567890abcdef/
                    user: http://testserver/api/users/b2c3d4e5f678901234567890abcdef12/
                    username: johndoe_hpc
                  summary: Create an offering user link
          description: ''
    head:
      operationId: marketplace_offering_users_count
      description: Get number of items in the collection matching the request parameters.
      summary: List offering users
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: is_restricted
        schema:
          type: boolean
        description: Is restricted
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -modified
            - -username
            - created
            - modified
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, username or user name
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Creating
            - Deleted
            - Deleting
            - Error creating
            - Error deleting
            - OK
            - Pending account linking
            - Pending additional validation
            - Requested
            - Requested deletion
        description: |+
          Offering user state

        explode: true
        style: form
      - in: query
        name: user_username
        schema:
          type: string
        description: User username
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-offering-users/{uuid}/:
    get:
      operationId: marketplace_offering_users_retrieve
      description: Returns the details of a specific offering-user link. Visibility
        follows the same rules as the list view.
      summary: Retrieve an offering user
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - consent_data
            - created
            - customer_name
            - customer_uuid
            - has_compliance_checklist
            - has_consent
            - is_restricted
            - modified
            - offering
            - offering_name
            - offering_uuid
            - requires_reconsent
            - service_provider_comment
            - service_provider_comment_url
            - state
            - url
            - user
            - user_active_isds
            - user_affiliations
            - user_birth_date
            - user_civil_number
            - user_country_of_residence
            - user_eduperson_assurance
            - user_email
            - user_first_name
            - user_full_name
            - user_gender
            - user_identity_source
            - user_job_title
            - user_last_name
            - user_nationalities
            - user_nationality
            - user_organization
            - user_organization_country
            - user_organization_type
            - user_personal_title
            - user_phone_number
            - user_place_of_birth
            - user_username
            - user_uuid
            - username
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUser'
          description: ''
    put:
      operationId: marketplace_offering_users_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingUserRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUser'
          description: ''
    patch:
      operationId: marketplace_offering_users_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOfferingUserRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUser'
          description: ''
    delete:
      operationId: marketplace_offering_users_destroy
      description: Removes the association between a user and an offering. This action
        may trigger backend cleanup processes depending on the offering type.
      summary: Delete an offering user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-offering-users/{uuid}/begin_creating/:
    post:
      operationId: marketplace_offering_users_begin_creating
      description: Transitions the offering user state from 'Requested' or 'Error
        Creating' to 'Creating'. This is typically used by an agent to signal that
        the creation process has started.
      summary: Begin creation process
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_USER
        scopes:
        - offering.customer
  /api/marketplace-offering-users/{uuid}/checklist/:
    get:
      operationId: marketplace_offering_users_checklist_retrieve
      description: Get checklist with questions and existing answers.
      parameters:
      - in: query
        name: include_all
        schema:
          type: boolean
        description: 'If true, returns all questions including hidden ones (for dynamic
          form visibility). Default: false.'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
  /api/marketplace-offering-users/{uuid}/checklist_review/:
    get:
      operationId: marketplace_offering_users_checklist_review_retrieve
      description: Get checklist with questions and existing answers including review
        logic (reviewers only).
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistReviewerResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
      x-permissions:
      - permission: OFFERING.UPDATE_USER
        scopes:
        - offering.customer
  /api/marketplace-offering-users/{uuid}/completion_review_status/:
    get:
      operationId: marketplace_offering_users_completion_review_status_retrieve
      description: Get checklist completion status with review triggers (reviewers
        only).
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistCompletionReviewer'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
      x-permissions:
      - permission: OFFERING.UPDATE_USER
        scopes:
        - offering.customer
  /api/marketplace-offering-users/{uuid}/completion_status/:
    get:
      operationId: marketplace_offering_users_completion_status_retrieve
      description: Get checklist completion status.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistCompletion'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
  /api/marketplace-offering-users/{uuid}/request_deletion/:
    post:
      operationId: marketplace_offering_users_request_deletion
      description: Initiates the deletion process for an offering user account by
        transitioning it to the 'Deletion Requested' state.
      summary: Request deletion of an offering user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_USER
        scopes:
        - offering.customer
  /api/marketplace-offering-users/{uuid}/set_deleted/:
    post:
      operationId: marketplace_offering_users_set_deleted
      description: Transitions the offering user to the 'Deleted' state, marking the
        successful completion of the deletion process.
      summary: Set state to Deleted
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_USER
        scopes:
        - offering.customer
  /api/marketplace-offering-users/{uuid}/set_deleting/:
    post:
      operationId: marketplace_offering_users_set_deleting
      description: Transitions the offering user to the 'Deleting' state. This is
        typically used by an agent to signal that the deletion process has started.
      summary: Begin deletion process
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_USER
        scopes:
        - offering.customer
  /api/marketplace-offering-users/{uuid}/set_error_creating/:
    post:
      operationId: marketplace_offering_users_set_error_creating
      description: Manually moves the offering user into the 'Error Creating' state.
        This is typically used by an agent to report a failure during the creation
        process.
      summary: Set state to Error Creating
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-offering-users/{uuid}/set_error_deleting/:
    post:
      operationId: marketplace_offering_users_set_error_deleting
      description: Manually moves the offering user into the 'Error Deleting' state.
        This is typically used by an agent to report a failure during the deletion
        process.
      summary: Set state to Error Deleting
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-offering-users/{uuid}/set_ok/:
    post:
      operationId: marketplace_offering_users_set_ok
      description: Manually sets the offering user state to 'OK'. This can be used
        to recover from an error state or to complete a manual creation process.
      summary: Set state to OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-offering-users/{uuid}/set_pending_account_linking/:
    post:
      operationId: marketplace_offering_users_set_pending_account_linking
      description: Transitions the state to 'Pending Account Linking' and allows a
        service provider to add a comment and a URL to guide the user.
      summary: Set state to Pending Account Linking
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingUserStateTransitionRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_USER
        scopes:
        - offering.customer
  /api/marketplace-offering-users/{uuid}/set_pending_additional_validation/:
    post:
      operationId: marketplace_offering_users_set_pending_additional_validation
      description: Transitions the state to 'Pending Additional Validation' and allows
        a service provider to add a comment and a URL for the user to follow.
      summary: Set state to Pending Additional Validation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingUserStateTransitionRequest'
            examples:
              RequestAdditionalValidation:
                value:
                  comment: Please upload a valid ID to complete the verification.
                  comment_url: https://example.com/upload-id
                summary: Request additional validation
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_USER
        scopes:
        - offering.customer
  /api/marketplace-offering-users/{uuid}/set_validation_complete/:
    post:
      operationId: marketplace_offering_users_set_validation_complete
      description: Transitions the state from a pending validation state to 'OK',
        indicating that the user has completed the required steps. This clears any
        service provider comments.
      summary: Set state to Validation Complete
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_USER
        scopes:
        - offering.customer
  /api/marketplace-offering-users/{uuid}/submit_answers/:
    post:
      operationId: marketplace_offering_users_submit_answers
      description: Submit checklist answers.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AnswerSubmitRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnswerSubmitResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: Validation error or no checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
  /api/marketplace-offering-users/{uuid}/update_comments/:
    patch:
      operationId: marketplace_offering_users_update_comments_partial_update
      description: Allows a service provider to update the `service_provider_comment`
        and `service_provider_comment_url` fields for an offering user. This is often
        used to provide feedback or instructions during a pending state.
      summary: Update service provider comments
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOfferingUserServiceProviderCommentRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUserServiceProviderComment'
          description: ''
  /api/marketplace-offering-users/{uuid}/update_restricted/:
    post:
      operationId: marketplace_offering_users_update_restricted
      description: Allows a service provider to mark an offering user as restricted
        or unrestricted. A restricted user may have limited access to the resource.
      summary: Update restriction status
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-offering-users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingUserUpdateRestrictionRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-offering-users/checklist-template/:
    get:
      operationId: marketplace_offering_users_checklist_template_retrieve
      description: Get checklist template for creating new objects.
      parameters:
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the parent object (e.g., customer UUID for new projects)
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistTemplate'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Parent object not found
          description: ''
    head:
      operationId: marketplace_offering_users_checklist_template_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the parent object (e.g., customer UUID for new projects)
        required: true
      tags:
      - marketplace-offering-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-orders/:
    get:
      operationId: marketplace_orders_list
      description: Returns a paginated list of orders accessible to the current user.
        Orders are visible to service consumers (project/customer members with appropriate
        permissions) and service providers.
      summary: List orders
      parameters:
      - in: query
        name: can_approve_as_consumer
        schema:
          type: boolean
        description: Can approve as consumer
      - in: query
        name: can_approve_as_provider
        schema:
          type: boolean
        description: Can approve as provider
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - accepting_terms_of_service
            - activation_price
            - attachment
            - attributes
            - backend_id
            - callback_url
            - can_terminate
            - category_icon
            - category_title
            - category_uuid
            - completed_at
            - consumer_message
            - consumer_message_attachment
            - consumer_rejection_comment
            - consumer_reviewed_at
            - consumer_reviewed_by
            - consumer_reviewed_by_full_name
            - consumer_reviewed_by_username
            - cost
            - created
            - created_by_civil_number
            - created_by_email
            - created_by_full_name
            - created_by_organization
            - created_by_organization_registry_code
            - created_by_username
            - customer_name
            - customer_slug
            - customer_uuid
            - error_message
            - error_traceback
            - fixed_price
            - issue
            - limits
            - marketplace_resource_uuid
            - modified
            - new_cost_estimate
            - new_plan_name
            - new_plan_uuid
            - offering
            - offering_billable
            - offering_description
            - offering_image
            - offering_name
            - offering_plugin_options
            - offering_shared
            - offering_thumbnail
            - offering_type
            - offering_uuid
            - old_cost_estimate
            - old_plan_name
            - old_plan_uuid
            - order_subtype
            - output
            - plan
            - plan_description
            - plan_name
            - plan_unit
            - plan_uuid
            - project_description
            - project_name
            - project_slug
            - project_uuid
            - provider_message
            - provider_message_attachment
            - provider_message_url
            - provider_name
            - provider_rejection_comment
            - provider_reviewed_at
            - provider_reviewed_by
            - provider_reviewed_by_full_name
            - provider_reviewed_by_username
            - provider_slug
            - provider_uuid
            - request_comment
            - resource_name
            - resource_type
            - resource_uuid
            - slug
            - start_date
            - state
            - termination_comment
            - type
            - url
            - uuid
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -consumer_reviewed_at
            - -cost
            - -created
            - -state
            - consumer_reviewed_at
            - cost
            - created
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by order UUID, slug, project name or resource name
      - in: query
        name: resource
        schema:
          type: string
        description: Resource URL
      - in: query
        name: resource_name
        schema:
          type: string
        description: Resource name
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - done
            - erred
            - executing
            - pending-consumer
            - pending-project
            - pending-provider
            - pending-start-date
            - rejected
        description: |+
          Order state

        explode: true
        style: form
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
            enum:
            - Create
            - Restore
            - Terminate
            - Update
        description: |+
          Order type

        explode: true
        style: form
      tags:
      - marketplace-orders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrderDetails'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_orders_create
      description: Creates a new order to provision a resource. The order will be
        placed in a pending state and may require approval depending on the offering
        and user permissions.
      summary: Create an order
      tags:
      - marketplace-orders
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderCreateRequest'
            examples:
              CreateAResourceFromAPublicOffering:
                value:
                  offering: http://testserver/api/marketplace-public-offerings/a1b2c3d4e5f678901234567890abcdef/
                  project: http://testserver/api/projects/b2c3d4e5f678901234567890abcdef12/
                  plan: http://testserver/api/marketplace-public-offerings/a1b2c3d4e5f678901234567890abcdef/plans/c3d4e5f678901234567890abcdef1234/
                  attributes:
                    name: My New Virtual Machine
                    cores: 2
                    ram_gb: 4
                    storage_gb: 50
                summary: Example of creating a new resource.
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderDetails'
              examples:
                CreateAResourceFromAPublicOffering:
                  value:
                    offering: http://testserver/api/marketplace-public-offerings/a1b2c3d4e5f678901234567890abcdef/
                    project: http://testserver/api/projects/b2c3d4e5f678901234567890abcdef12/
                    plan: http://testserver/api/marketplace-public-offerings/a1b2c3d4e5f678901234567890abcdef/plans/c3d4e5f678901234567890abcdef1234/
                    attributes:
                      name: My New Virtual Machine
                      cores: 2
                      ram_gb: 4
                      storage_gb: 50
                  summary: Example of creating a new resource.
          description: ''
    head:
      operationId: marketplace_orders_count
      description: Get number of items in the collection matching the request parameters.
      summary: List orders
      parameters:
      - in: query
        name: can_approve_as_consumer
        schema:
          type: boolean
        description: Can approve as consumer
      - in: query
        name: can_approve_as_provider
        schema:
          type: boolean
        description: Can approve as provider
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -consumer_reviewed_at
            - -cost
            - -created
            - -state
            - consumer_reviewed_at
            - cost
            - created
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by order UUID, slug, project name or resource name
      - in: query
        name: resource
        schema:
          type: string
        description: Resource URL
      - in: query
        name: resource_name
        schema:
          type: string
        description: Resource name
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - done
            - erred
            - executing
            - pending-consumer
            - pending-project
            - pending-provider
            - pending-start-date
            - rejected
        description: |+
          Order state

        explode: true
        style: form
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
            enum:
            - Create
            - Restore
            - Terminate
            - Update
        description: |+
          Order type

        explode: true
        style: form
      tags:
      - marketplace-orders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-orders/{uuid}/:
    get:
      operationId: marketplace_orders_retrieve
      description: Returns the details of a specific order.
      summary: Retrieve an order
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - accepting_terms_of_service
            - activation_price
            - attachment
            - attributes
            - backend_id
            - callback_url
            - can_terminate
            - category_icon
            - category_title
            - category_uuid
            - completed_at
            - consumer_message
            - consumer_message_attachment
            - consumer_rejection_comment
            - consumer_reviewed_at
            - consumer_reviewed_by
            - consumer_reviewed_by_full_name
            - consumer_reviewed_by_username
            - cost
            - created
            - created_by_civil_number
            - created_by_email
            - created_by_full_name
            - created_by_organization
            - created_by_organization_registry_code
            - created_by_username
            - customer_name
            - customer_slug
            - customer_uuid
            - error_message
            - error_traceback
            - fixed_price
            - issue
            - limits
            - marketplace_resource_uuid
            - modified
            - new_cost_estimate
            - new_plan_name
            - new_plan_uuid
            - offering
            - offering_billable
            - offering_description
            - offering_image
            - offering_name
            - offering_plugin_options
            - offering_shared
            - offering_thumbnail
            - offering_type
            - offering_uuid
            - old_cost_estimate
            - old_plan_name
            - old_plan_uuid
            - order_subtype
            - output
            - plan
            - plan_description
            - plan_name
            - plan_unit
            - plan_uuid
            - project_description
            - project_name
            - project_slug
            - project_uuid
            - provider_message
            - provider_message_attachment
            - provider_message_url
            - provider_name
            - provider_rejection_comment
            - provider_reviewed_at
            - provider_reviewed_by
            - provider_reviewed_by_full_name
            - provider_reviewed_by_username
            - provider_slug
            - provider_uuid
            - request_comment
            - resource_name
            - resource_type
            - resource_uuid
            - slug
            - start_date
            - state
            - termination_comment
            - type
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderDetails'
          description: ''
    put:
      operationId: marketplace_orders_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderUpdate'
          description: ''
      x-permissions:
      - permission: ORDER.APPROVE
        scopes:
        - project
        - project.customer
    patch:
      operationId: marketplace_orders_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOrderUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderUpdate'
          description: ''
      x-permissions:
      - permission: ORDER.APPROVE
        scopes:
        - project
        - project.customer
    delete:
      operationId: marketplace_orders_destroy
      description: Deletes an order that is still in a pending state (e.g., `pending-consumer`
        or `pending-provider`). Executing or completed orders cannot be deleted.
      summary: Delete a pending order
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: ORDER.DESTROY
        scopes:
        - project
        - project.customer
  /api/marketplace-orders/{uuid}/approve_by_consumer/:
    post:
      operationId: marketplace_orders_approve_by_consumer
      description: Approves a pending order from the consumer's side (e.g., project
        manager, customer owner). This transitions the order to the next state, which
        could be pending provider approval or executing.
      summary: Approve an order (consumer)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderInfoResponse'
          description: ''
      x-permissions:
      - permission: ORDER.APPROVE
        scopes:
        - project
        - project.customer
  /api/marketplace-orders/{uuid}/approve_by_provider/:
    post:
      operationId: marketplace_orders_approve_by_provider
      description: Approves a pending order from the provider's side. This typically
        transitions the order to the executing state.
      summary: Approve an order (provider)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderApproveByProviderRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderInfoResponse'
          description: ''
      x-permissions:
      - permission: ORDER.APPROVE
        scopes:
        - offering.customer
  /api/marketplace-orders/{uuid}/cancel/:
    post:
      operationId: marketplace_orders_cancel
      description: Cancels an order. This is typically only possible for certain offering
        types (e.g., basic support) and in specific states (pending or executing).
      summary: Cancel an order
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          description: No response body
      x-permissions:
      - permission: ORDER.CANCEL
        scopes:
        - project
        - project.customer
  /api/marketplace-orders/{uuid}/delete_attachment/:
    post:
      operationId: marketplace_orders_delete_attachment
      description: Allows deleting an attachment from a pending order.
      summary: Delete order attachment
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-orders/{uuid}/offering/:
    get:
      operationId: marketplace_orders_offering_retrieve
      description: Returns details of the offering connected to the requested object.
      summary: Get offering details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicOfferingDetails'
          description: ''
  /api/marketplace-orders/{uuid}/reject_by_consumer/:
    post:
      operationId: marketplace_orders_reject_by_consumer
      description: Rejects a pending order from the consumer's side. This moves the
        order to the 'rejected' state.
      summary: Reject an order (consumer)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderErrorDetailsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-orders/{uuid}/reject_by_provider/:
    post:
      operationId: marketplace_orders_reject_by_provider
      description: Rejects a pending order from the provider's side. This moves the
        order to the 'rejected' state.
      summary: Reject an order (provider)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderProviderRejectionRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: ORDER.REJECT
        scopes:
        - offering.customer
  /api/marketplace-orders/{uuid}/set_backend_id/:
    post:
      operationId: marketplace_orders_set_backend_id
      description: Allows a service provider or staff to set or update the backend
        ID associated with an order. This is useful for linking the order to an external
        system's identifier.
      summary: Set order backend ID
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderBackendIDRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                example:
                  status: Order backend_id has been changed.
          description: ''
      x-permissions:
      - permission: RESOURCE.SET_BACKEND_ID
        scopes:
        - offering
        - offering.customer
  /api/marketplace-orders/{uuid}/set_consumer_info/:
    post:
      operationId: marketplace_orders_set_consumer_info
      description: Allows a consumer to respond to a provider's message with an optional
        message and file attachment on a pending order.
      summary: Set consumer info on order
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderConsumerInfoRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OrderConsumerInfoRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OrderConsumerInfoRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderInfoResponse'
          description: ''
      x-permissions:
      - permission: ORDER.APPROVE
        scopes:
        - project
        - project.customer
  /api/marketplace-orders/{uuid}/set_provider_info/:
    post:
      operationId: marketplace_orders_set_provider_info
      description: Allows a service provider to send a message with an optional URL
        and file attachment to the consumer on a pending order.
      summary: Set provider info on order
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderProviderInfoRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OrderProviderInfoRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OrderProviderInfoRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderInfoResponse'
          description: ''
      x-permissions:
      - permission: ORDER.APPROVE
        scopes:
        - offering.customer
  /api/marketplace-orders/{uuid}/set_state_done/:
    post:
      operationId: marketplace_orders_set_state_done
      description: Used by external agents (e.g., site agent) to manually transition
        the order state to 'done'. This is only applicable for specific offering types.
      summary: Set order state to done (agent)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: ORDER.APPROVE
        scopes:
        - offering.customer
  /api/marketplace-orders/{uuid}/set_state_erred/:
    post:
      operationId: marketplace_orders_set_state_erred
      description: Used by external agents to report a failure during order processing.
        An error message and traceback can be provided.
      summary: Set order state to erred (agent)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderErrorDetailsRequest'
            examples:
              ReportAnError:
                value:
                  error_message: Failed to connect to the backend.
                  error_traceback: Traceback(...)
                summary: Report an error
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: ORDER.APPROVE
        scopes:
        - offering.customer
        - offering.customer.serviceprovider
  /api/marketplace-orders/{uuid}/set_state_executing/:
    post:
      operationId: marketplace_orders_set_state_executing
      description: Used by external agents (e.g., site agent) to manually transition
        the order state to 'executing'. This is only applicable for specific offering
        types.
      summary: Set order state to executing (agent)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: ORDER.APPROVE
        scopes:
        - offering.customer
  /api/marketplace-orders/{uuid}/unlink/:
    post:
      operationId: marketplace_orders_unlink
      description: Forcefully deletes an order from the database without affecting
        the backend resource. This is a staff-only administrative action used to clean
        up stuck or invalid orders.
      summary: Unlink an order (staff only)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
        '403':
          description: No response body
  /api/marketplace-orders/{uuid}/update_attachment/:
    post:
      operationId: marketplace_orders_update_attachment
      description: Allows uploading or replacing a file attachment (e.g., a purchase
        order) for a pending order.
      summary: Update order attachment
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-orders
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderAttachmentRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OrderAttachmentRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OrderAttachmentRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderAttachment'
          description: ''
  /api/marketplace-plan-components/:
    get:
      operationId: marketplace_plan_components_list
      description: Returns a paginated list of all plan components. A plan component
        defines the pricing and quotas for an offering component within a billing
        plan. The list is filtered based on the current user's access permissions
        and organization group memberships.
      summary: List plan components
      parameters:
      - in: query
        name: archived
        schema:
          type: boolean
        description: Archived
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: plan_uuid
        schema:
          type: string
          format: uuid
        description: Plan UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      tags:
      - marketplace-plan-components
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlanComponent'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_plan_components_count
      description: Get number of items in the collection matching the request parameters.
      summary: List plan components
      parameters:
      - in: query
        name: archived
        schema:
          type: boolean
        description: Archived
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: plan_uuid
        schema:
          type: string
          format: uuid
        description: Plan UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      tags:
      - marketplace-plan-components
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-plan-components/{id}/:
    get:
      operationId: marketplace_plan_components_retrieve
      description: Returns the details of a specific plan component, including its
        pricing, quotas, and associated offering and plan information.
      summary: Retrieve a plan component
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this plan component.
        required: true
      tags:
      - marketplace-plan-components
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanComponent'
          description: ''
  /api/marketplace-plans/:
    get:
      operationId: marketplace_plans_list
      description: Returns a paginated list of plans managed by the provider. The
        list is filtered based on the current user's access to the offering's customer.
      summary: List provider plans
      parameters:
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-plans
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProviderPlanDetails'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_plans_create
      description: Creates a new billing plan for an offering.
      summary: Create a provider plan
      tags:
      - marketplace-plans
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProviderPlanDetailsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderPlanDetails'
          description: ''
    head:
      operationId: marketplace_plans_count
      description: Get number of items in the collection matching the request parameters.
      summary: List provider plans
      parameters:
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-plans
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-plans/{uuid}/:
    get:
      operationId: marketplace_plans_retrieve
      description: Returns details of a specific plan.
      summary: Retrieve a provider plan
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-plans
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderPlanDetails'
          description: ''
    put:
      operationId: marketplace_plans_update
      description: 'Updates an existing plan. Note: A plan cannot be updated if it
        is already used by resources.'
      summary: Update a provider plan
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-plans
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProviderPlanDetailsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderPlanDetails'
          description: ''
      x-permissions:
      - permission: OFFERING.UPDATE_PLAN
        scopes:
        - offering.customer
    patch:
      operationId: marketplace_plans_partial_update
      description: 'Partially updates an existing plan. Note: A plan cannot be updated
        if it is already used by resources.'
      summary: Partially update a provider plan
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-plans
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProviderPlanDetailsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderPlanDetails'
          description: ''
      x-permissions:
      - permission: OFFERING.UPDATE_PLAN
        scopes:
        - offering.customer
    delete:
      operationId: marketplace_plans_destroy
      description: Deletes a plan. This is a hard delete and should be used with caution.
      summary: Delete a provider plan
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-plans
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-plans/{uuid}/archive/:
    post:
      operationId: marketplace_plans_archive
      description: Marks a plan as archived. Archived plans cannot be used for provisioning
        new resources, but existing resources will continue to be billed according
        to this plan.
      summary: Archive a plan
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-plans
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.ARCHIVE_PLAN
        scopes:
        - offering.customer
  /api/marketplace-plans/{uuid}/delete_organization_groups/:
    post:
      operationId: marketplace_plans_delete_organization_groups
      description: Removes all organization group associations from this plan, making
        it accessible to all users (subject to offering-level restrictions).
      summary: Remove all organization groups from a plan
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-plans
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_PLAN
        scopes:
        - offering.customer
  /api/marketplace-plans/{uuid}/history/:
    get:
      operationId: marketplace_plans_history_list
      description: Returns the version history for this object. Only accessible by
        staff and support users.
      summary: Get version history
      parameters:
      - in: query
        name: created_after
        schema:
          type: string
        description: Filter versions created after this timestamp (ISO 8601)
      - in: query
        name: created_before
        schema:
          type: string
        description: Filter versions created before this timestamp (ISO 8601)
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-plans
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VersionHistory'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-plans/{uuid}/history/at/:
    get:
      operationId: marketplace_plans_history_at_retrieve
      description: Returns the state of the object as it was at the specified timestamp.
        Only accessible by staff and support users.
      summary: Get object state at a specific timestamp
      parameters:
      - in: query
        name: timestamp
        schema:
          type: string
        description: ISO 8601 timestamp to query the object state at
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-plans
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionHistory'
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
        '404':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
  /api/marketplace-plans/{uuid}/update_discounts/:
    post:
      operationId: marketplace_plans_update_discounts
      description: "\n        Update volume discount configuration for plan components.\n\
        \n        This endpoint allows updating discount thresholds and rates for\
        \ multiple\n        plan components in a single request. Discounts are applied\
        \ automatically\n        when limit quantities meet or exceed the threshold.\n\
        \n        The discount configuration affects future billing:\n        - Creates\
        \ separate invoice items showing the discount.\n        - Can be enabled or\
        \ disabled per component.\n        "
      summary: Update plan component discounts
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-plans
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscountsUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_PLAN
        scopes:
        - offering.customer
  /api/marketplace-plans/{uuid}/update_organization_groups/:
    post:
      operationId: marketplace_plans_update_organization_groups
      description: Sets the list of organization groups that are allowed to access
        this plan. If the list is empty, the plan is accessible to all.
      summary: Update organization groups for a plan
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-plans
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationGroupsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_PLAN
        scopes:
        - offering.customer
  /api/marketplace-plans/{uuid}/update_prices/:
    post:
      operationId: marketplace_plans_update_prices
      description: Updates the prices for one or more components of a specific plan.
        If the plan is already in use by resources, this action updates the `future_price`,
        which will be applied from the next billing period. Otherwise, the current
        `price` is updated directly.
      summary: Update plan component prices
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-plans
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PricesUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_PLAN
        scopes:
        - offering.customer
  /api/marketplace-plans/{uuid}/update_quotas/:
    post:
      operationId: marketplace_plans_update_quotas
      description: Updates the quotas (fixed amounts) for one or more components of
        a specific plan. This is only applicable for components with a 'fixed-price'
        billing type.
      summary: Update plan component quotas
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-plans
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuotasUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_PLAN
        scopes:
        - offering.customer
  /api/marketplace-plans/usage_stats/:
    get:
      operationId: marketplace_plans_usage_stats_list
      description: Returns aggregated statistics on how many resources are currently
        using each plan. Can be filtered by offering or service provider.
      summary: Get plan usage statistics
      parameters:
      - in: query
        name: customer_provider_uuid
        schema:
          type: string
          format: uuid
        description: Filter by service provider's customer UUID.
      - in: query
        name: o
        schema:
          type: string
        description: 'Ordering field. Available options: `usage`, `limit`, `remaining`,
          and their descending counterparts (e.g., `-usage`).'
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Filter by offering UUID.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-plans
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PlanUsageResponse'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_plans_usage_stats_count
      description: Get number of items in the collection matching the request parameters.
      summary: Get plan usage statistics
      parameters:
      - in: query
        name: customer_provider_uuid
        schema:
          type: string
          format: uuid
        description: Filter by service provider's customer UUID.
      - in: query
        name: o
        schema:
          type: string
        description: 'Ordering field. Available options: `usage`, `limit`, `remaining`,
          and their descending counterparts (e.g., `-usage`).'
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Filter by offering UUID.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-plans
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-plugins/:
    get:
      operationId: marketplace_plugins_list
      description: "\n        Returns a list of all registered marketplace plugins\
        \ (offering types) and the components\n        associated with each. This\
        \ endpoint is public and does not require authentication.\n\n        Each\
        \ plugin entry includes:\n        - `offering_type`: A unique identifier for\
        \ the plugin.\n        - `components`: A list of components provided by the\
        \ plugin, each with its `type`, `name`, `measured_unit`, and `billing_type`.\n\
        \        - `available_limits`: A list of component types that support user-defined\
        \ limits for this plugin.\n        "
      summary: List available marketplace plugins and their components
      tags:
      - marketplace-plugins
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PluginOfferingType'
              examples:
                ExampleResponseForMarketplacePlugins:
                  value:
                  - - offering_type: Marketplace.Slurm
                      components:
                      - type: cpu
                        name: CPU
                        measured_unit: hours
                        billing_type: usage
                      - type: gpu
                        name: GPU
                        measured_unit: hours
                        billing_type: usage
                      - type: ram
                        name: RAM
                        measured_unit: GB-hours
                        billing_type: usage
                      available_limits: []
                  summary: Example Response for Marketplace Plugins
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-project-estimated-cost-policies/:
    get:
      operationId: marketplace_project_estimated_cost_policies_list
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-project-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectEstimatedCostPolicy'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_project_estimated_cost_policies_create
      tags:
      - marketplace-project-estimated-cost-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectEstimatedCostPolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectEstimatedCostPolicy'
          description: ''
    head:
      operationId: marketplace_project_estimated_cost_policies_count
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-project-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-project-estimated-cost-policies/{uuid}/:
    get:
      operationId: marketplace_project_estimated_cost_policies_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-project-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectEstimatedCostPolicy'
          description: ''
    put:
      operationId: marketplace_project_estimated_cost_policies_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-project-estimated-cost-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectEstimatedCostPolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectEstimatedCostPolicy'
          description: ''
    patch:
      operationId: marketplace_project_estimated_cost_policies_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-project-estimated-cost-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProjectEstimatedCostPolicyRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectEstimatedCostPolicy'
          description: ''
    delete:
      operationId: marketplace_project_estimated_cost_policies_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-project-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-project-estimated-cost-policies/actions/:
    get:
      operationId: marketplace_project_estimated_cost_policies_actions_retrieve
      tags:
      - marketplace-project-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectEstimatedCostPolicy'
          description: ''
    head:
      operationId: marketplace_project_estimated_cost_policies_actions_count
      tags:
      - marketplace-project-estimated-cost-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-project-service-accounts/:
    get:
      operationId: marketplace_project_service_accounts_list
      summary: List service accounts
      parameters:
      - in: query
        name: email
        schema:
          type: string
        description: Email contains
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
        description: Project URL
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Closed
            - Erred
            - OK
        description: |+
          Service account state

        explode: true
        style: form
      - in: query
        name: username
        schema:
          type: string
        description: Username
      tags:
      - marketplace-project-service-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectServiceAccount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_project_service_accounts_create
      description: Creates a new service account scoped to a specific project. This
        generates an API key that can be used for automated access to resources within
        that project.
      summary: Create a project service account
      tags:
      - marketplace-project-service-accounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectServiceAccountRequest'
            examples:
              CreateAProjectServiceAccount:
                value:
                  project: http://testserver/api/projects/a1b2c3d4e5f678901234567890abcdef/
                  email: automation-bot@example.com
                  description: Service account for CI/CD pipelines
                  preferred_identifier: cicd-bot-project-alpha
                summary: Create a project service account
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectServiceAccount'
              examples:
                CreateAProjectServiceAccount:
                  value:
                    project: http://testserver/api/projects/a1b2c3d4e5f678901234567890abcdef/
                    email: automation-bot@example.com
                    description: Service account for CI/CD pipelines
                    preferred_identifier: cicd-bot-project-alpha
                  summary: Create a project service account
          description: ''
    head:
      operationId: marketplace_project_service_accounts_count
      summary: List service accounts
      parameters:
      - in: query
        name: email
        schema:
          type: string
        description: Email contains
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
        description: Project URL
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Closed
            - Erred
            - OK
        description: |+
          Service account state

        explode: true
        style: form
      - in: query
        name: username
        schema:
          type: string
        description: Username
      tags:
      - marketplace-project-service-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-project-service-accounts/{uuid}/:
    get:
      operationId: marketplace_project_service_accounts_retrieve
      summary: Retrieve a service account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-project-service-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectServiceAccount'
          description: ''
    put:
      operationId: marketplace_project_service_accounts_update
      summary: Update a service account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-project-service-accounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectServiceAccountRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectServiceAccount'
          description: ''
      x-permissions:
      - permission: SERVICE_ACCOUNT.MANAGE
        scopes:
        - project
        - project.customer
    patch:
      operationId: marketplace_project_service_accounts_partial_update
      summary: Partially update a service account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-project-service-accounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProjectServiceAccountRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectServiceAccount'
          description: ''
      x-permissions:
      - permission: SERVICE_ACCOUNT.MANAGE
        scopes:
        - project
        - project.customer
    delete:
      operationId: marketplace_project_service_accounts_destroy
      description: Deactivates a project service account and revokes its API key.
      summary: Close a project service account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-project-service-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: SERVICE_ACCOUNT.MANAGE
        scopes:
        - project
        - project.customer
  /api/marketplace-project-service-accounts/{uuid}/rotate_api_key/:
    post:
      operationId: marketplace_project_service_accounts_rotate_api_key
      description: Generates a new API key for the service account, immediately invalidating
        the old one. The new key is returned in the response.
      summary: Rotate API key for a project service account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-project-service-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectServiceAccount'
          description: ''
      x-permissions:
      - permission: SERVICE_ACCOUNT.MANAGE
        scopes:
        - project
        - project.customer
  /api/marketplace-project-update-requests/:
    get:
      operationId: marketplace_project_update_requests_list
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - approved
            - canceled
            - draft
            - pending
            - rejected
        explode: true
        style: form
      tags:
      - marketplace-project-update-requests
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RemoteProjectUpdateRequest'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_project_update_requests_count
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - approved
            - canceled
            - draft
            - pending
            - rejected
        explode: true
        style: form
      tags:
      - marketplace-project-update-requests
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-project-update-requests/{uuid}/:
    get:
      operationId: marketplace_project_update_requests_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-project-update-requests
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteProjectUpdateRequest'
          description: ''
  /api/marketplace-project-update-requests/{uuid}/approve/:
    post:
      operationId: marketplace_project_update_requests_approve
      description: Approve project update request
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-project-update-requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewCommentRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-project-update-requests/{uuid}/reject/:
    post:
      operationId: marketplace_project_update_requests_reject
      description: Reject project update request
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-project-update-requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewCommentRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-provider-offerings/:
    get:
      operationId: marketplace_provider_offerings_list
      description: Returns a paginated list of offerings for the provider.
      summary: List provider offerings
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - attributes
            - backend_id
            - backend_id_rules
            - backend_metadata
            - billable
            - billing_type_classification
            - category
            - category_title
            - category_uuid
            - citation_count
            - compliance_checklist
            - components
            - country
            - created
            - customer
            - customer_name
            - customer_uuid
            - datacite_doi
            - description
            - endpoints
            - files
            - full_description
            - getting_started
            - google_calendar_is_public
            - google_calendar_link
            - has_compliance_requirements
            - image
            - integration_guide
            - integration_status
            - latitude
            - longitude
            - name
            - options
            - order_count
            - organization_groups
            - parent_description
            - parent_name
            - parent_uuid
            - partitions
            - paused_reason
            - plans
            - plugin_options
            - privacy_policy_link
            - project
            - project_name
            - project_uuid
            - quotas
            - resource_options
            - roles
            - scope
            - scope_error_message
            - scope_name
            - scope_state
            - scope_uuid
            - screenshots
            - secret_options
            - service_attributes
            - shared
            - slug
            - software_catalogs
            - state
            - tags
            - thumbnail
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
            - url
            - uuid
            - vendor_details
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProviderOfferingDetails'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_provider_offerings_create
      description: Creates a new provider offering.
      summary: Create a provider offering
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingCreateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OfferingCreateRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OfferingCreateRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderOfferingDetails'
          description: ''
    head:
      operationId: marketplace_provider_offerings_count
      description: Get number of items in the collection matching the request parameters.
      summary: List provider offerings
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-provider-offerings/{uuid}/:
    get:
      operationId: marketplace_provider_offerings_retrieve
      description: Returns details of a specific provider offering.
      summary: Retrieve a provider offering
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - attributes
            - backend_id
            - backend_id_rules
            - backend_metadata
            - billable
            - billing_type_classification
            - category
            - category_title
            - category_uuid
            - citation_count
            - compliance_checklist
            - components
            - country
            - created
            - customer
            - customer_name
            - customer_uuid
            - datacite_doi
            - description
            - endpoints
            - files
            - full_description
            - getting_started
            - google_calendar_is_public
            - google_calendar_link
            - has_compliance_requirements
            - image
            - integration_guide
            - integration_status
            - latitude
            - longitude
            - name
            - options
            - order_count
            - organization_groups
            - parent_description
            - parent_name
            - parent_uuid
            - partitions
            - paused_reason
            - plans
            - plugin_options
            - privacy_policy_link
            - project
            - project_name
            - project_uuid
            - quotas
            - resource_options
            - roles
            - scope
            - scope_error_message
            - scope_name
            - scope_state
            - scope_uuid
            - screenshots
            - secret_options
            - service_attributes
            - shared
            - slug
            - software_catalogs
            - state
            - tags
            - thumbnail
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
            - url
            - uuid
            - vendor_details
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderOfferingDetails'
          description: ''
    delete:
      operationId: marketplace_provider_offerings_destroy
      description: Deletes a provider offering. Only possible for offerings in a Draft
        state with no associated resources.
      summary: Delete a provider offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: OFFERING.DELETE
        scopes:
        - customer
  /api/marketplace-provider-offerings/{uuid}/activate/:
    post:
      operationId: marketplace_provider_offerings_activate
      description: Activates a draft or paused offering, making it available for ordering.
      summary: Activate an offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailState'
          description: ''
      x-permissions:
      - permission: OFFERING.CREATE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/add_endpoint/:
    post:
      operationId: marketplace_provider_offerings_add_endpoint
      description: Adds a new access endpoint (URL) to an offering.
      summary: Add an access endpoint to an offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NestedEndpointRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndpointUUID'
          description: ''
      x-permissions:
      - permission: OFFERING.ADD_ENDPOINT
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/add_partition/:
    post:
      operationId: marketplace_provider_offerings_add_partition
      description: Adds a new partition configuration to an offering.
      summary: Add a partition to an offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingPartitionRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingPartition'
          description: ''
      x-permissions:
      - permission: OFFERING.UPDATE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/add_software_catalog/:
    post:
      operationId: marketplace_provider_offerings_add_software_catalog
      description: Associates a software catalog with an offering and configures enabled
        CPU architectures.
      summary: Add a software catalog to an offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingSoftwareCatalogRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareCatalogUUID'
          description: ''
      x-permissions:
      - permission: OFFERING.UPDATE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/add_user/:
    post:
      operationId: marketplace_provider_offerings_add_user
      description: Assigns a specific role to a user within the current scope. An
        optional expiration time for the role can be set.
      summary: Grant a role to a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleCreateRequest'
            examples:
              GrantProjectAdminRoleUntilEndOfYear:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2024-12-31'
                summary: Grant project admin role until end of year
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleGrantResponse:
                  value:
                    expiration_time: '2024-12-31T00:00:00Z'
                  summary: Successful role grant response
          description: ''
        '400':
          description: Validation error, for example when trying to add a user to
            a terminated project.
  /api/marketplace-provider-offerings/{uuid}/archive/:
    post:
      operationId: marketplace_provider_offerings_archive
      description: Archives an offering, making it permanently unavailable for new
        orders.
      summary: Archive an offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailState'
          description: ''
      x-permissions:
      - permission: OFFERING.ARCHIVE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/check_unique_backend_id/:
    post:
      operationId: marketplace_provider_offerings_check_unique_backend_id
      description: Checks if the provided backend_id has been used in resources of
        this offering or all offerings of the same customer. Returns true if unique,
        false if already used.
      summary: Check if backend_id is unique
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckUniqueBackendIDRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckUniqueBackendIDResponse'
          description: ''
      x-permissions:
      - permission: OFFERING.UPDATE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/component_stats/:
    get:
      operationId: marketplace_provider_offerings_component_stats_list
      description: Returns monthly usage statistics for the components of an offering
        within a specified date range.
      summary: Get statistics for offering components
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: end
        schema:
          type: string
        description: End date in format YYYY-MM.
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: start
        schema:
          type: string
        description: Start date in format YYYY-MM.
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingComponentStat'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-offerings/{uuid}/costs/:
    get:
      operationId: marketplace_provider_offerings_costs_list
      description: Returns monthly cost data for an offering within a specified date
        range.
      summary: Get costs for an offering
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: accounting_is_running
        schema:
          type: boolean
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: end
        schema:
          type: string
        description: End date in format YYYY-MM.
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: start
        schema:
          type: string
        description: Start date in format YYYY-MM.
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProviderOfferingCosts'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-offerings/{uuid}/create_offering_component/:
    post:
      operationId: marketplace_provider_offerings_create_offering_component
      description: Adds a new custom component to an offering.
      summary: Create an offering component
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingComponentRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_COMPONENTS
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/customers/:
    get:
      operationId: marketplace_provider_offerings_customers_list
      description: Returns a paginated list of customers who have resources for this
        offering.
      summary: Get customers for an offering
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - abbreviation
            - email
            - name
            - phone_number
            - slug
            - uuid
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProviderOfferingCustomer'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-offerings/{uuid}/delete-user-attribute-config/:
    delete:
      operationId: marketplace_provider_offerings_delete_user_attribute_config_destroy
      description: Deletes the user attribute configuration for this offering. The
        offering will fall back to system defaults.
      summary: Delete user attribute config
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-provider-offerings/{uuid}/delete_endpoint/:
    post:
      operationId: marketplace_provider_offerings_delete_endpoint
      description: Deletes an existing access endpoint from an offering by its UUID.
      summary: Delete an access endpoint from an offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EndpointUUIDRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: OFFERING.DELETE_ENDPOINT
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/delete_image/:
    post:
      operationId: marketplace_provider_offerings_delete_image
      description: Deletes the main image of an offering.
      summary: Delete offering image
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-provider-offerings/{uuid}/delete_organization_groups/:
    post:
      operationId: marketplace_provider_offerings_delete_organization_groups
      description: Removes all organization group associations from this offering,
        making it accessible to all.
      summary: Delete organization groups for offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-provider-offerings/{uuid}/delete_tags/:
    post:
      operationId: marketplace_provider_offerings_delete_tags
      description: Removes all tag associations from this offering.
      summary: Delete tags for offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-provider-offerings/{uuid}/delete_thumbnail/:
    post:
      operationId: marketplace_provider_offerings_delete_thumbnail
      description: Deletes the thumbnail image of an offering.
      summary: Delete offering thumbnail
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-provider-offerings/{uuid}/delete_user/:
    post:
      operationId: marketplace_provider_offerings_delete_user
      description: Removes a specific role from a user within the current scope. This
        effectively revokes their permissions associated with that role.
      summary: Revoke a role from a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleDeleteRequest'
            examples:
              RevokeProjectAdminRoleFromUser:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                summary: Revoke project admin role from user
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: Role revoked successfully.
  /api/marketplace-provider-offerings/{uuid}/draft/:
    post:
      operationId: marketplace_provider_offerings_draft
      description: Moves an active or paused offering back to the draft state for
        editing.
      summary: Move an offering to draft
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailState'
          description: ''
      x-permissions:
      - permission: OFFERING.CREATE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/export_offering/:
    post:
      operationId: marketplace_provider_offerings_export_offering
      description: Exports an offering and all its connected parts to YAML format.
        Allows configuration of which components to include in the export.
      summary: Export offering data
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingExportParametersRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingExportResponse'
          description: ''
      x-permissions:
      - permission: OFFERING.UPDATE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/glauth_users_config/:
    get:
      operationId: marketplace_provider_offerings_glauth_users_config_retrieve
      description: "\n        This endpoint provides a configuration file for GLauth.\n\
        \        It is intended to be used by an external agent to synchronize user\
        \ data from Waldur to GLauth.\n\n        Example output format:\n        ```\n\
        \        [[users]]\n          name = \"johndoe\"\n          givenname=\"John\"\
        \n          sn=\"Doe\"\n          mail = \"john.doe@example.com\"\n      \
        \    ...\n        [[groups]]\n          name = \"group1\"\n          gidnumber\
        \ = 1001\n        ```\n        "
      summary: Get GLauth user configuration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            text/plain:
              schema:
                type: string
          description: ''
  /api/marketplace-provider-offerings/{uuid}/history/:
    get:
      operationId: marketplace_provider_offerings_history_list
      description: Returns the version history for this object. Only accessible by
        staff and support users.
      summary: Get version history
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: created_after
        schema:
          type: string
        description: Filter versions created after this timestamp (ISO 8601)
      - in: query
        name: created_before
        schema:
          type: string
        description: Filter versions created before this timestamp (ISO 8601)
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VersionHistory'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-offerings/{uuid}/history/at/:
    get:
      operationId: marketplace_provider_offerings_history_at_retrieve
      description: Returns the state of the object as it was at the specified timestamp.
        Only accessible by staff and support users.
      summary: Get object state at a specific timestamp
      parameters:
      - in: query
        name: timestamp
        schema:
          type: string
        description: ISO 8601 timestamp to query the object state at
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionHistory'
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
        '404':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
  /api/marketplace-provider-offerings/{uuid}/import_resource/:
    post:
      operationId: marketplace_provider_offerings_import_resource
      description: Imports a backend resource into the marketplace.
      summary: Import a resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportResourceRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
          description: ''
  /api/marketplace-provider-offerings/{uuid}/importable_resources/:
    get:
      operationId: marketplace_provider_offerings_importable_resources_list
      description: Returns a paginated list of resources that can be imported for
        this offering.
      summary: List importable resources
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ImportableResource'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-offerings/{uuid}/list_course_accounts/:
    get:
      operationId: marketplace_provider_offerings_list_course_accounts_list
      description: Returns a paginated list of course accounts for projects that have
        resources of this offering.
      summary: List course accounts for an offering
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CourseAccount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-offerings/{uuid}/list_customer_projects/:
    get:
      operationId: marketplace_provider_offerings_list_customer_projects_list
      description: Returns a paginated list of projects that have consumed resources
        of this offering.
      summary: List customer projects for an offering
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - billing_price_estimate
            - created
            - customer
            - customer_abbreviation
            - customer_display_billing_info_in_projects
            - customer_name
            - customer_native_name
            - customer_slug
            - customer_uuid
            - description
            - end_date
            - end_date_requested_by
            - grace_period_days
            - image
            - is_industry
            - is_removed
            - kind
            - marketplace_resource_count
            - max_service_accounts
            - name
            - oecd_fos_2007_code
            - oecd_fos_2007_label
            - project_credit
            - resources_count
            - slug
            - staff_notes
            - start_date
            - termination_metadata
            - type
            - type_name
            - type_uuid
            - url
            - user_affiliations
            - user_email_patterns
            - user_identity_sources
            - uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-offerings/{uuid}/list_customer_service_accounts/:
    get:
      operationId: marketplace_provider_offerings_list_customer_service_accounts_list
      description: Returns a paginated list of customer-level service accounts for
        customers who have resources of this offering.
      summary: List customer service accounts for an offering
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerServiceAccount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-offerings/{uuid}/list_customer_users/:
    get:
      operationId: marketplace_provider_offerings_list_customer_users_list
      description: Returns a paginated list of users who have access to resources
        of this offering.
      summary: List customer users for an offering
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - active_isds
            - affiliations
            - agree_with_policy
            - agreement_date
            - attribute_sources
            - birth_date
            - civil_number
            - country_of_residence
            - date_joined
            - description
            - eduperson_assurance
            - email
            - first_name
            - full_name
            - gender
            - has_active_session
            - identity_provider_fields
            - identity_provider_label
            - identity_provider_management_url
            - identity_provider_name
            - identity_source
            - image
            - ip_address
            - is_active
            - is_identity_manager
            - is_staff
            - is_support
            - job_title
            - last_name
            - managed_isds
            - nationalities
            - nationality
            - native_name
            - notifications_enabled
            - organization
            - organization_country
            - organization_registry_code
            - organization_type
            - permissions
            - personal_title
            - phone_number
            - place_of_birth
            - preferred_language
            - registration_method
            - requested_email
            - slug
            - token
            - token_expires_at
            - token_lifetime
            - url
            - username
            - uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-offerings/{uuid}/list_project_service_accounts/:
    get:
      operationId: marketplace_provider_offerings_list_project_service_accounts_list
      description: Returns a paginated list of project-level service accounts for
        projects that have resources of this offering.
      summary: List project service accounts for an offering
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectServiceAccount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-offerings/{uuid}/list_users/:
    get:
      operationId: marketplace_provider_offerings_list_users_list
      description: Retrieves a list of users who have a role within a specific scope
        (e.g., a project or an organization). The list can be filtered by user details
        or role.
      summary: List users and their roles in a scope
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - created_by_full_name
            - created_by_uuid
            - expiration_time
            - role_name
            - role_uuid
            - user_email
            - user_full_name
            - user_image
            - user_username
            - user_uuid
            - uuid
        description: Fields to include in response
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name
      - in: query
        name: native_name
        schema:
          type: string
        description: User native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: Ordering fields
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role
        schema:
          type: string
          format: uuid
        description: Role UUID or name
      - in: query
        name: search_string
        schema:
          type: string
        description: Search string for user
      - in: query
        name: user
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug
      - in: query
        name: user_url
        schema:
          type: string
        description: User URL
      - in: query
        name: username
        schema:
          type: string
        description: User username
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserRoleDetails'
                description: ''
              examples:
                ExampleUserRoleListResponse:
                  value:
                  - - uuid: a7e6b0a29a434d2889273c5240217a26
                      created: '2023-10-26T10:00:00Z'
                      expiration_time: '2024-12-31T23:59:59Z'
                      role_name: PROJECT.ADMIN
                      role_uuid: d8c2d5852d434937985392d24249b6d3
                      user_email: alice@example.com
                      user_full_name: Alice Smith
                      user_username: alice
                      user_uuid: 8f20242b638743b18a485f81ac685e13
                      user_image: null
                      created_by_full_name: Bob Johnson
                      created_by_uuid: b4e4c2f1a6f24a8d8e4c2f1a6f24a8d8
                  summary: Example user role list response
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-offerings/{uuid}/make_available/:
    post:
      operationId: marketplace_provider_offerings_make_available
      description: Marks an unavailable offering as available.
      summary: Mark an offering as available
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailState'
          description: ''
      x-permissions:
      - permission: OFFERING.PAUSE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/make_unavailable/:
    post:
      operationId: marketplace_provider_offerings_make_unavailable
      description: Marks an active offering as unavailable, blocking all operations
        on its resources.
      summary: Mark an offering as unavailable
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailState'
          description: ''
      x-permissions:
      - permission: OFFERING.PAUSE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/move_offering/:
    post:
      operationId: marketplace_provider_offerings_move_offering
      description: Moves an offering to a different service provider. Requires staff
        permissions.
      summary: Move an offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoveOfferingRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicOfferingDetails'
          description: ''
  /api/marketplace-provider-offerings/{uuid}/orders/:
    get:
      operationId: marketplace_provider_offerings_orders_list
      description: Returns a paginated list of orders associated with a specific offering.
      summary: List orders for an offering
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - accepting_terms_of_service
            - activation_price
            - attachment
            - attributes
            - backend_id
            - callback_url
            - can_terminate
            - category_icon
            - category_title
            - category_uuid
            - completed_at
            - consumer_message
            - consumer_message_attachment
            - consumer_rejection_comment
            - consumer_reviewed_at
            - consumer_reviewed_by
            - consumer_reviewed_by_full_name
            - consumer_reviewed_by_username
            - cost
            - created
            - created_by_civil_number
            - created_by_email
            - created_by_full_name
            - created_by_organization
            - created_by_organization_registry_code
            - created_by_username
            - customer_name
            - customer_slug
            - customer_uuid
            - error_message
            - error_traceback
            - fixed_price
            - issue
            - limits
            - marketplace_resource_uuid
            - modified
            - new_cost_estimate
            - new_plan_name
            - new_plan_uuid
            - offering
            - offering_billable
            - offering_description
            - offering_image
            - offering_name
            - offering_plugin_options
            - offering_shared
            - offering_thumbnail
            - offering_type
            - offering_uuid
            - old_cost_estimate
            - old_plan_name
            - old_plan_uuid
            - order_subtype
            - output
            - plan
            - plan_description
            - plan_name
            - plan_unit
            - plan_uuid
            - project_description
            - project_name
            - project_slug
            - project_uuid
            - provider_message
            - provider_message_attachment
            - provider_message_url
            - provider_name
            - provider_rejection_comment
            - provider_reviewed_at
            - provider_reviewed_by
            - provider_reviewed_by_full_name
            - provider_reviewed_by_username
            - provider_slug
            - provider_uuid
            - request_comment
            - resource_name
            - resource_type
            - resource_uuid
            - slug
            - start_date
            - state
            - termination_comment
            - type
            - url
            - uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrderDetails'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-offerings/{uuid}/orders/{order_uuid}/:
    get:
      operationId: marketplace_provider_offerings_orders_retrieve
      description: Returns details of a specific order associated with an offering.
      summary: Retrieve a specific order for an offering
      parameters:
      - in: path
        name: order_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderDetails'
          description: ''
  /api/marketplace-provider-offerings/{uuid}/pause/:
    post:
      operationId: marketplace_provider_offerings_pause
      description: Pauses an active offering, preventing new orders from being created.
      summary: Pause an offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingPauseRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailState'
          description: ''
      x-permissions:
      - permission: OFFERING.PAUSE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/:
    post:
      operationId: marketplace_provider_offerings_refresh_offering_usernames
      description: Triggers a refresh of usernames for all non-restricted users associated
        with this offering, based on the current username generation policy.
      summary: Refresh offering user usernames
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceResponseStatus'
          description: ''
      x-permissions:
      - permission: OFFERING.UPDATE_INTEGRATION
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/remove_offering_component/:
    post:
      operationId: marketplace_provider_offerings_remove_offering_component
      description: Removes a custom component from an offering. Built-in components
        cannot be removed.
      summary: Remove an offering component
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveOfferingComponentRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_COMPONENTS
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/remove_partition/:
    post:
      operationId: marketplace_provider_offerings_remove_partition
      description: Removes a partition configuration from an offering.
      summary: Remove a partition from an offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemovePartitionRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/remove_software_catalog/:
    post:
      operationId: marketplace_provider_offerings_remove_software_catalog
      description: Disassociates a software catalog from an offering.
      summary: Remove a software catalog from an offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveSoftwareCatalogRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/set_backend_metadata/:
    post:
      operationId: marketplace_provider_offerings_set_backend_metadata
      description: Updates the backend-specific metadata for an offering.
      summary: Set offering backend metadata
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingBackendMetadataRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/stats/:
    get:
      operationId: marketplace_provider_offerings_stats_retrieve
      description: Returns basic statistics for an offering, such as the number of
        active resources and customers.
      summary: Get offering statistics
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  resources_count:
                    type: integer
                  customers_count:
                    type: integer
          description: ''
  /api/marketplace-provider-offerings/{uuid}/sync/:
    post:
      operationId: marketplace_provider_offerings_sync
      description: Schedules a synchronization task to pull the latest data for the
        offering's service settings from the backend.
      summary: Synchronize offering service settings
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_COMPONENTS
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/tos_stats/:
    get:
      operationId: marketplace_provider_offerings_tos_stats_retrieve
      description: Returns comprehensive Terms of Service consent statistics for this
        offering, including user counts, consent rates, and historical data.
      summary: Get Terms of Service consent statistics
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToSConsentDashboard'
          description: ''
  /api/marketplace-provider-offerings/{uuid}/unpause/:
    post:
      operationId: marketplace_provider_offerings_unpause
      description: Resumes a paused offering, making it available for ordering again.
      summary: Unpause an offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailState'
          description: ''
      x-permissions:
      - permission: OFFERING.UNPAUSE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/update-user-attribute-config/:
    post:
      operationId: marketplace_provider_offerings_update_user_attribute_config
      description: Creates or updates the user attribute configuration for this offering.
        This determines which user attributes are shared with the service provider.
      summary: Update user attribute config
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingUserAttributeConfigRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUserAttributeConfig'
          description: ''
    put:
      operationId: marketplace_provider_offerings_update_user_attribute_config_update
      description: Creates or updates the user attribute configuration for this offering.
        This determines which user attributes are shared with the service provider.
      summary: Update user attribute config
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingUserAttributeConfigRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUserAttributeConfig'
          description: ''
    patch:
      operationId: marketplace_provider_offerings_update_user_attribute_config_partial_update
      description: Creates or updates the user attribute configuration for this offering.
        This determines which user attributes are shared with the service provider.
      summary: Update user attribute config
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOfferingUserAttributeConfigRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUserAttributeConfig'
          description: ''
  /api/marketplace-provider-offerings/{uuid}/update_attributes/:
    post:
      operationId: marketplace_provider_offerings_update_attributes
      description: Updates the attributes of an offering.
      summary: Update offering attributes
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_ATTRIBUTES
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/update_backend_id_rules/:
    post:
      operationId: marketplace_provider_offerings_update_backend_id_rules
      description: 'Configure validation rules for resource backend_id: format regex
        and uniqueness scope.'
      summary: Update offering backend_id rules
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingBackendIdRulesUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_OPTIONS
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/update_compliance_checklist/:
    post:
      operationId: marketplace_provider_offerings_update_compliance_checklist
      description: Associates a compliance checklist with an offering.
      summary: Update offering compliance checklist
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingComplianceChecklistUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_OPTIONS
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/update_description/:
    post:
      operationId: marketplace_provider_offerings_update_description
      description: Updates the category of an offering.
      summary: Update offering category
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingDescriptionUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_DESCRIPTION
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/update_image/:
    post:
      operationId: marketplace_provider_offerings_update_image
      description: Uploads or replaces the main image for an offering.
      summary: Update offering image
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingImageRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OfferingImageRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OfferingImageRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-provider-offerings/{uuid}/update_integration/:
    post:
      operationId: marketplace_provider_offerings_update_integration
      description: Updates the backend integration settings for an offering, including
        plugin options, secret options, and service attributes.
      summary: Update offering integration settings
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingIntegrationUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_INTEGRATION
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/update_location/:
    post:
      operationId: marketplace_provider_offerings_update_location
      description: Updates the geographical location (latitude and longitude) of an
        offering.
      summary: Update offering location
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingLocationUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_LOCATION
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/update_offering_component/:
    post:
      operationId: marketplace_provider_offerings_update_offering_component
      description: Updates the properties of a specific component within an offering.
      summary: Update an offering component
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateOfferingComponentRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_COMPONENTS
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/update_options/:
    post:
      operationId: marketplace_provider_offerings_update_options
      description: Updates the order form options for an offering.
      summary: Update offering options
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingOptionsUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_OPTIONS
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/update_organization_groups/:
    post:
      operationId: marketplace_provider_offerings_update_organization_groups
      description: Sets the list of organization groups that can access this offering.
      summary: Update organization groups for offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationGroupsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-provider-offerings/{uuid}/update_overview/:
    post:
      operationId: marketplace_provider_offerings_update_overview
      description: Updates the overview fields of an offering, such as name, description,
        and getting started guide.
      summary: Update offering overview
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingOverviewUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-provider-offerings/{uuid}/update_partition/:
    patch:
      operationId: marketplace_provider_offerings_update_partition_partial_update
      description: Updates the configuration of an existing partition associated with
        an offering.
      summary: Update a partition of an offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOfferingPartitionUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingPartition'
          description: ''
      x-permissions:
      - permission: OFFERING.UPDATE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/update_resource_options/:
    post:
      operationId: marketplace_provider_offerings_update_resource_options
      description: Updates the resource report form options for an offering.
      summary: Update offering resource options
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingResourceOptionsUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.UPDATE_OPTIONS
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/update_software_catalog/:
    patch:
      operationId: marketplace_provider_offerings_update_software_catalog_partial_update
      description: Updates the configuration of a software catalog associated with
        an offering, such as enabled architectures or partition.
      summary: Update software catalog configuration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOfferingSoftwareCatalogUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingSoftwareCatalog'
          description: ''
      x-permissions:
      - permission: OFFERING.UPDATE
        scopes:
        - '*'
        - customer
        - customer.serviceprovider
  /api/marketplace-provider-offerings/{uuid}/update_tags/:
    post:
      operationId: marketplace_provider_offerings_update_tags
      description: Sets the list of tags for this offering.
      summary: Update tags for offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TagsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-provider-offerings/{uuid}/update_thumbnail/:
    post:
      operationId: marketplace_provider_offerings_update_thumbnail
      description: Uploads or replaces the thumbnail image for an offering.
      summary: Update offering thumbnail
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingThumbnailRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OfferingThumbnailRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OfferingThumbnailRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-provider-offerings/{uuid}/update_user/:
    post:
      operationId: marketplace_provider_offerings_update_user
      description: Updates the expiration time for a user's existing role in the current
        scope. This is useful for extending or shortening the duration of a permission.
        To make a role permanent, set expiration_time to null.
      summary: Update a user's role expiration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleUpdateRequest'
            examples:
              ExtendRoleUntilMid-2025:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2025-06-30'
                summary: Extend role until mid-2025
              MakeARolePermanent:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: null
                summary: Make a role permanent
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleUpdateResponse:
                  value:
                    expiration_time: '2025-06-30T00:00:00Z'
                  summary: Successful role update response
          description: ''
  /api/marketplace-provider-offerings/{uuid}/user-attribute-config/:
    get:
      operationId: marketplace_provider_offerings_user_attribute_config_retrieve
      description: Returns the user attribute configuration for this offering, which
        determines which user attributes are exposed to the service provider.
      summary: Get user attribute config
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingUserAttributeConfig'
          description: ''
  /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/:
    get:
      operationId: marketplace_provider_offerings_user_has_resource_access_retrieve
      description: Checks if a specified user has access to any non-terminated resource
        of this offering.
      summary: Check user access to offering resources
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - attributes
            - backend_id
            - backend_id_rules
            - backend_metadata
            - billable
            - billing_type_classification
            - category
            - category_title
            - category_uuid
            - citation_count
            - compliance_checklist
            - components
            - country
            - created
            - customer
            - customer_name
            - customer_uuid
            - datacite_doi
            - description
            - endpoints
            - files
            - full_description
            - getting_started
            - google_calendar_is_public
            - google_calendar_link
            - has_compliance_requirements
            - image
            - integration_guide
            - integration_status
            - latitude
            - longitude
            - name
            - options
            - order_count
            - organization_groups
            - parent_description
            - parent_name
            - parent_uuid
            - partitions
            - paused_reason
            - plans
            - plugin_options
            - privacy_policy_link
            - project
            - project_name
            - project_uuid
            - quotas
            - resource_options
            - roles
            - scope
            - scope_error_message
            - scope_name
            - scope_state
            - scope_uuid
            - screenshots
            - secret_options
            - service_attributes
            - shared
            - slug
            - software_catalogs
            - state
            - tags
            - thumbnail
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
            - url
            - uuid
            - vendor_details
      - in: query
        name: username
        schema:
          type: string
        description: Username of the user to check.
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderOfferingDetails'
          description: ''
  /api/marketplace-provider-offerings/groups/:
    get:
      operationId: marketplace_provider_offerings_groups_list
      description: Returns a paginated list of active, shared offerings grouped by
        their service provider.
      summary: List offerings grouped by provider
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingGroups'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_provider_offerings_groups_count
      description: Get number of items in the collection matching the request parameters.
      summary: List offerings grouped by provider
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-provider-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-provider-offerings/import_offering/:
    post:
      operationId: marketplace_provider_offerings_import_offering
      description: Imports an offering and all its connected parts from YAML format.
        Allows configuration of which components to import and how to handle conflicts.
        Imported offerings are always created in DRAFT state for security.
      summary: Import offering data
      tags:
      - marketplace-provider-offerings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OfferingImportParametersRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingImportResponse'
          description: ''
  /api/marketplace-provider-resources/:
    get:
      operationId: marketplace_provider_resources_list
      description: Returns a paginated list of resources for offerings managed by
        the current user as a service provider.
      summary: List provider resources
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: component_count
        schema:
          type: number
        description: Filter by exact number of components
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: downscaled
        schema:
          type: boolean
        description: Downscaled
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - attributes
            - available_actions
            - backend_id
            - backend_metadata
            - can_terminate
            - category_icon
            - category_title
            - category_uuid
            - created
            - creation_order
            - current_usages
            - customer_name
            - customer_slug
            - customer_uuid
            - description
            - downscaled
            - effective_id
            - end_date
            - end_date_requested_by
            - endpoints
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - last_sync
            - limit_usage
            - limits
            - modified
            - name
            - offering
            - offering_backend_id
            - offering_billable
            - offering_components
            - offering_description
            - offering_image
            - offering_name
            - offering_plugin_options
            - offering_shared
            - offering_slug
            - offering_state
            - offering_thumbnail
            - offering_type
            - offering_uuid
            - options
            - order_in_progress
            - parent_name
            - parent_offering_name
            - parent_offering_slug
            - parent_offering_uuid
            - parent_uuid
            - paused
            - plan
            - plan_description
            - plan_name
            - plan_unit
            - plan_uuid
            - project
            - project_description
            - project_end_date
            - project_end_date_requested_by
            - project_name
            - project_slug
            - project_uuid
            - provider_name
            - provider_slug
            - provider_uuid
            - renewal_date
            - report
            - resource_type
            - resource_uuid
            - restrict_member_access
            - scope
            - service_settings_uuid
            - slug
            - state
            - url
            - user_requires_reconsent
            - username
            - uuid
      - in: query
        name: has_terminate_date
        schema:
          type: boolean
        description: Has termination date
      - in: query
        name: is_attached
        schema:
          type: boolean
        description: Filter by attached state
      - in: query
        name: lexis_links_supported
        schema:
          type: boolean
        description: LEXIS links supported
      - in: query
        name: limit_based
        schema:
          type: boolean
        description: Filter by limit-based offerings
      - in: query
        name: limit_component_count
        schema:
          type: number
        description: Filter by exact number of limit-based components
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -end_date
            - -name
            - -project_name
            - -state
            - created
            - end_date
            - name
            - project_name
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_billable
        schema:
          type: boolean
        description: Offering billable
      - in: query
        name: offering_shared
        schema:
          type: boolean
        description: Offering shared
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_type
        schema:
          type: string
        description: Offering type
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: only_limit_based
        schema:
          type: boolean
        description: Filter resources with only limit-based components
      - in: query
        name: only_usage_based
        schema:
          type: boolean
        description: Filter resources with only usage-based components
      - in: query
        name: order_state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - done
            - erred
            - executing
            - pending-consumer
            - pending-project
            - pending-provider
            - pending-start-date
            - rejected
        description: |+
          Order state

        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: paused
        schema:
          type: boolean
        description: Paused
      - in: query
        name: plan_uuid
        schema:
          type: string
          format: uuid
        description: Plan UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by resource UUID, name, slug, backend ID, effective ID,
          IPs or hypervisor
      - in: query
        name: restrict_member_access
        schema:
          type: boolean
        description: Restrict member access
      - in: query
        name: runtime_state
        schema:
          type: string
        description: Runtime state
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Creating
            - Erred
            - OK
            - Terminated
            - Terminating
            - Updating
        description: |+
          Resource state

        explode: true
        style: form
      - in: query
        name: usage_based
        schema:
          type: boolean
        description: Filter by usage-based offerings
      - in: query
        name: visible_to_providers
        schema:
          type: boolean
        description: Include only resources visible to service providers
      - in: query
        name: visible_to_username
        schema:
          type: string
        description: Visible to username
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Resource'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_provider_resources_count
      description: Get number of items in the collection matching the request parameters.
      summary: List provider resources
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: component_count
        schema:
          type: number
        description: Filter by exact number of components
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: downscaled
        schema:
          type: boolean
        description: Downscaled
      - in: query
        name: has_terminate_date
        schema:
          type: boolean
        description: Has termination date
      - in: query
        name: is_attached
        schema:
          type: boolean
        description: Filter by attached state
      - in: query
        name: lexis_links_supported
        schema:
          type: boolean
        description: LEXIS links supported
      - in: query
        name: limit_based
        schema:
          type: boolean
        description: Filter by limit-based offerings
      - in: query
        name: limit_component_count
        schema:
          type: number
        description: Filter by exact number of limit-based components
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -end_date
            - -name
            - -project_name
            - -state
            - created
            - end_date
            - name
            - project_name
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_billable
        schema:
          type: boolean
        description: Offering billable
      - in: query
        name: offering_shared
        schema:
          type: boolean
        description: Offering shared
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_type
        schema:
          type: string
        description: Offering type
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: only_limit_based
        schema:
          type: boolean
        description: Filter resources with only limit-based components
      - in: query
        name: only_usage_based
        schema:
          type: boolean
        description: Filter resources with only usage-based components
      - in: query
        name: order_state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - done
            - erred
            - executing
            - pending-consumer
            - pending-project
            - pending-provider
            - pending-start-date
            - rejected
        description: |+
          Order state

        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: paused
        schema:
          type: boolean
        description: Paused
      - in: query
        name: plan_uuid
        schema:
          type: string
          format: uuid
        description: Plan UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by resource UUID, name, slug, backend ID, effective ID,
          IPs or hypervisor
      - in: query
        name: restrict_member_access
        schema:
          type: boolean
        description: Restrict member access
      - in: query
        name: runtime_state
        schema:
          type: string
        description: Runtime state
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Creating
            - Erred
            - OK
            - Terminated
            - Terminating
            - Updating
        description: |+
          Resource state

        explode: true
        style: form
      - in: query
        name: usage_based
        schema:
          type: boolean
        description: Filter by usage-based offerings
      - in: query
        name: visible_to_providers
        schema:
          type: boolean
        description: Include only resources visible to service providers
      - in: query
        name: visible_to_username
        schema:
          type: string
        description: Visible to username
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-provider-resources/{uuid}/:
    get:
      operationId: marketplace_provider_resources_retrieve
      description: Returns details of a specific resource from a provider's perspective.
      summary: Retrieve a provider resource
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - attributes
            - available_actions
            - backend_id
            - backend_metadata
            - can_terminate
            - category_icon
            - category_title
            - category_uuid
            - created
            - creation_order
            - current_usages
            - customer_name
            - customer_slug
            - customer_uuid
            - description
            - downscaled
            - effective_id
            - end_date
            - end_date_requested_by
            - endpoints
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - last_sync
            - limit_usage
            - limits
            - modified
            - name
            - offering
            - offering_backend_id
            - offering_billable
            - offering_components
            - offering_description
            - offering_image
            - offering_name
            - offering_plugin_options
            - offering_shared
            - offering_slug
            - offering_state
            - offering_thumbnail
            - offering_type
            - offering_uuid
            - options
            - order_in_progress
            - parent_name
            - parent_offering_name
            - parent_offering_slug
            - parent_offering_uuid
            - parent_uuid
            - paused
            - plan
            - plan_description
            - plan_name
            - plan_unit
            - plan_uuid
            - project
            - project_description
            - project_end_date
            - project_end_date_requested_by
            - project_name
            - project_slug
            - project_uuid
            - provider_name
            - provider_slug
            - provider_uuid
            - renewal_date
            - report
            - resource_type
            - resource_uuid
            - restrict_member_access
            - scope
            - service_settings_uuid
            - slug
            - state
            - url
            - user_requires_reconsent
            - username
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
          description: ''
    put:
      operationId: marketplace_provider_resources_update
      description: Updates the name or description of a resource. Requires provider
        permissions.
      summary: Update a provider resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceUpdate'
          description: ''
      x-permissions:
      - permission: RESOURCE.UPDATE
        scopes:
        - project
        - project.customer
        - offering
        - offering.customer
    patch:
      operationId: marketplace_provider_resources_partial_update
      description: Partially updates the name or description of a resource. Requires
        provider permissions.
      summary: Partially update a provider resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedResourceUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceUpdate'
          description: ''
      x-permissions:
      - permission: RESOURCE.UPDATE
        scopes:
        - project
        - project.customer
        - offering
        - offering.customer
  /api/marketplace-provider-resources/{uuid}/details/:
    get:
      operationId: marketplace_provider_resources_details_retrieve
      description: Returns the detailed representation of the backend resource associated
        with the marketplace resource. The format of the response depends on the resource
        type.
      summary: Get resource details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
        '404':
          content:
            application/json:
              schema: null
          description: ''
        '204':
          content:
            application/json:
              schema: null
          description: ''
  /api/marketplace-provider-resources/{uuid}/glauth_users_config/:
    get:
      operationId: marketplace_provider_resources_glauth_users_config_retrieve
      description: "\n        This endpoint provides a GLauth configuration file for\
        \ the users associated with the project of this resource.\n        It is intended\
        \ for use by an external agent to synchronize user data from Waldur to GLauth.\n\
        \        "
      summary: Get GLauth user configuration for a resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            text/plain:
              schema:
                type: string
          description: ''
  /api/marketplace-provider-resources/{uuid}/history/:
    get:
      operationId: marketplace_provider_resources_history_list
      description: Returns the version history for this object. Only accessible by
        staff and support users.
      summary: Get version history
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: component_count
        schema:
          type: number
        description: Filter by exact number of components
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: created_after
        schema:
          type: string
        description: Filter versions created after this timestamp (ISO 8601)
      - in: query
        name: created_before
        schema:
          type: string
        description: Filter versions created before this timestamp (ISO 8601)
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: downscaled
        schema:
          type: boolean
        description: Downscaled
      - in: query
        name: has_terminate_date
        schema:
          type: boolean
        description: Has termination date
      - in: query
        name: is_attached
        schema:
          type: boolean
        description: Filter by attached state
      - in: query
        name: lexis_links_supported
        schema:
          type: boolean
        description: LEXIS links supported
      - in: query
        name: limit_based
        schema:
          type: boolean
        description: Filter by limit-based offerings
      - in: query
        name: limit_component_count
        schema:
          type: number
        description: Filter by exact number of limit-based components
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -end_date
            - -name
            - -project_name
            - -state
            - created
            - end_date
            - name
            - project_name
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_billable
        schema:
          type: boolean
        description: Offering billable
      - in: query
        name: offering_shared
        schema:
          type: boolean
        description: Offering shared
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_type
        schema:
          type: string
        description: Offering type
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: only_limit_based
        schema:
          type: boolean
        description: Filter resources with only limit-based components
      - in: query
        name: only_usage_based
        schema:
          type: boolean
        description: Filter resources with only usage-based components
      - in: query
        name: order_state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - done
            - erred
            - executing
            - pending-consumer
            - pending-project
            - pending-provider
            - pending-start-date
            - rejected
        description: |+
          Order state

        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: paused
        schema:
          type: boolean
        description: Paused
      - in: query
        name: plan_uuid
        schema:
          type: string
          format: uuid
        description: Plan UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by resource UUID, name, slug, backend ID, effective ID,
          IPs or hypervisor
      - in: query
        name: restrict_member_access
        schema:
          type: boolean
        description: Restrict member access
      - in: query
        name: runtime_state
        schema:
          type: string
        description: Runtime state
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Creating
            - Erred
            - OK
            - Terminated
            - Terminating
            - Updating
        description: |+
          Resource state

        explode: true
        style: form
      - in: query
        name: usage_based
        schema:
          type: boolean
        description: Filter by usage-based offerings
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: visible_to_providers
        schema:
          type: boolean
        description: Include only resources visible to service providers
      - in: query
        name: visible_to_username
        schema:
          type: string
        description: Visible to username
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VersionHistory'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-resources/{uuid}/history/at/:
    get:
      operationId: marketplace_provider_resources_history_at_retrieve
      description: Returns the state of the object as it was at the specified timestamp.
        Only accessible by staff and support users.
      summary: Get object state at a specific timestamp
      parameters:
      - in: query
        name: timestamp
        schema:
          type: string
        description: ISO 8601 timestamp to query the object state at
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionHistory'
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
        '404':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
  /api/marketplace-provider-resources/{uuid}/move_resource/:
    post:
      operationId: marketplace_provider_resources_move_resource
      description: Moves a resource and its associated data to a different project.
        Requires staff permissions.
      summary: Move a resource to another project
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoveResourceRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
          description: ''
  /api/marketplace-provider-resources/{uuid}/offering/:
    get:
      operationId: marketplace_provider_resources_offering_retrieve
      description: Returns details of the offering connected to the requested object.
      summary: Get offering details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicOfferingDetails'
          description: ''
  /api/marketplace-provider-resources/{uuid}/offering_for_subresources/:
    get:
      operationId: marketplace_provider_resources_offering_for_subresources_list
      description: Returns a list of offerings that can be provisioned as sub-resources
        of the current resource.
      summary: List offerings for sub-resources
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SubresourceOffering'
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-resources/{uuid}/plan_periods/:
    get:
      operationId: marketplace_provider_resources_plan_periods_list
      description: Returns a list of active and future plan periods for the resource.
        Each period includes the plan details and current component usage.
      summary: List resource plan periods
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResourcePlanPeriod'
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-resources/{uuid}/pull/:
    post:
      operationId: marketplace_provider_resources_pull
      description: Schedules a task to pull the latest data for the resource from
        its backend.
      summary: Pull resource data
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
          description: ''
  /api/marketplace-provider-resources/{uuid}/refresh_last_sync/:
    post:
      operationId: marketplace_provider_resources_refresh_last_sync
      description: Updates the 'last_sync' timestamp for a resource to the current
        time. This is useful for backend agents to signal that a resource is being
        actively monitored.
      summary: Refresh last sync time
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: RESOURCE.SET_STATE
        scopes:
        - offering.customer
  /api/marketplace-provider-resources/{uuid}/restore/:
    post:
      operationId: marketplace_provider_resources_restore
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
          description: ''
  /api/marketplace-provider-resources/{uuid}/set_as_erred/:
    post:
      operationId: marketplace_provider_resources_set_as_erred
      description: Allows a service provider to manually set the state of a resource
        to 'erred'. An error message and traceback can be provided.
      summary: Set resource state to erred
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceSetStateErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: RESOURCE.SET_STATE
        scopes:
        - offering.customer
  /api/marketplace-provider-resources/{uuid}/set_as_ok/:
    post:
      operationId: marketplace_provider_resources_set_as_ok
      description: Allows a service provider to manually set the state of a resource
        to 'OK', clearing any previous error messages.
      summary: Set resource state to OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: RESOURCE.SET_STATE
        scopes:
        - offering.customer
  /api/marketplace-provider-resources/{uuid}/set_backend_id/:
    post:
      operationId: marketplace_provider_resources_set_backend_id
      description: Allows a service provider to set or update the backend ID for a
        resource, linking it to an external system's identifier.
      summary: Set resource backend ID
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceBackendIDRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceResponseStatus'
          description: ''
      x-permissions:
      - permission: RESOURCE.SET_BACKEND_ID
        scopes:
        - offering
        - offering.customer
  /api/marketplace-provider-resources/{uuid}/set_backend_metadata/:
    post:
      operationId: marketplace_provider_resources_set_backend_metadata
      description: Allows a service provider to set or update the backend-specific
        metadata for a resource.
      summary: Set resource backend metadata
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceBackendMetadataRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceResponseStatus'
          description: ''
      x-permissions:
      - permission: RESOURCE.SET_BACKEND_METADATA
        scopes:
        - offering.customer
  /api/marketplace-provider-resources/{uuid}/set_downscaled/:
    post:
      operationId: marketplace_provider_resources_set_downscaled
      description: Sets the 'downscaled' flag for a resource. Requires staff permissions.
      summary: Set downscaled flag for resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceDownscaledRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
          description: ''
  /api/marketplace-provider-resources/{uuid}/set_end_date_by_provider/:
    post:
      operationId: marketplace_provider_resources_set_end_date_by_provider
      description: Allows a service provider to set or update the end date for a resource,
        scheduling it for termination. A notification is sent to the consumer.
      summary: Set end date by provider
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceEndDateByProviderRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-provider-resources/{uuid}/set_end_date_by_staff/:
    post:
      operationId: marketplace_provider_resources_set_end_date_by_staff
      description: Allows a staff user to set or update the end date for a resource,
        which will schedule it for termination.
      summary: Set end date of the resource by staff
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceEndDateByProviderRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-provider-resources/{uuid}/set_limits/:
    post:
      operationId: marketplace_provider_resources_set_limits
      description: Allows a service provider to directly set the limits for a resource.
        This is typically used for administrative changes or backend synchronization,
        bypassing the normal order process.
      summary: Set resource limits
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceSetLimitsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceResponseStatus'
          description: ''
      x-permissions:
      - permission: RESOURCE.SET_STATE
        scopes:
        - offering.customer
  /api/marketplace-provider-resources/{uuid}/set_paused/:
    post:
      operationId: marketplace_provider_resources_set_paused
      description: Sets the 'paused' flag for a resource. Requires staff permissions.
      summary: Set paused flag for resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourcePausedRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
          description: ''
  /api/marketplace-provider-resources/{uuid}/set_restrict_member_access/:
    post:
      operationId: marketplace_provider_resources_set_restrict_member_access
      description: Sets the 'restrict_member_access' flag for a resource. Requires
        staff permissions.
      summary: Set restrict member access flag
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceRestrictMemberAccessRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
          description: ''
  /api/marketplace-provider-resources/{uuid}/set_slug/:
    post:
      operationId: marketplace_provider_resources_set_slug
      description: Updates the slug for a resource. Requires staff permissions.
      summary: Set resource slug
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceSlugRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
          description: ''
  /api/marketplace-provider-resources/{uuid}/set_state_ok/:
    post:
      operationId: marketplace_provider_resources_set_state_ok
      description: Allows a service provider to manually set the resource state to
        OK. This is useful for recovering from Erred state.
      summary: Set resource state to OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceResponseStatus'
          description: ''
      x-permissions:
      - permission: RESOURCE.SET_STATE
        scopes:
        - offering.customer
  /api/marketplace-provider-resources/{uuid}/submit_report/:
    post:
      operationId: marketplace_provider_resources_submit_report
      description: Allows a service provider to submit a report (e.g., usage or status
        report) for a resource.
      summary: Submit a report for a resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceReportRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceResponseStatus'
          description: ''
      x-permissions:
      - permission: RESOURCE.SUBMIT_REPORT
        scopes:
        - offering.customer
  /api/marketplace-provider-resources/{uuid}/team/:
    get:
      operationId: marketplace_provider_resources_team_list
      description: Returns a list of users connected to the project of this resource,
        including their project roles and offering-specific usernames.
      summary: Get resource team
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectUser'
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-provider-resources/{uuid}/terminate/:
    post:
      operationId: marketplace_provider_resources_terminate
      description: Creates a marketplace order to terminate the resource. This action
        is asynchronous and may require approval.
      summary: Terminate a resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceTerminateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderUUID'
          description: ''
      x-permissions:
      - permission: RESOURCE.TERMINATE
        scopes:
        - project
        - project.customer
        - offering.customer
  /api/marketplace-provider-resources/{uuid}/unlink/:
    post:
      operationId: marketplace_provider_resources_unlink
      description: Forcefully deletes a marketplace resource and its related plugin
        resource from the database. This action does not schedule operations on the
        backend and is intended for cleaning up resources stuck in transitioning states.
        Requires staff permissions.
      summary: Unlink a resource (staff only)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
        '403':
          description: No response body
  /api/marketplace-provider-resources/{uuid}/update_options/:
    post:
      operationId: marketplace_provider_resources_update_options
      description: Updates the options of a resource. If the offering is configured
        to create orders for option changes, a new UPDATE order will be created. Otherwise,
        the options are updated directly.
      summary: Update resource options
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceOptionsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceResponseStatus'
          description: ''
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderUUID'
          description: ''
        '409':
          description: No response body
      x-permissions:
      - permission: RESOURCE.UPDATE_OPTIONS
        scopes:
        - project
        - project.customer
        - offering.customer
  /api/marketplace-provider-resources/{uuid}/update_options_direct/:
    post:
      operationId: marketplace_provider_resources_update_options_direct
      description: Allows a service provider to directly update the options of a resource
        without creating an order. This is typically used for administrative changes
        or backend synchronization.
      summary: Update resource options directly
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-provider-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceOptionsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceResponseStatus'
          description: ''
      x-permissions:
      - permission: RESOURCE.UPDATE_OPTIONS
        scopes:
        - offering.customer
  /api/marketplace-public-api/check_signature/:
    post:
      operationId: marketplace_public_api_check_signature
      description: "\n        Validates a signed payload from a service provider.\
        \ The payload is a JWT token\n        signed with the provider's API secret\
        \ code. This endpoint is used to verify the\n        authenticity of a request\
        \ before processing it.\n\n        The `data` field should contain the JWT\
        \ token.\n        "
      summary: Check service provider signature
      tags:
      - marketplace-public-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceProviderSignatureRequest'
            examples:
              ExampleSignatureCheckRequest:
                value:
                  customer: a1b2c3d4-e5f6-7890-1234-567890abcdef
                  data: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
                summary: Example signature check request
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-public-api/set_usage/:
    post:
      operationId: marketplace_public_api_set_usage
      description: "\n        Allows a service provider to report usage for resource\
        \ components using a signed JWT payload.\n        This provides a secure way\
        \ for external systems to submit billing data.\n\n        The `data` field\
        \ must contain a JWT token that, when decoded, matches the structure of the\n\
        \        `ComponentUsageCreateSerializer`.\n        "
      summary: Set component usage with signature
      tags:
      - marketplace-public-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceProviderSignatureRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          description: No response body
  /api/marketplace-public-offerings/:
    get:
      operationId: marketplace_public_offerings_list
      description: Returns a paginated list of public offerings. The list is filtered
        to show only offerings that are active or paused and available for ordering
        by the current user. If anonymous access is enabled, it shows shared offerings
        available to unauthenticated users.
      summary: List public offerings
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - attributes
            - backend_id
            - backend_metadata
            - billable
            - billing_type_classification
            - category
            - category_title
            - category_uuid
            - citation_count
            - compliance_checklist
            - components
            - country
            - created
            - customer
            - customer_name
            - customer_uuid
            - datacite_doi
            - description
            - endpoints
            - files
            - full_description
            - getting_started
            - google_calendar_is_public
            - google_calendar_link
            - has_compliance_requirements
            - image
            - integration_guide
            - is_accessible
            - latitude
            - longitude
            - name
            - options
            - order_count
            - organization_groups
            - parent_description
            - parent_name
            - parent_uuid
            - partitions
            - paused_reason
            - plans
            - plugin_options
            - privacy_policy_link
            - project
            - project_name
            - project_uuid
            - promotion_campaigns
            - quotas
            - resource_options
            - roles
            - scope
            - scope_error_message
            - scope_name
            - scope_state
            - scope_uuid
            - screenshots
            - secret_options
            - service_attributes
            - shared
            - slug
            - software_catalogs
            - state
            - tags
            - thumbnail
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
            - url
            - user_has_consent
            - uuid
            - vendor_details
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-public-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicOfferingDetails'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_public_offerings_count
      description: Get number of items in the collection matching the request parameters.
      summary: List public offerings
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-public-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-public-offerings/{uuid}/:
    get:
      operationId: marketplace_public_offerings_retrieve
      description: Returns the details of a specific public offering. Access is granted
        if the offering is available for ordering by the current user or if anonymous
        access is enabled.
      summary: Retrieve a public offering
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - attributes
            - backend_id
            - backend_metadata
            - billable
            - billing_type_classification
            - category
            - category_title
            - category_uuid
            - citation_count
            - compliance_checklist
            - components
            - country
            - created
            - customer
            - customer_name
            - customer_uuid
            - datacite_doi
            - description
            - endpoints
            - files
            - full_description
            - getting_started
            - google_calendar_is_public
            - google_calendar_link
            - has_compliance_requirements
            - image
            - integration_guide
            - is_accessible
            - latitude
            - longitude
            - name
            - options
            - order_count
            - organization_groups
            - parent_description
            - parent_name
            - parent_uuid
            - partitions
            - paused_reason
            - plans
            - plugin_options
            - privacy_policy_link
            - project
            - project_name
            - project_uuid
            - promotion_campaigns
            - quotas
            - resource_options
            - roles
            - scope
            - scope_error_message
            - scope_name
            - scope_state
            - scope_uuid
            - screenshots
            - secret_options
            - service_attributes
            - shared
            - slug
            - software_catalogs
            - state
            - tags
            - thumbnail
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
            - url
            - user_has_consent
            - uuid
            - vendor_details
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-public-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicOfferingDetails'
          description: ''
  /api/marketplace-public-offerings/{uuid}/plans/:
    get:
      operationId: marketplace_public_offerings_plans_list
      description: Returns a list of plans available for a specific offering. The
        plans are filtered based on the current user's permissions and organization
        group memberships.
      summary: List plans for an offering
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-public-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BasePublicPlan'
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-public-offerings/{uuid}/plans/{plan_uuid}/:
    get:
      operationId: marketplace_public_offerings_plans_retrieve
      description: Returns the details of a specific plan if it is available to the
        current user for the given offering.
      summary: Retrieve a specific plan for an offering
      parameters:
      - in: path
        name: plan_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - marketplace-public-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasePublicPlan'
          description: ''
  /api/marketplace-related-customers/{customer_uuid}/:
    get:
      operationId: marketplace_related_customers_list
      parameters:
      - in: path
        name: customer_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-related-customers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BasicCustomer'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-remote-synchronisations/:
    get:
      operationId: marketplace_remote_synchronisations_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-remote-synchronisations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RemoteSynchronisation'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_remote_synchronisations_create
      tags:
      - marketplace-remote-synchronisations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoteSynchronisationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteSynchronisation'
          description: ''
    head:
      operationId: marketplace_remote_synchronisations_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-remote-synchronisations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-remote-synchronisations/{uuid}/:
    get:
      operationId: marketplace_remote_synchronisations_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-remote-synchronisations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteSynchronisation'
          description: ''
    put:
      operationId: marketplace_remote_synchronisations_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-remote-synchronisations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoteSynchronisationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteSynchronisation'
          description: ''
    patch:
      operationId: marketplace_remote_synchronisations_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-remote-synchronisations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRemoteSynchronisationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteSynchronisation'
          description: ''
    delete:
      operationId: marketplace_remote_synchronisations_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-remote-synchronisations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-remote-synchronisations/{uuid}/run_synchronisation/:
    post:
      operationId: marketplace_remote_synchronisations_run_synchronisation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-remote-synchronisations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteSynchronisation'
          description: ''
  /api/marketplace-resource-offerings/{category_uuid}/:
    get:
      operationId: marketplace_resource_offerings_list
      parameters:
      - in: path
        name: category_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-resource-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResourceOffering'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-resource-users/:
    get:
      operationId: marketplace_resource_users_list
      description: Returns a paginated list of users associated with resources, including
        their roles. The list is filtered based on the permissions of the current
        user. Staff and support users can see all resource-user links. Other users
        can only see links for resources they have access to.
      summary: List resource users
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: resource
        schema:
          type: string
        description: Resource URL
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: role_name
        schema:
          type: string
        description: Role name
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
        description: Role UUID
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      tags:
      - marketplace-resource-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResourceUser'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_resource_users_create
      description: Creates a new association between a user and a resource with a
        specific role. The user must have permission to manage users for the resource
        (typically service provider staff or owners).
      summary: Link a user to a resource
      tags:
      - marketplace-resource-users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceUserRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceUser'
          description: ''
    head:
      operationId: marketplace_resource_users_count
      description: Get number of items in the collection matching the request parameters.
      summary: List resource users
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: resource
        schema:
          type: string
        description: Resource URL
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: role_name
        schema:
          type: string
        description: Role name
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
        description: Role UUID
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      tags:
      - marketplace-resource-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-resource-users/{uuid}/:
    get:
      operationId: marketplace_resource_users_retrieve
      description: Returns details of a specific link between a user and a resource,
        including their role.
      summary: Retrieve a resource-user link
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resource-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceUser'
          description: ''
    delete:
      operationId: marketplace_resource_users_destroy
      description: Removes the association between a user and a resource, effectively
        revoking their role on that resource. The user must have permission to manage
        users for the resource.
      summary: Unlink a user from a resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resource-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-resources/:
    get:
      operationId: marketplace_resources_list
      description: Returns a paginated list of resources accessible to the current
        user as a service consumer.
      summary: List consumer resources
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: component_count
        schema:
          type: number
        description: Filter by exact number of components
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: downscaled
        schema:
          type: boolean
        description: Downscaled
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - attributes
            - available_actions
            - backend_id
            - backend_metadata
            - can_terminate
            - category_icon
            - category_title
            - category_uuid
            - created
            - creation_order
            - current_usages
            - customer_name
            - customer_slug
            - customer_uuid
            - description
            - downscaled
            - effective_id
            - end_date
            - end_date_requested_by
            - endpoints
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - last_sync
            - limit_usage
            - limits
            - modified
            - name
            - offering
            - offering_backend_id
            - offering_billable
            - offering_components
            - offering_description
            - offering_image
            - offering_name
            - offering_plugin_options
            - offering_shared
            - offering_slug
            - offering_state
            - offering_thumbnail
            - offering_type
            - offering_uuid
            - options
            - order_in_progress
            - parent_name
            - parent_offering_name
            - parent_offering_slug
            - parent_offering_uuid
            - parent_uuid
            - paused
            - plan
            - plan_description
            - plan_name
            - plan_unit
            - plan_uuid
            - project
            - project_description
            - project_end_date
            - project_end_date_requested_by
            - project_name
            - project_slug
            - project_uuid
            - provider_name
            - provider_slug
            - provider_uuid
            - renewal_date
            - report
            - resource_type
            - resource_uuid
            - restrict_member_access
            - scope
            - service_settings_uuid
            - slug
            - state
            - url
            - user_requires_reconsent
            - username
            - uuid
      - in: query
        name: has_terminate_date
        schema:
          type: boolean
        description: Has termination date
      - in: query
        name: is_attached
        schema:
          type: boolean
        description: Filter by attached state
      - in: query
        name: lexis_links_supported
        schema:
          type: boolean
        description: LEXIS links supported
      - in: query
        name: limit_based
        schema:
          type: boolean
        description: Filter by limit-based offerings
      - in: query
        name: limit_component_count
        schema:
          type: number
        description: Filter by exact number of limit-based components
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -end_date
            - -name
            - -project_name
            - -state
            - created
            - end_date
            - name
            - project_name
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_billable
        schema:
          type: boolean
        description: Offering billable
      - in: query
        name: offering_shared
        schema:
          type: boolean
        description: Offering shared
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_type
        schema:
          type: string
        description: Offering type
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: only_limit_based
        schema:
          type: boolean
        description: Filter resources with only limit-based components
      - in: query
        name: only_usage_based
        schema:
          type: boolean
        description: Filter resources with only usage-based components
      - in: query
        name: order_state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - done
            - erred
            - executing
            - pending-consumer
            - pending-project
            - pending-provider
            - pending-start-date
            - rejected
        description: |+
          Order state

        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: paused
        schema:
          type: boolean
        description: Paused
      - in: query
        name: plan_uuid
        schema:
          type: string
          format: uuid
        description: Plan UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by resource UUID, name, slug, backend ID, effective ID,
          IPs or hypervisor
      - in: query
        name: restrict_member_access
        schema:
          type: boolean
        description: Restrict member access
      - in: query
        name: runtime_state
        schema:
          type: string
        description: Runtime state
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Creating
            - Erred
            - OK
            - Terminated
            - Terminating
            - Updating
        description: |+
          Resource state

        explode: true
        style: form
      - in: query
        name: usage_based
        schema:
          type: boolean
        description: Filter by usage-based offerings
      - in: query
        name: visible_to_providers
        schema:
          type: boolean
        description: Include only resources visible to service providers
      - in: query
        name: visible_to_username
        schema:
          type: string
        description: Visible to username
      tags:
      - marketplace-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Resource'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_resources_count
      description: Get number of items in the collection matching the request parameters.
      summary: List consumer resources
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: component_count
        schema:
          type: number
        description: Filter by exact number of components
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: downscaled
        schema:
          type: boolean
        description: Downscaled
      - in: query
        name: has_terminate_date
        schema:
          type: boolean
        description: Has termination date
      - in: query
        name: is_attached
        schema:
          type: boolean
        description: Filter by attached state
      - in: query
        name: lexis_links_supported
        schema:
          type: boolean
        description: LEXIS links supported
      - in: query
        name: limit_based
        schema:
          type: boolean
        description: Filter by limit-based offerings
      - in: query
        name: limit_component_count
        schema:
          type: number
        description: Filter by exact number of limit-based components
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -end_date
            - -name
            - -project_name
            - -state
            - created
            - end_date
            - name
            - project_name
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_billable
        schema:
          type: boolean
        description: Offering billable
      - in: query
        name: offering_shared
        schema:
          type: boolean
        description: Offering shared
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_type
        schema:
          type: string
        description: Offering type
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: only_limit_based
        schema:
          type: boolean
        description: Filter resources with only limit-based components
      - in: query
        name: only_usage_based
        schema:
          type: boolean
        description: Filter resources with only usage-based components
      - in: query
        name: order_state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - done
            - erred
            - executing
            - pending-consumer
            - pending-project
            - pending-provider
            - pending-start-date
            - rejected
        description: |+
          Order state

        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: paused
        schema:
          type: boolean
        description: Paused
      - in: query
        name: plan_uuid
        schema:
          type: string
          format: uuid
        description: Plan UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by resource UUID, name, slug, backend ID, effective ID,
          IPs or hypervisor
      - in: query
        name: restrict_member_access
        schema:
          type: boolean
        description: Restrict member access
      - in: query
        name: runtime_state
        schema:
          type: string
        description: Runtime state
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Creating
            - Erred
            - OK
            - Terminated
            - Terminating
            - Updating
        description: |+
          Resource state

        explode: true
        style: form
      - in: query
        name: usage_based
        schema:
          type: boolean
        description: Filter by usage-based offerings
      - in: query
        name: visible_to_providers
        schema:
          type: boolean
        description: Include only resources visible to service providers
      - in: query
        name: visible_to_username
        schema:
          type: string
        description: Visible to username
      tags:
      - marketplace-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-resources/{uuid}/:
    get:
      operationId: marketplace_resources_retrieve
      description: Returns details of a specific resource accessible to the consumer.
      summary: Retrieve a consumer resource
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - attributes
            - available_actions
            - backend_id
            - backend_metadata
            - can_terminate
            - category_icon
            - category_title
            - category_uuid
            - created
            - creation_order
            - current_usages
            - customer_name
            - customer_slug
            - customer_uuid
            - description
            - downscaled
            - effective_id
            - end_date
            - end_date_requested_by
            - endpoints
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - last_sync
            - limit_usage
            - limits
            - modified
            - name
            - offering
            - offering_backend_id
            - offering_billable
            - offering_components
            - offering_description
            - offering_image
            - offering_name
            - offering_plugin_options
            - offering_shared
            - offering_slug
            - offering_state
            - offering_thumbnail
            - offering_type
            - offering_uuid
            - options
            - order_in_progress
            - parent_name
            - parent_offering_name
            - parent_offering_slug
            - parent_offering_uuid
            - parent_uuid
            - paused
            - plan
            - plan_description
            - plan_name
            - plan_unit
            - plan_uuid
            - project
            - project_description
            - project_end_date
            - project_end_date_requested_by
            - project_name
            - project_slug
            - project_uuid
            - provider_name
            - provider_slug
            - provider_uuid
            - renewal_date
            - report
            - resource_type
            - resource_uuid
            - restrict_member_access
            - scope
            - service_settings_uuid
            - slug
            - state
            - url
            - user_requires_reconsent
            - username
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
          description: ''
    put:
      operationId: marketplace_resources_update
      description: Updates the name, description, or end date of a resource.
      summary: Update a consumer resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceUpdate'
          description: ''
      x-permissions:
      - permission: RESOURCE.UPDATE
        scopes:
        - project
        - project.customer
        - offering
        - offering.customer
    patch:
      operationId: marketplace_resources_partial_update
      description: Partially updates the name, description, or end date of a resource.
      summary: Partially update a consumer resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedResourceUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceUpdate'
          description: ''
      x-permissions:
      - permission: RESOURCE.UPDATE
        scopes:
        - project
        - project.customer
        - offering
        - offering.customer
  /api/marketplace-resources/{uuid}/details/:
    get:
      operationId: marketplace_resources_details_retrieve
      description: Returns the detailed representation of the backend resource associated
        with the marketplace resource. The format of the response depends on the resource
        type.
      summary: Get resource details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
        '404':
          content:
            application/json:
              schema: null
          description: ''
        '204':
          content:
            application/json:
              schema: null
          description: ''
  /api/marketplace-resources/{uuid}/estimate_renewal/:
    post:
      operationId: marketplace_resources_estimate_renewal
      summary: Estimate renewal cost breakdown
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RenewalEstimateRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RenewalEstimateResponse'
          description: ''
      x-permissions:
      - permission: RESOURCE.SET_LIMITS
        scopes:
        - project
        - project.customer
  /api/marketplace-resources/{uuid}/glauth_users_config/:
    get:
      operationId: marketplace_resources_glauth_users_config_retrieve
      description: "\n        This endpoint provides a GLauth configuration file for\
        \ the users associated with the project of this resource.\n        It is intended\
        \ for use by an external agent to synchronize user data from Waldur to GLauth.\n\
        \        "
      summary: Get GLauth user configuration for a resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            text/plain:
              schema:
                type: string
          description: ''
  /api/marketplace-resources/{uuid}/history/:
    get:
      operationId: marketplace_resources_history_list
      description: Returns the version history for this object. Only accessible by
        staff and support users.
      summary: Get version history
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: component_count
        schema:
          type: number
        description: Filter by exact number of components
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: created_after
        schema:
          type: string
        description: Filter versions created after this timestamp (ISO 8601)
      - in: query
        name: created_before
        schema:
          type: string
        description: Filter versions created before this timestamp (ISO 8601)
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: downscaled
        schema:
          type: boolean
        description: Downscaled
      - in: query
        name: has_terminate_date
        schema:
          type: boolean
        description: Has termination date
      - in: query
        name: is_attached
        schema:
          type: boolean
        description: Filter by attached state
      - in: query
        name: lexis_links_supported
        schema:
          type: boolean
        description: LEXIS links supported
      - in: query
        name: limit_based
        schema:
          type: boolean
        description: Filter by limit-based offerings
      - in: query
        name: limit_component_count
        schema:
          type: number
        description: Filter by exact number of limit-based components
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -end_date
            - -name
            - -project_name
            - -state
            - created
            - end_date
            - name
            - project_name
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_billable
        schema:
          type: boolean
        description: Offering billable
      - in: query
        name: offering_shared
        schema:
          type: boolean
        description: Offering shared
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_type
        schema:
          type: string
        description: Offering type
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: only_limit_based
        schema:
          type: boolean
        description: Filter resources with only limit-based components
      - in: query
        name: only_usage_based
        schema:
          type: boolean
        description: Filter resources with only usage-based components
      - in: query
        name: order_state
        schema:
          type: array
          items:
            type: string
            enum:
            - canceled
            - done
            - erred
            - executing
            - pending-consumer
            - pending-project
            - pending-provider
            - pending-start-date
            - rejected
        description: |+
          Order state

        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: paused
        schema:
          type: boolean
        description: Paused
      - in: query
        name: plan_uuid
        schema:
          type: string
          format: uuid
        description: Plan UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by resource UUID, name, slug, backend ID, effective ID,
          IPs or hypervisor
      - in: query
        name: restrict_member_access
        schema:
          type: boolean
        description: Restrict member access
      - in: query
        name: runtime_state
        schema:
          type: string
        description: Runtime state
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Creating
            - Erred
            - OK
            - Terminated
            - Terminating
            - Updating
        description: |+
          Resource state

        explode: true
        style: form
      - in: query
        name: usage_based
        schema:
          type: boolean
        description: Filter by usage-based offerings
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: visible_to_providers
        schema:
          type: boolean
        description: Include only resources visible to service providers
      - in: query
        name: visible_to_username
        schema:
          type: string
        description: Visible to username
      tags:
      - marketplace-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VersionHistory'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-resources/{uuid}/history/at/:
    get:
      operationId: marketplace_resources_history_at_retrieve
      description: Returns the state of the object as it was at the specified timestamp.
        Only accessible by staff and support users.
      summary: Get object state at a specific timestamp
      parameters:
      - in: query
        name: timestamp
        schema:
          type: string
        description: ISO 8601 timestamp to query the object state at
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionHistory'
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
        '404':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
  /api/marketplace-resources/{uuid}/move_resource/:
    post:
      operationId: marketplace_resources_move_resource
      description: Moves a resource and its associated data to a different project.
        Requires staff permissions.
      summary: Move a resource to another project
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoveResourceRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
          description: ''
  /api/marketplace-resources/{uuid}/offering/:
    get:
      operationId: marketplace_resources_offering_retrieve
      description: Returns details of the offering connected to the requested object.
      summary: Get offering details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicOfferingDetails'
          description: ''
  /api/marketplace-resources/{uuid}/offering_for_subresources/:
    get:
      operationId: marketplace_resources_offering_for_subresources_list
      description: Returns a list of offerings that can be provisioned as sub-resources
        of the current resource.
      summary: List offerings for sub-resources
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SubresourceOffering'
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-resources/{uuid}/plan_periods/:
    get:
      operationId: marketplace_resources_plan_periods_list
      description: Returns a list of active and future plan periods for the resource.
        Each period includes the plan details and current component usage.
      summary: List resource plan periods
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResourcePlanPeriod'
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-resources/{uuid}/pull/:
    post:
      operationId: marketplace_resources_pull
      description: Schedules a task to pull the latest data for the resource from
        its backend.
      summary: Pull resource data
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
          description: ''
  /api/marketplace-resources/{uuid}/reallocate_limits/:
    post:
      operationId: marketplace_resources_reallocate_limits
      description: Creates marketplace orders to reallocate limits from source resource
        to target resources.
      summary: Reallocate resource limits
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceReallocateLimitsRequest'
            examples:
              ReallocateLimits:
                value:
                  limits:
                    cores: 2
                    ram: 4
                  targets:
                  - resource_uuid: 550e8400-e29b-41d4-a716-446655440000
                    allocated_limits:
                      cores: 1
                      ram: 2
                  - resource_uuid: 660e8400-e29b-41d4-a716-446655440001
                    allocated_limits:
                      cores: 1
                      ram: 2
                summary: Reallocate limits
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceReallocateLimitsResponse'
              examples:
                ReallocateLimits:
                  value:
                    limits:
                      cores: 2
                      ram: 4
                    targets:
                    - resource_uuid: 550e8400-e29b-41d4-a716-446655440000
                      allocated_limits:
                        cores: 1
                        ram: 2
                    - resource_uuid: 660e8400-e29b-41d4-a716-446655440001
                      allocated_limits:
                        cores: 1
                        ram: 2
                  summary: Reallocate limits
          description: ''
      x-permissions:
      - permission: RESOURCE.SET_LIMITS
        scopes:
        - project
        - project.customer
  /api/marketplace-resources/{uuid}/renew/:
    post:
      operationId: marketplace_resources_renew
      description: Creates a renewal order to extend the subscription period of a
        prepaid resource. Optionally, limits can be upgraded at the same time.
      summary: Renew a prepaid resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceRenewRequest'
            examples:
              RenewFor12MonthsWithLimitUpgrade:
                value:
                  extension_months: 12
                  limits:
                    storage: 200
                summary: Renew for 12 months with limit upgrade
              RenewFor6MonthsWithoutChangingLimits:
                value:
                  extension_months: 6
                summary: Renew for 6 months without changing limits
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ResourceRenewRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ResourceRenewRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderUUID'
              examples:
                RenewFor12MonthsWithLimitUpgrade:
                  value:
                    extension_months: 12
                    limits:
                      storage: 200
                  summary: Renew for 12 months with limit upgrade
                RenewFor6MonthsWithoutChangingLimits:
                  value:
                    extension_months: 6
                  summary: Renew for 6 months without changing limits
          description: ''
      x-permissions:
      - permission: RESOURCE.SET_LIMITS
        scopes:
        - project
        - project.customer
  /api/marketplace-resources/{uuid}/restore/:
    post:
      operationId: marketplace_resources_restore
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource'
          description: ''
  /api/marketplace-resources/{uuid}/set_downscaled/:
    post:
      operationId: marketplace_resources_set_downscaled
      description: Sets the 'downscaled' flag for a resource. Requires staff permissions.
      summary: Set downscaled flag for resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceDownscaledRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
          description: ''
  /api/marketplace-resources/{uuid}/set_end_date_by_staff/:
    post:
      operationId: marketplace_resources_set_end_date_by_staff
      description: Allows a staff user to set or update the end date for a resource,
        which will schedule it for termination.
      summary: Set end date of the resource by staff
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceEndDateByProviderRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-resources/{uuid}/set_paused/:
    post:
      operationId: marketplace_resources_set_paused
      description: Sets the 'paused' flag for a resource. Requires staff permissions.
      summary: Set paused flag for resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourcePausedRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
          description: ''
  /api/marketplace-resources/{uuid}/set_restrict_member_access/:
    post:
      operationId: marketplace_resources_set_restrict_member_access
      description: Sets the 'restrict_member_access' flag for a resource. Requires
        staff permissions.
      summary: Set restrict member access flag
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceRestrictMemberAccessRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
          description: ''
  /api/marketplace-resources/{uuid}/set_slug/:
    post:
      operationId: marketplace_resources_set_slug
      description: Updates the slug for a resource. Requires staff permissions.
      summary: Set resource slug
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceSlugRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
          description: ''
  /api/marketplace-resources/{uuid}/switch_plan/:
    post:
      operationId: marketplace_resources_switch_plan
      description: Creates a marketplace order to switch the billing plan for a resource.
        This action is asynchronous and may require approval.
      summary: Switch resource plan
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceSwitchPlanRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderUUID'
          description: ''
      x-permissions:
      - permission: RESOURCE.SET_PLAN
        scopes:
        - project
        - project.customer
  /api/marketplace-resources/{uuid}/team/:
    get:
      operationId: marketplace_resources_team_list
      description: Returns a list of users connected to the project of this resource,
        including their project roles and offering-specific usernames.
      summary: Get resource team
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectUser'
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-resources/{uuid}/terminate/:
    post:
      operationId: marketplace_resources_terminate
      description: Creates a marketplace order to terminate the resource. This action
        is asynchronous and may require approval.
      summary: Terminate a resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceTerminateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderUUID'
          description: ''
      x-permissions:
      - permission: RESOURCE.TERMINATE
        scopes:
        - project
        - project.customer
        - offering.customer
  /api/marketplace-resources/{uuid}/unlink/:
    post:
      operationId: marketplace_resources_unlink
      description: Forcefully deletes a marketplace resource and its related plugin
        resource from the database. This action does not schedule operations on the
        backend and is intended for cleaning up resources stuck in transitioning states.
        Requires staff permissions.
      summary: Unlink a resource (staff only)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
        '403':
          description: No response body
  /api/marketplace-resources/{uuid}/update_limits/:
    post:
      operationId: marketplace_resources_update_limits
      description: Creates a marketplace order to update the limits (e.g., CPU, RAM)
        for a resource. This action is asynchronous and may require approval.
      summary: Update resource limits
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceUpdateLimitsRequest'
            examples:
              UpdateResourceLimits:
                value:
                  limits:
                    cpu: 4
                    ram_gb: 8
                summary: Update resource limits
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderUUID'
              examples:
                UpdateResourceLimits:
                  value:
                    limits:
                      cpu: 4
                      ram_gb: 8
                  summary: Update resource limits
          description: ''
      x-permissions:
      - permission: RESOURCE.SET_LIMITS
        scopes:
        - project
        - project.customer
  /api/marketplace-resources/{uuid}/update_options/:
    post:
      operationId: marketplace_resources_update_options
      description: Updates the options of a resource. If the offering is configured
        to create orders for option changes, a new UPDATE order will be created. Otherwise,
        the options are updated directly.
      summary: Update resource options
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceOptionsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceResponseStatus'
          description: ''
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderUUID'
          description: ''
        '409':
          description: No response body
      x-permissions:
      - permission: RESOURCE.UPDATE_OPTIONS
        scopes:
        - project
        - project.customer
        - offering.customer
  /api/marketplace-resources/suggest_name/:
    post:
      operationId: marketplace_resources_suggest_name
      description: Generates a suggested name for a new resource based on the project
        and offering.
      summary: Suggest a resource name
      tags:
      - marketplace-resources
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceSuggestNameRequest'
            examples:
              SuggestANameForANewResource:
                value:
                  project: a1b2c3d4-e5f6-7890-1234-567890abcdef
                  offering: b2c3d4e5-f678-9012-3456-7890abcdef12
                summary: Suggest a name for a new resource
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
              examples:
                ExampleResponseWithSuggestedName:
                  value:
                    name: customer-slug-project-slug-offering-slug-1
                  summary: Example response with suggested name
          description: ''
  /api/marketplace-robot-accounts/:
    get:
      operationId: marketplace_robot_accounts_list
      description: Returns a paginated list of robot accounts accessible to the current
        user.
      summary: List robot accounts
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - created
            - customer_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - fingerprints
            - keys
            - modified
            - offering_plugin_options
            - project_name
            - project_uuid
            - provider_name
            - provider_uuid
            - resource
            - resource_name
            - resource_uuid
            - responsible_user
            - state
            - type
            - url
            - user_keys
            - username
            - users
            - uuid
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: resource
        schema:
          type: string
        description: Resource URL
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: state
        schema:
          type: integer
          enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        description: |+
          Robot account state

      - in: query
        name: type
        schema:
          type: string
      tags:
      - marketplace-robot-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RobotAccountDetails'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_robot_accounts_create
      description: Creates a new robot account for a specific resource. This is typically
        used for automated access to a resource, e.g., for CI/CD pipelines.
      summary: Create a robot account
      tags:
      - marketplace-robot-accounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RobotAccountRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RobotAccount'
          description: ''
    head:
      operationId: marketplace_robot_accounts_count
      description: Get number of items in the collection matching the request parameters.
      summary: List robot accounts
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider UUID
      - in: query
        name: resource
        schema:
          type: string
        description: Resource URL
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: state
        schema:
          type: integer
          enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
        description: |+
          Robot account state

      - in: query
        name: type
        schema:
          type: string
      tags:
      - marketplace-robot-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-robot-accounts/{uuid}/:
    get:
      operationId: marketplace_robot_accounts_retrieve
      description: Returns the details of a specific robot account.
      summary: Retrieve a robot account
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - created
            - customer_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - fingerprints
            - keys
            - modified
            - offering_plugin_options
            - project_name
            - project_uuid
            - provider_name
            - provider_uuid
            - resource
            - resource_name
            - resource_uuid
            - responsible_user
            - state
            - type
            - url
            - user_keys
            - username
            - users
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-robot-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RobotAccountDetails'
          description: ''
    put:
      operationId: marketplace_robot_accounts_update
      description: Updates the properties of a robot account, such as its username
        or associated users. Not allowed for synchronized remote accounts.
      summary: Update a robot account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-robot-accounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RobotAccountRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RobotAccount'
          description: ''
    patch:
      operationId: marketplace_robot_accounts_partial_update
      description: Partially updates the properties of a robot account. Not allowed
        for synchronized remote accounts.
      summary: Partially update a robot account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-robot-accounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRobotAccountRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RobotAccount'
          description: ''
    delete:
      operationId: marketplace_robot_accounts_destroy
      description: Deletes a robot account. This is a hard delete and should be used
        with caution.
      summary: Delete a robot account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-robot-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: RESOURCE.DELETE_ROBOT_ACCOUNT
        scopes:
        - resource.offering.customer
  /api/marketplace-robot-accounts/{uuid}/set_state_creating/:
    post:
      operationId: marketplace_robot_accounts_set_state_creating
      description: Transitions the robot account state from 'Requested' to 'Creating'.
        This is typically used by an agent to signal that the creation process has
        started.
      summary: Set robot account state to creating
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-robot-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RobotAccountDetails'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StateTransitionError'
          description: ''
      x-permissions:
      - permission: RESOURCE.UPDATE_ROBOT_ACCOUNT
        scopes:
        - resource.offering.customer
  /api/marketplace-robot-accounts/{uuid}/set_state_deleted/:
    post:
      operationId: marketplace_robot_accounts_set_state_deleted
      description: Transitions the robot account state from 'Requested deletion' to
        'Deleted', marking the successful completion of the deletion process.
      summary: Set robot account state to deleted
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-robot-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RobotAccountDetails'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StateTransitionError'
          description: ''
      x-permissions:
      - permission: RESOURCE.UPDATE_ROBOT_ACCOUNT
        scopes:
        - resource.offering.customer
  /api/marketplace-robot-accounts/{uuid}/set_state_erred/:
    post:
      operationId: marketplace_robot_accounts_set_state_erred
      description: Manually moves the robot account into the 'Error' state. An optional
        error message can be provided.
      summary: Set robot account state to erred
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-robot-accounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RobotAccountErrorRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RobotAccountDetails'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StateTransitionError'
          description: ''
      x-permissions:
      - permission: RESOURCE.UPDATE_ROBOT_ACCOUNT
        scopes:
        - resource.offering.customer
  /api/marketplace-robot-accounts/{uuid}/set_state_ok/:
    post:
      operationId: marketplace_robot_accounts_set_state_ok
      description: Manually sets the robot account state to 'OK', indicating that
        it is fully operational. This can be used to recover from an error state.
      summary: Set robot account state to OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-robot-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RobotAccountDetails'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StateTransitionError'
          description: ''
      x-permissions:
      - permission: RESOURCE.UPDATE_ROBOT_ACCOUNT
        scopes:
        - resource.offering.customer
  /api/marketplace-robot-accounts/{uuid}/set_state_request_deletion/:
    post:
      operationId: marketplace_robot_accounts_set_state_request_deletion
      description: Transitions the robot account state from 'OK' to 'Requested deletion',
        initiating the deletion process.
      summary: Request deletion of a robot account
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-robot-accounts
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RobotAccountDetails'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StateTransitionError'
          description: ''
      x-permissions:
      - permission: RESOURCE.UPDATE_ROBOT_ACCOUNT
        scopes:
        - resource.offering.customer
  /api/marketplace-runtime-states/:
    get:
      operationId: marketplace_runtime_states_list
      description: "\n        Returns a unique, sorted list of runtime states for\
        \ all resources accessible to the current user.\n        The runtime state\
        \ is a backend-specific state of a resource (e.g., 'ACTIVE', 'SHUTOFF' for\
        \ a VM).\n        This endpoint is useful for building dynamic filters in\
        \ a user interface.\n        The list can be optionally filtered by project\
        \ or category.\n        "
      summary: List available runtime states for resources
      parameters:
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Filter runtime states by resources belonging to a specific category.
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Filter runtime states by resources within a specific project.
      tags:
      - marketplace-runtime-states
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RuntimeStates'
              examples:
                ExampleResponseForRuntimeStates:
                  value:
                  - - value: ACTIVE
                      label: active
                    - value: BUILDING
                      label: building
                    - value: SHUTOFF
                      label: shutoff
                  summary: A list of unique runtime states found for the user's resources.
                  description: The response is a list of objects, each containing
                    a `value` (the raw state from the backend) and a `label` (a lowercase
                    version for display).
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-screenshots/:
    get:
      operationId: marketplace_screenshots_list
      parameters:
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - created
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-screenshots
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Screenshot'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_screenshots_create
      tags:
      - marketplace-screenshots
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScreenshotRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ScreenshotRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ScreenshotRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Screenshot'
          description: ''
    head:
      operationId: marketplace_screenshots_count
      parameters:
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - created
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
      - in: query
        name: offering_slug
        schema:
          type: array
          items:
            type: string
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_offering_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-screenshots
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-screenshots/{uuid}/:
    get:
      operationId: marketplace_screenshots_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-screenshots
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Screenshot'
          description: ''
    put:
      operationId: marketplace_screenshots_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-screenshots
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScreenshotRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ScreenshotRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ScreenshotRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Screenshot'
          description: ''
    patch:
      operationId: marketplace_screenshots_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-screenshots
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedScreenshotRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Screenshot'
          description: ''
    delete:
      operationId: marketplace_screenshots_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-screenshots
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: OFFERING.DELETE_SCREENSHOT
        scopes:
        - offering.customer
  /api/marketplace-script-async-dry-run/:
    get:
      operationId: marketplace_script_async_dry_run_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-script-async-dry-run
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DryRun'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_script_async_dry_run_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-script-async-dry-run
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-script-async-dry-run/{uuid}/:
    get:
      operationId: marketplace_script_async_dry_run_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-script-async-dry-run
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DryRun'
          description: ''
  /api/marketplace-script-dry-run/{uuid}/async_run/:
    post:
      operationId: marketplace_script_dry_run_async_run
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-script-dry-run
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DryRunRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicOfferingDetails'
          description: ''
      x-permissions:
      - permission: OFFERING.DRY_RUN_SCRIPT
        scopes:
        - '*'
        - customer
  /api/marketplace-script-dry-run/{uuid}/run/:
    post:
      operationId: marketplace_script_dry_run_run
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-script-dry-run
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DryRunRequest'
            examples:
              Dry-runOrderExample:
                value:
                  plan: http://127.0.0.1:8000/api/marketplace-plans/ed80e1047eeb4c9eb67f6e61b98977bc/
                  type: Update
                summary: Create
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicOfferingDetails'
          description: ''
      x-permissions:
      - permission: OFFERING.DRY_RUN_SCRIPT
        scopes:
        - '*'
        - customer
  /api/marketplace-script-sync-resource/:
    post:
      operationId: marketplace_script_sync_resource
      description: Pull a marketplace script resource.
      summary: |-
        This view allows a user to trigger a pull operation for a marketplace script resource.
                The user must be a service consumer and have access to the resource.
                The pull operation is performed asynchronously using Celery.
      tags:
      - marketplace-script-sync-resource
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PullMarketplaceScriptResourceRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          description: No response body
        '404':
          description: No response body
  /api/marketplace-sections/:
    get:
      operationId: marketplace_sections_list
      description: Returns a paginated list of all sections. Sections are used to
        group attributes within a category.
      summary: List sections
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-sections
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Section'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_sections_create
      description: Creates a new section within a category. Requires staff permissions.
      summary: Create a section
      tags:
      - marketplace-sections
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SectionRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Section'
          description: ''
    head:
      operationId: marketplace_sections_count
      description: Get number of items in the collection matching the request parameters.
      summary: List sections
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-sections
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-sections/{key}/:
    get:
      operationId: marketplace_sections_retrieve
      description: Returns the details of a specific section, identified by its key.
      summary: Retrieve a section
      parameters:
      - in: path
        name: key
        schema:
          type: string
        description: A unique value identifying this section.
        required: true
      tags:
      - marketplace-sections
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Section'
          description: ''
    put:
      operationId: marketplace_sections_update
      description: Updates an existing section. Requires staff permissions.
      summary: Update a section
      parameters:
      - in: path
        name: key
        schema:
          type: string
        description: A unique value identifying this section.
        required: true
      tags:
      - marketplace-sections
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SectionRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Section'
          description: ''
    patch:
      operationId: marketplace_sections_partial_update
      description: Partially updates an existing section. Requires staff permissions.
      summary: Partially update a section
      parameters:
      - in: path
        name: key
        schema:
          type: string
        description: A unique value identifying this section.
        required: true
      tags:
      - marketplace-sections
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSectionRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Section'
          description: ''
    delete:
      operationId: marketplace_sections_destroy
      description: Deletes a section. Requires staff permissions.
      summary: Delete a section
      parameters:
      - in: path
        name: key
        schema:
          type: string
        description: A unique value identifying this section.
        required: true
      tags:
      - marketplace-sections
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-service-providers/:
    get:
      operationId: marketplace_service_providers_list
      description: Returns a paginated list of service providers.
      summary: List service providers
      parameters:
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_keyword
        schema:
          type: string
        description: Customer keyword (name, abbreviation or native name)
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - customer
            - customer_abbreviation
            - customer_country
            - customer_image
            - customer_name
            - customer_native_name
            - customer_slug
            - customer_uuid
            - description
            - enable_notifications
            - image
            - offering_count
            - organization_groups
            - url
            - uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -customer_name
            - customer_name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceProvider'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_service_providers_create
      description: Creates a new service provider profile for a customer.
      summary: Create a service provider
      tags:
      - marketplace-service-providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceProviderRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ServiceProviderRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ServiceProviderRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceProvider'
          description: ''
    head:
      operationId: marketplace_service_providers_count
      description: Get number of items in the collection matching the request parameters.
      summary: List service providers
      parameters:
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_keyword
        schema:
          type: string
        description: Customer keyword (name, abbreviation or native name)
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -customer_name
            - customer_name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-service-providers/{service_provider_uuid}/compliance/checklists_summary/:
    get:
      operationId: service_provider_checklists_summary
      description: Returns a summary of all compliance checklists used by this service
        provider with usage counts.
      summary: Get summary of compliance checklists
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceProviderChecklistSummary'
                description: ''
          description: ''
  /api/marketplace-service-providers/{service_provider_uuid}/compliance/compliance_overview/:
    get:
      operationId: service_provider_compliance_overview
      description: Returns compliance overview statistics for all offerings managed
        by this service provider.
      summary: Get compliance overview for a service provider
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceProviderComplianceOverview'
                description: ''
          description: ''
  /api/marketplace-service-providers/{service_provider_uuid}/compliance/offering_users/:
    get:
      operationId: service_provider_offering_users_compliance
      description: Returns a list of offering users with their compliance status for
        this service provider. Can be filtered by offering and compliance status.
      summary: List offering users' compliance status
      parameters:
      - in: query
        name: compliance_status
        schema:
          type: string
        description: 'Filter by compliance status: completed, pending, no_checklist.'
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Filter by offering UUID.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceProviderOfferingUserCompliance'
                description: ''
          description: ''
  /api/marketplace-service-providers/{service_provider_uuid}/course_accounts/:
    get:
      operationId: marketplace_service_providers_course_accounts_list
      description: "Returns a paginated list of course project accounts that have\
        \ access to resources managed by the provider.\n\n        This includes:\n\
        \        - Projects with active resources of the service provider.\n     \
        \   - Course accounts with non-blank users.\n        "
      summary: List course project accounts for a service provider
      parameters:
      - in: query
        name: email
        schema:
          type: string
        description: Email contains
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -email
            - -modified
            - -project_end_date
            - -project_name
            - -project_start_date
            - -state
            - -username
            - created
            - email
            - modified
            - project_end_date
            - project_name
            - project_start_date
            - state
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_end_date_after
        schema:
          type: string
          format: date
        description: Project end date range
      - in: query
        name: project_end_date_before
        schema:
          type: string
          format: date
        description: Project end date range
      - in: query
        name: project_start_date_after
        schema:
          type: string
          format: date
        description: Project start date range
      - in: query
        name: project_start_date_before
        schema:
          type: string
          format: date
        description: Project start date range
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: path
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Closed
            - Erred
            - OK
        description: |+
          Course account state

        explode: true
        style: form
      - in: query
        name: username
        schema:
          type: string
        description: Username
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CourseAccount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-service-providers/{service_provider_uuid}/customer_projects/:
    get:
      operationId: marketplace_service_providers_customer_projects_list
      description: Returns a paginated list of projects belonging to a specific customer
        that have consumed resources from the specified service provider.
      summary: List customer projects of a service provider
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: can_admin
        schema:
          type: boolean
        description: Return a list of projects where current user is admin.
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Return a list of projects where current user is manager or a
          customer owner.
      - in: query
        name: conceal_finished_projects
        schema:
          type: boolean
        description: Conceal finished projects
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - billing_price_estimate
            - description
            - end_date
            - name
            - resources_count
            - users_count
            - uuid
      - in: query
        name: is_removed
        schema:
          type: boolean
        description: Is removed
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -customer_abbreviation
            - -customer_name
            - -customer_native_name
            - -end_date
            - -estimated_cost
            - -name
            - -start_date
            - created
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - end_date
            - estimated_cost
            - name
            - start_date
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_customer_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the customer to filter projects by.
        required: true
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, slug, UUID, backend ID or resource effective
          ID
      - in: path
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: slug
        schema:
          type: string
        description: Slug
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MarketplaceProviderCustomerProject'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-service-providers/{service_provider_uuid}/customers/:
    get:
      operationId: marketplace_service_providers_customers_list
      description: Returns a paginated list of customers who have consumed resources
        from the specified service provider.
      summary: List customers of a service provider
      parameters:
      - in: query
        name: abbreviation
        schema:
          type: string
        description: Abbreviation
      - in: query
        name: agreement_number
        schema:
          type: string
      - in: query
        name: archived
        schema:
          type: boolean
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: contact_details
        schema:
          type: string
        description: Contact details
      - in: query
        name: current_user_has_project_create_permission
        schema:
          type: boolean
        description: Return a list of customers where current user has project create
          permission.
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - abbreviation
            - billing_price_estimate
            - email
            - name
            - payment_profiles
            - phone_number
            - projects
            - projects_count
            - slug
            - users
            - users_count
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: organization_group_name
        schema:
          type: string
        description: Organization group name
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - in: query
        name: owned_by_current_user
        schema:
          type: boolean
        description: Return a list of customers where current user is owner.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, native name, abbreviation, domain, UUID, registration
          code or agreement number
      - in: query
        name: registration_code
        schema:
          type: string
      - in: path
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MarketplaceProviderCustomer'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-service-providers/{service_provider_uuid}/keys/:
    get:
      operationId: marketplace_service_providers_keys_list
      description: Returns a paginated list of SSH public keys for all users who have
        consumed resources from the specified service provider.
      summary: List SSH keys of a service provider
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - fingerprint_md5
            - fingerprint_sha256
            - fingerprint_sha512
            - is_shared
            - name
            - public_key
            - type
            - url
            - user_uuid
            - uuid
      - in: query
        name: fingerprint_md5
        schema:
          type: string
      - in: query
        name: fingerprint_sha256
        schema:
          type: string
      - in: query
        name: fingerprint_sha512
        schema:
          type: string
      - in: query
        name: is_shared
        schema:
          type: boolean
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SshKey'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-service-providers/{service_provider_uuid}/offerings/:
    get:
      operationId: marketplace_service_providers_offerings_list
      description: Returns a paginated list of all billable, shared offerings provided
        by the specified service provider.
      summary: List offerings of a service provider
      parameters:
      - in: query
        name: accessible_via_calls
        schema:
          type: boolean
        description: Accessible via calls
      - in: query
        name: allowed_customer_uuid
        schema:
          type: string
          format: uuid
        description: Allowed customer UUID
      - in: query
        name: attributes
        schema:
          type: string
        description: Offering attributes (JSON)
      - in: query
        name: billable
        schema:
          type: boolean
        description: Billable
      - in: query
        name: can_create_offering_user
        schema:
          type: boolean
      - in: query
        name: category_group_uuid
        schema:
          type: string
          format: uuid
        description: Category group UUID
      - in: query
        name: category_uuid
        schema:
          type: string
          format: uuid
        description: Category UUID
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: string
        description: Customer URL
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description contains
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - billing_price_estimate
            - category_title
            - components
            - customer_uuid
            - name
            - options
            - plans
            - resource_options
            - resources_count
            - secret_options
            - slug
            - state
            - thumbnail
            - type
            - uuid
      - in: query
        name: has_active_terms_of_service
        schema:
          type: boolean
        description: Has Active Terms of Service
      - in: query
        name: has_terms_of_service
        schema:
          type: boolean
        description: Has Terms of Service
      - in: query
        name: keyword
        schema:
          type: string
        description: Keyword
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -state
            - -total_cost
            - -total_cost_estimated
            - -total_customers
            - -type
            - created
            - name
            - state
            - total_cost
            - total_cost_estimated
            - total_customers
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: Parent offering UUID
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by offering name, slug or description
      - in: query
        name: resource_customer_uuid
        schema:
          type: string
          format: uuid
        description: Resource customer UUID
      - in: query
        name: resource_project_uuid
        schema:
          type: string
          format: uuid
        description: Resource project UUID
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: service_manager_uuid
        schema:
          type: string
          format: uuid
        description: Service manager UUID
      - in: path
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: shared
        schema:
          type: boolean
        description: Shared
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Archived
            - Draft
            - Paused
            - Unavailable
        description: |+
          Offering state

        explode: true
        style: form
      - in: query
        name: tag
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Tag UUID (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_name
        schema:
          type: array
          items:
            type: string
        description: Tag name (OR logic)
        explode: true
        style: form
      - in: query
        name: tag_names_and
        schema:
          type: string
        description: Tag names with AND logic (comma-separated)
      - in: query
        name: tags_and
        schema:
          type: string
        description: Tag UUIDs with AND logic (comma-separated)
      - in: query
        name: type
        schema:
          type: array
          items:
            type: string
        description: Offering type
        explode: true
        style: form
      - in: query
        name: user_has_consent
        schema:
          type: boolean
        description: User Has Consent
      - in: query
        name: user_has_offering_user
        schema:
          type: boolean
        description: User Has Offering User
      - in: query
        name: uuid_list
        schema:
          type: string
        description: Comma-separated offering UUIDs
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProviderOffering'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-service-providers/{service_provider_uuid}/project_permissions/:
    get:
      operationId: marketplace_service_providers_project_permissions_list
      description: Returns a paginated list of project permissions for all projects
        that have consumed resources from the specified service provider.
      summary: List project permissions of a service provider
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: expiration_time
        schema:
          type: string
          format: date-time
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - created_by
            - created_by_full_name
            - created_by_username
            - customer_name
            - customer_uuid
            - expiration_time
            - project
            - project_created
            - project_end_date
            - project_name
            - project_uuid
            - role
            - role_name
            - user
            - user_email
            - user_full_name
            - user_native_name
            - user_username
            - user_uuid
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name contains
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: native_name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -email
            - -expiration_time
            - -full_name
            - -native_name
            - -role
            - -username
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role_name
        schema:
          type: string
        description: Role name contains
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
        description: Role UUID
      - in: query
        name: scope_name
        schema:
          type: string
        description: Scope name
      - in: query
        name: scope_type
        schema:
          type: string
        description: Scope type
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: path
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: user
        schema:
          type: string
          format: uuid
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug contains
      - in: query
        name: user_url
        schema:
          type: string
      - in: query
        name: username
        schema:
          type: string
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectPermissionLog'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-service-providers/{service_provider_uuid}/project_service_accounts/:
    get:
      operationId: marketplace_service_providers_project_service_accounts_list
      description: "Returns a paginated list of project service accounts that have\
        \ access to resources managed by the provider.\n\n        This includes:\n\
        \        - Projects with active resources of the service provider.\n     \
        \   - Service accounts with non-blank usernames.\n        "
      summary: List project service accounts for a service provider
      parameters:
      - in: query
        name: email
        schema:
          type: string
        description: Email contains
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
        description: Project URL
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: path
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Closed
            - Erred
            - OK
        description: |+
          Service account state

        explode: true
        style: form
      - in: query
        name: username
        schema:
          type: string
        description: Username
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectServiceAccount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-service-providers/{service_provider_uuid}/projects/:
    get:
      operationId: marketplace_service_providers_projects_list
      description: Returns a paginated list of all projects that have consumed resources
        from the specified service provider.
      summary: List projects of a service provider
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: can_admin
        schema:
          type: boolean
        description: Return a list of projects where current user is admin.
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Return a list of projects where current user is manager or a
          customer owner.
      - in: query
        name: conceal_finished_projects
        schema:
          type: boolean
        description: Conceal finished projects
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - billing_price_estimate
            - created
            - customer
            - customer_abbreviation
            - customer_display_billing_info_in_projects
            - customer_name
            - customer_native_name
            - customer_slug
            - customer_uuid
            - description
            - end_date
            - end_date_requested_by
            - grace_period_days
            - image
            - is_industry
            - is_removed
            - kind
            - marketplace_resource_count
            - max_service_accounts
            - name
            - oecd_fos_2007_code
            - oecd_fos_2007_label
            - project_credit
            - resources_count
            - slug
            - staff_notes
            - start_date
            - termination_metadata
            - type
            - type_name
            - type_uuid
            - url
            - user_affiliations
            - user_email_patterns
            - user_identity_sources
            - uuid
      - in: query
        name: is_removed
        schema:
          type: boolean
        description: Is removed
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -customer_abbreviation
            - -customer_name
            - -customer_native_name
            - -end_date
            - -estimated_cost
            - -name
            - -start_date
            - created
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - end_date
            - estimated_cost
            - name
            - start_date
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, slug, UUID, backend ID or resource effective
          ID
      - in: path
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: slug
        schema:
          type: string
        description: Slug
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-service-providers/{service_provider_uuid}/user_customers/:
    get:
      operationId: marketplace_service_providers_user_customers_list
      description: "Returns a paginated list of customers that a specified user has\
        \ access to within the scope of a service provider.\n\n        This includes:\n\
        \        - Customers where the user has direct permissions.\n        - Customers\
        \ with projects where the user has project roles.\n        - Customers related\
        \ to the service provider's resources that the user can access.\n        "
      summary: List customers of a specific user within a service provider's scope
      parameters:
      - in: query
        name: abbreviation
        schema:
          type: string
        description: Abbreviation
      - in: query
        name: agreement_number
        schema:
          type: string
      - in: query
        name: archived
        schema:
          type: boolean
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: contact_details
        schema:
          type: string
        description: Contact details
      - in: query
        name: current_user_has_project_create_permission
        schema:
          type: boolean
        description: Return a list of customers where current user has project create
          permission.
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - abbreviation
            - billing_price_estimate
            - email
            - name
            - payment_profiles
            - phone_number
            - projects
            - projects_count
            - slug
            - users
            - users_count
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: organization_group_name
        schema:
          type: string
        description: Organization group name
      - in: query
        name: organization_group_uuid
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Organization group UUID
        explode: true
        style: form
      - in: query
        name: owned_by_current_user
        schema:
          type: boolean
        description: Return a list of customers where current user is owner.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, native name, abbreviation, domain, UUID, registration
          code or agreement number
      - in: query
        name: registration_code
        schema:
          type: string
      - in: path
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the user to get related customers for.
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MarketplaceProviderCustomer'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-service-providers/{service_provider_uuid}/users/:
    get:
      operationId: marketplace_service_providers_users_list
      description: Returns a paginated list of all users who have consumed resources
        from the specified service provider.
      summary: List users of a service provider
      parameters:
      - in: query
        name: agreement_date
        schema:
          type: string
          format: date-time
        description: Agreement date after
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_joined
        schema:
          type: string
          format: date-time
        description: Date joined after
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: email
        schema:
          type: string
        description: Email
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - affiliations
            - email
            - first_name
            - full_name
            - is_active
            - last_name
            - organization
            - phone_number
            - projects_count
            - registration_method
            - username
            - uuid
      - in: query
        name: full_name
        schema:
          type: string
        description: Full name
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: is_staff
        schema:
          type: boolean
        description: Is staff
      - in: query
        name: is_support
        schema:
          type: boolean
        description: Is support
      - in: query
        name: job_title
        schema:
          type: string
        description: Job title
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Date modified after
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -description
            - -email
            - -full_name
            - -is_active
            - -is_staff
            - -is_support
            - -job_title
            - -native_name
            - -organization
            - -phone_number
            - -registration_method
            - -username
            - description
            - email
            - full_name
            - is_active
            - is_staff
            - is_support
            - job_title
            - native_name
            - organization
            - phone_number
            - registration_method
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: string
        description: Organization
      - in: query
        name: organization_roles
        schema:
          type: string
        description: Organization roles
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: phone_number
        schema:
          type: string
      - in: query
        name: project_roles
        schema:
          type: string
        description: Project roles
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Filter by first name, last name, civil number, username or email
      - in: query
        name: registration_method
        schema:
          type: string
      - in: path
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: user_keyword
        schema:
          type: string
        description: User keyword
      - in: query
        name: username
        schema:
          type: string
        description: Username (exact)
      - in: query
        name: username_list
        schema:
          type: string
        description: Comma-separated usernames
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MarketplaceServiceProviderUser'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-service-providers/{uuid}/:
    get:
      operationId: marketplace_service_providers_retrieve
      description: Returns details of a specific service provider.
      summary: Retrieve a service provider
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - customer
            - customer_abbreviation
            - customer_country
            - customer_image
            - customer_name
            - customer_native_name
            - customer_slug
            - customer_uuid
            - description
            - enable_notifications
            - image
            - offering_count
            - organization_groups
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceProvider'
          description: ''
    put:
      operationId: marketplace_service_providers_update
      description: Updates an existing service provider profile.
      summary: Update a service provider
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceProviderRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ServiceProviderRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ServiceProviderRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceProvider'
          description: ''
    patch:
      operationId: marketplace_service_providers_partial_update
      description: Partially updates an existing service provider profile.
      summary: Partially update a service provider
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedServiceProviderRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedServiceProviderRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedServiceProviderRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceProvider'
          description: ''
    delete:
      operationId: marketplace_service_providers_destroy
      description: Deletes a service provider profile. Only possible if there are
        no active offerings.
      summary: Delete a service provider
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-service-providers/{uuid}/add_user/:
    post:
      operationId: marketplace_service_providers_add_user
      description: Assigns a specific role to a user within the current scope. An
        optional expiration time for the role can be set.
      summary: Grant a role to a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleCreateRequest'
            examples:
              GrantProjectAdminRoleUntilEndOfYear:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2024-12-31'
                summary: Grant project admin role until end of year
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleGrantResponse:
                  value:
                    expiration_time: '2024-12-31T00:00:00Z'
                  summary: Successful role grant response
          description: ''
        '400':
          description: Validation error, for example when trying to add a user to
            a terminated project.
  /api/marketplace-service-providers/{uuid}/api_secret_code/:
    get:
      operationId: service_provider_api_secret_code_retrieve
      description: Returns the API secret code for a service provider. Requires service
        provider owner permission.
      summary: Get service provider API secret code
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceProviderApiSecretCode'
          description: ''
    post:
      operationId: service_provider_api_secret_code_generate
      description: Generates a new API secret code for a service provider, invalidating
        the old one. Requires service provider owner permission.
      summary: Generate new service provider API secret code
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceProviderApiSecretCode'
          description: ''
  /api/marketplace-service-providers/{uuid}/delete_user/:
    post:
      operationId: marketplace_service_providers_delete_user
      description: Removes a specific role from a user within the current scope. This
        effectively revokes their permissions associated with that role.
      summary: Revoke a role from a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleDeleteRequest'
            examples:
              RevokeProjectAdminRoleFromUser:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                summary: Revoke project admin role from user
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: Role revoked successfully.
  /api/marketplace-service-providers/{uuid}/generate_site_agent_config/:
    post:
      operationId: marketplace_service_providers_generate_site_agent_config
      description: Generates a YAML configuration file for waldur-site-agent based
        on selected SLURM offerings. The configuration includes offering details,
        components, backend settings, and optionally SLURM periodic usage policy settings.
        Secrets are shown as placeholders that need to be filled in.
      summary: Generate site agent configuration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SiteAgentConfigGenerationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: string
                format: binary
          description: ''
      x-permissions:
      - permission: SERVICE_PROVIDER.GET_API_SECRET_CODE
        scopes:
        - customer
  /api/marketplace-service-providers/{uuid}/list_users/:
    get:
      operationId: marketplace_service_providers_list_users_list
      description: Retrieves a list of users who have a role within a specific scope
        (e.g., a project or an organization). The list can be filtered by user details
        or role.
      summary: List users and their roles in a scope
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - created_by_full_name
            - created_by_uuid
            - expiration_time
            - role_name
            - role_uuid
            - user_email
            - user_full_name
            - user_image
            - user_username
            - user_uuid
            - uuid
        description: Fields to include in response
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name
      - in: query
        name: native_name
        schema:
          type: string
        description: User native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: Ordering fields
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role
        schema:
          type: string
          format: uuid
        description: Role UUID or name
      - in: query
        name: search_string
        schema:
          type: string
        description: Search string for user
      - in: query
        name: user
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug
      - in: query
        name: user_url
        schema:
          type: string
        description: User URL
      - in: query
        name: username
        schema:
          type: string
        description: User username
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserRoleDetails'
                description: ''
              examples:
                ExampleUserRoleListResponse:
                  value:
                  - - uuid: a7e6b0a29a434d2889273c5240217a26
                      created: '2023-10-26T10:00:00Z'
                      expiration_time: '2024-12-31T23:59:59Z'
                      role_name: PROJECT.ADMIN
                      role_uuid: d8c2d5852d434937985392d24249b6d3
                      user_email: alice@example.com
                      user_full_name: Alice Smith
                      user_username: alice
                      user_uuid: 8f20242b638743b18a485f81ac685e13
                      user_image: null
                      created_by_full_name: Bob Johnson
                      created_by_uuid: b4e4c2f1a6f24a8d8e4c2f1a6f24a8d8
                  summary: Example user role list response
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-service-providers/{uuid}/revenue/:
    get:
      operationId: marketplace_service_providers_revenue_list
      description: Returns monthly revenue data for the last year for the service
        provider.
      summary: Get service provider revenue
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceProviderRevenues'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
      x-permissions:
      - permission: SERVICE_PROVIDER.GET_REVENUE
        scopes:
        - customer
  /api/marketplace-service-providers/{uuid}/robot_account_customers/:
    get:
      operationId: marketplace_service_providers_robot_account_customers_list
      description: Returns a paginated list of customers who have robot accounts for
        resources managed by this service provider.
      summary: List customers with robot accounts
      parameters:
      - in: query
        name: customer_name
        schema:
          type: string
        description: Filter by customer name (case-insensitive partial match).
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NameUUID'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
      x-permissions:
      - permission: SERVICE_PROVIDER.GET_ROBOT_ACCOUNT_CUSTOMERS
        scopes:
        - customer
  /api/marketplace-service-providers/{uuid}/robot_account_projects/:
    get:
      operationId: marketplace_service_providers_robot_account_projects_list
      description: Returns a paginated list of projects which have robot accounts
        for resources managed by this service provider.
      summary: List projects with robot accounts
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_name
        schema:
          type: string
        description: Filter by project name (case-insensitive partial match).
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NameUUID'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
      x-permissions:
      - permission: SERVICE_PROVIDER.GET_ROBOT_ACCOUNT_PROJECTS
        scopes:
        - customer
  /api/marketplace-service-providers/{uuid}/set_offerings_username/:
    post:
      operationId: marketplace_service_providers_set_offerings_username
      description: Sets or updates the offering-specific username for a user across
        all offerings managed by the service provider that the user has access to.
      summary: Set offering username for a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetOfferingsUsernameRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          description: No response body
      x-permissions:
      - permission: SERVICE_PROVIDER.SET_OFFERINGS_USERNAME
        scopes:
        - customer
  /api/marketplace-service-providers/{uuid}/stat/:
    get:
      operationId: marketplace_service_providers_stat_retrieve
      description: Returns various statistics for the service provider, such as number
        of active campaigns, customers, and resources.
      summary: Get service provider statistics
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceProviderStatistics'
          description: ''
      x-permissions:
      - permission: SERVICE_PROVIDER.GET_STATISTICS
        scopes:
        - customer
  /api/marketplace-service-providers/{uuid}/update_user/:
    post:
      operationId: marketplace_service_providers_update_user
      description: Updates the expiration time for a user's existing role in the current
        scope. This is useful for extending or shortening the duration of a permission.
        To make a role permanent, set expiration_time to null.
      summary: Update a user's role expiration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-service-providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleUpdateRequest'
            examples:
              ExtendRoleUntilMid-2025:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2025-06-30'
                summary: Extend role until mid-2025
              MakeARolePermanent:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: null
                summary: Make a role permanent
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleUpdateResponse:
                  value:
                    expiration_time: '2025-06-30T00:00:00Z'
                  summary: Successful role update response
          description: ''
  /api/marketplace-site-agent-connection-stats/:
    get:
      operationId: marketplace_site_agent_connection_stats_retrieve
      description: |-
        Returns connection status for all registered agents.

        For each agent identity, provides:
        - Agent metadata (name, version, offering)
        - Services and their states
        - Event subscriptions with RabbitMQ connection status
        - RabbitMQ queues associated with the agent's offering

        The RMQ connection data includes:
        - Whether the agent is currently connected
        - Connection source IP, timestamp, and state
        - Traffic statistics (bytes sent/received)

        Requires support user permissions.
      summary: Get agent connection statistics
      tags:
      - marketplace-site-agent-connection-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentConnectionStatsResponse'
          description: ''
        '503':
          content:
            application/json:
              schema:
                description: RabbitMQ unavailable
          description: ''
  /api/marketplace-site-agent-identities/:
    get:
      operationId: marketplace_site_agent_identities_list
      parameters:
      - in: query
        name: last_restarted
        schema:
          type: string
          format: date-time
        description: Last restarted after
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: orphaned
        schema:
          type: boolean
        description: Has no services
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: version
        schema:
          type: string
      tags:
      - marketplace-site-agent-identities
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AgentIdentity'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_site_agent_identities_create
      tags:
      - marketplace-site-agent-identities
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentIdentityRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentIdentity'
          description: ''
    head:
      operationId: marketplace_site_agent_identities_count
      parameters:
      - in: query
        name: last_restarted
        schema:
          type: string
          format: date-time
        description: Last restarted after
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: orphaned
        schema:
          type: boolean
        description: Has no services
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: version
        schema:
          type: string
      tags:
      - marketplace-site-agent-identities
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-site-agent-identities/{uuid}/:
    get:
      operationId: marketplace_site_agent_identities_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-site-agent-identities
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentIdentity'
          description: ''
    put:
      operationId: marketplace_site_agent_identities_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-site-agent-identities
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentIdentityRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentIdentity'
          description: ''
    delete:
      operationId: marketplace_site_agent_identities_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-site-agent-identities
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: OFFERING.CREATE
        scopes:
        - offering.customer
  /api/marketplace-site-agent-identities/{uuid}/register_event_subscription/:
    post:
      operationId: marketplace_site_agent_identities_register_event_subscription
      description: Register an event subscription for the specified agent identity
        and observable object type. Returns existing subscription if already exists.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-site-agent-identities
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentEventSubscriptionCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscription'
          description: ''
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscription'
          description: ''
      x-permissions:
      - permission: OFFERING.CREATE
        scopes:
        - offering.customer
  /api/marketplace-site-agent-identities/{uuid}/register_service/:
    post:
      operationId: marketplace_site_agent_identities_register_service
      description: Register a new processor or get the existing one for the agent
        service
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-site-agent-identities
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentServiceCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentService'
          description: ''
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentService'
          description: ''
      x-permissions:
      - permission: OFFERING.CREATE
        scopes:
        - offering.customer
  /api/marketplace-site-agent-identities/cleanup_orphaned/:
    post:
      operationId: marketplace_site_agent_identities_cleanup_orphaned
      description: Remove agent identities that have no active services. Staff only.
      tags:
      - marketplace-site-agent-identities
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CleanupRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CleanupResponse'
          description: ''
  /api/marketplace-site-agent-processors/:
    get:
      operationId: marketplace_site_agent_processors_list
      parameters:
      - in: query
        name: backend_type
        schema:
          type: string
      - in: query
        name: backend_version
        schema:
          type: string
      - in: query
        name: last_run
        schema:
          type: string
          format: date-time
        description: Last run after
      - in: query
        name: last_run_before
        schema:
          type: string
          format: date-time
        description: Last run before
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: service_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: stale
        schema:
          type: boolean
        description: Last run more than 1 hour ago
      tags:
      - marketplace-site-agent-processors
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AgentProcessor'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_site_agent_processors_count
      parameters:
      - in: query
        name: backend_type
        schema:
          type: string
      - in: query
        name: backend_version
        schema:
          type: string
      - in: query
        name: last_run
        schema:
          type: string
          format: date-time
        description: Last run after
      - in: query
        name: last_run_before
        schema:
          type: string
          format: date-time
        description: Last run before
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: service_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: stale
        schema:
          type: boolean
        description: Last run more than 1 hour ago
      tags:
      - marketplace-site-agent-processors
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-site-agent-processors/{uuid}/:
    get:
      operationId: marketplace_site_agent_processors_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-site-agent-processors
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentProcessor'
          description: ''
    delete:
      operationId: marketplace_site_agent_processors_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-site-agent-processors
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: OFFERING.CREATE
        scopes:
        - service.identity.offering.customer
  /api/marketplace-site-agent-services/:
    get:
      operationId: marketplace_site_agent_services_list
      parameters:
      - in: query
        name: identity_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: mode
        schema:
          type: string
      - in: query
        name: modified_after
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: modified_before
        schema:
          type: string
          format: date-time
        description: Modified before
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: stale
        schema:
          type: boolean
        description: Inactive for more than 24 hours
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - 1
            - 2
            - 3
        explode: true
        style: form
      tags:
      - marketplace-site-agent-services
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AgentService'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_site_agent_services_count
      parameters:
      - in: query
        name: identity_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: mode
        schema:
          type: string
      - in: query
        name: modified_after
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: modified_before
        schema:
          type: string
          format: date-time
        description: Modified before
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: stale
        schema:
          type: boolean
        description: Inactive for more than 24 hours
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - 1
            - 2
            - 3
        explode: true
        style: form
      tags:
      - marketplace-site-agent-services
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-site-agent-services/{uuid}/:
    get:
      operationId: marketplace_site_agent_services_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-site-agent-services
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentService'
          description: ''
    delete:
      operationId: marketplace_site_agent_services_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-site-agent-services
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: OFFERING.CREATE
        scopes:
        - identity.offering.customer
  /api/marketplace-site-agent-services/{uuid}/register_processor/:
    post:
      operationId: marketplace_site_agent_services_register_processor
      description: Register a new processor for the agent service
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-site-agent-services
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentProcessorCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentProcessor'
          description: ''
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentProcessor'
          description: ''
      x-permissions:
      - permission: OFFERING.CREATE
        scopes:
        - identity.offering.customer
  /api/marketplace-site-agent-services/{uuid}/set_statistics/:
    post:
      operationId: marketplace_site_agent_services_set_statistics
      description: Update statistics for the agent service
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-site-agent-services
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentServiceStatisticsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentService'
          description: ''
      x-permissions:
      - permission: OFFERING.CREATE
        scopes:
        - identity.offering.customer
  /api/marketplace-site-agent-services/cleanup_stale/:
    post:
      operationId: marketplace_site_agent_services_cleanup_stale
      description: Remove agent services that have been inactive for a specified time.
        Staff only.
      tags:
      - marketplace-site-agent-services
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CleanupRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CleanupResponse'
          description: ''
  /api/marketplace-site-agent-stats/:
    get:
      operationId: marketplace_site_agent_stats_retrieve
      description: Get aggregated statistics about agent identities, services, and
        processors. Support users only.
      tags:
      - marketplace-site-agent-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentStatsResponse'
          description: ''
  /api/marketplace-site-agent-task-stats/:
    get:
      operationId: marketplace_site_agent_task_stats_retrieve
      description: Get Celery task status for agent-related tasks. Support users only.
      tags:
      - marketplace-site-agent-task-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentTaskStatsResponse'
          description: ''
  /api/marketplace-slurm-periodic-usage-policies/:
    get:
      operationId: marketplace_slurm_periodic_usage_policies_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-slurm-periodic-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SlurmPeriodicUsagePolicy'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_slurm_periodic_usage_policies_create
      tags:
      - marketplace-slurm-periodic-usage-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SlurmPeriodicUsagePolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmPeriodicUsagePolicy'
          description: ''
    head:
      operationId: marketplace_slurm_periodic_usage_policies_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-slurm-periodic-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-slurm-periodic-usage-policies/{uuid}/:
    get:
      operationId: marketplace_slurm_periodic_usage_policies_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-slurm-periodic-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmPeriodicUsagePolicy'
          description: ''
    put:
      operationId: marketplace_slurm_periodic_usage_policies_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-slurm-periodic-usage-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SlurmPeriodicUsagePolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmPeriodicUsagePolicy'
          description: ''
    patch:
      operationId: marketplace_slurm_periodic_usage_policies_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-slurm-periodic-usage-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSlurmPeriodicUsagePolicyRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmPeriodicUsagePolicy'
          description: ''
    delete:
      operationId: marketplace_slurm_periodic_usage_policies_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-slurm-periodic-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-slurm-periodic-usage-policies/{uuid}/command-history/:
    get:
      operationId: marketplace_slurm_periodic_usage_policies_command_history_list
      description: List command history for this policy.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-slurm-periodic-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SlurmCommandHistory'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-slurm-periodic-usage-policies/{uuid}/dry-run/:
    post:
      operationId: marketplace_slurm_periodic_usage_policies_dry_run
      description: 'Staff-only. Dry-run evaluation: calculates usage percentages and
        shows what actions would be triggered, without applying any changes.'
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-slurm-periodic-usage-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SlurmPolicyEvaluateRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmPolicyDryRunResponse'
          description: ''
  /api/marketplace-slurm-periodic-usage-policies/{uuid}/evaluate/:
    post:
      operationId: marketplace_slurm_periodic_usage_policies_evaluate
      description: 'Staff-only. Run synchronous policy evaluation: calculates usage,
        applies actions (pause/downscale/notify), and creates evaluation logs.'
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-slurm-periodic-usage-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SlurmPolicyEvaluateRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmPolicyEvaluateResponse'
          description: ''
  /api/marketplace-slurm-periodic-usage-policies/{uuid}/evaluation-logs/:
    get:
      operationId: marketplace_slurm_periodic_usage_policies_evaluation_logs_list
      description: List evaluation logs for this policy.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope
        schema:
          type: string
      - in: query
        name: scope_uuid
        schema:
          type: string
          format: uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-slurm-periodic-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SlurmPolicyEvaluationLog'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/marketplace-slurm-periodic-usage-policies/{uuid}/report-command-result/:
    post:
      operationId: marketplace_slurm_periodic_usage_policies_report_command_result
      description: Report command execution result from site agent.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-slurm-periodic-usage-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SlurmCommandResultRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-slurm-periodic-usage-policies/actions/:
    get:
      operationId: marketplace_slurm_periodic_usage_policies_actions_retrieve
      tags:
      - marketplace-slurm-periodic-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmPeriodicUsagePolicy'
          description: ''
    head:
      operationId: marketplace_slurm_periodic_usage_policies_actions_count
      tags:
      - marketplace-slurm-periodic-usage-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-slurm-periodic-usage-policies/preview_impact/:
    post:
      operationId: marketplace_slurm_periodic_usage_policies_preview_impact
      description: Preview policy impact without saving. Returns threshold calculations,
        carryover projections, and QoS trigger points.
      tags:
      - marketplace-slurm-periodic-usage-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SlurmPolicyPreviewRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmPolicyPreviewResponse'
          description: ''
  /api/marketplace-software-catalogs/:
    get:
      operationId: marketplace_software_catalogs_list
      description: Returns a paginated list of available software catalogs, such as
        EESSI or Spack.
      summary: List software catalogs
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -modified
            - -name
            - -version
            - created
            - modified
            - name
            - version
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: version
        schema:
          type: string
      tags:
      - marketplace-software-catalogs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SoftwareCatalog'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_software_catalogs_create
      description: Creates a new software catalog. Requires staff permissions.
      summary: Create a software catalog
      tags:
      - marketplace-software-catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SoftwareCatalogRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareCatalog'
          description: ''
    head:
      operationId: marketplace_software_catalogs_count
      description: Get number of items in the collection matching the request parameters.
      summary: List software catalogs
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -modified
            - -name
            - -version
            - created
            - modified
            - name
            - version
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: version
        schema:
          type: string
      tags:
      - marketplace-software-catalogs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-software-catalogs/{uuid}/:
    get:
      operationId: marketplace_software_catalogs_retrieve
      description: Returns the details of a specific software catalog, including its
        name, version, and the number of packages it contains.
      summary: Retrieve a software catalog
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-catalogs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareCatalog'
          description: ''
    put:
      operationId: marketplace_software_catalogs_update
      description: Updates an existing software catalog. Requires staff permissions.
      summary: Update a software catalog
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SoftwareCatalogRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareCatalog'
          description: ''
    patch:
      operationId: marketplace_software_catalogs_partial_update
      description: Partially updates an existing software catalog. Requires staff
        permissions.
      summary: Partially update a software catalog
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSoftwareCatalogRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareCatalog'
          description: ''
    delete:
      operationId: marketplace_software_catalogs_destroy
      description: Deletes a software catalog. Requires staff permissions.
      summary: Delete a software catalog
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-catalogs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-software-catalogs/{uuid}/update_catalog/:
    post:
      operationId: marketplace_software_catalogs_update_catalog
      description: Triggers a Celery task to update the given catalog from its upstream
        source. Returns 202 Accepted immediately. Staff only.
      summary: Trigger async update for an existing catalog
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SoftwareCatalogRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          description: No response body
  /api/marketplace-software-catalogs/discover/:
    get:
      operationId: marketplace_software_catalogs_discover_list
      description: Queries upstream sources (EESSI, Spack) for available catalog versions
        without creating anything. Returns detected versions and whether an update
        is available compared to existing database records.
      summary: Discover available software catalog versions
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -modified
            - -name
            - -version
            - created
            - modified
            - name
            - version
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: version
        schema:
          type: string
      tags:
      - marketplace-software-catalogs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SoftwareCatalogDiscover'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_software_catalogs_discover_count
      description: Get number of items in the collection matching the request parameters.
      summary: Discover available software catalog versions
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -modified
            - -name
            - -version
            - created
            - modified
            - name
            - version
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: version
        schema:
          type: string
      tags:
      - marketplace-software-catalogs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-software-catalogs/import_catalog/:
    post:
      operationId: marketplace_software_catalogs_import_catalog
      description: Creates a new catalog record and triggers async data loading via
        Celery. Returns 202 Accepted immediately. Staff only.
      summary: Import a new software catalog
      tags:
      - marketplace-software-catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SoftwareCatalogImportRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          description: No response body
  /api/marketplace-software-packages/:
    get:
      operationId: marketplace_software_packages_list
      description: Returns a paginated list of software packages available in the
        catalogs. Can be filtered by catalog, offering, or various package attributes.
      summary: List software packages
      parameters:
      - in: query
        name: catalog_name
        schema:
          type: string
        description: Filter packages by catalog name (case-insensitive partial match)
      - in: query
        name: catalog_uuid
        schema:
          type: string
          format: uuid
        description: Filter packages from a specific software catalog
      - in: query
        name: catalog_version
        schema:
          type: string
        description: Filter packages by catalog version (case-insensitive partial
          match)
      - in: query
        name: cpu_family
        schema:
          type: string
        description: Filter packages available for specific CPU family (e.g., x86_64,
          aarch64)
      - in: query
        name: cpu_microarchitecture
        schema:
          type: string
        description: Filter packages available for specific CPU microarchitecture
          (e.g., generic, zen2, haswell)
      - in: query
        name: description
        schema:
          type: string
        description: Filter packages by description (case-insensitive partial match)
      - in: query
        name: extension_name
        schema:
          type: string
        description: Filter packages having extensions with a specific name
      - in: query
        name: extension_type
        schema:
          type: string
        description: Filter packages having extensions of a specific type (e.g., 'python')
      - in: query
        name: has_version
        schema:
          type: string
        description: Filter packages that have a specific version
      - in: query
        name: name
        schema:
          type: string
        description: Filter packages by name (case-insensitive partial match)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -catalog_name
            - -catalog_version
            - -created
            - -modified
            - -name
            - catalog_name
            - catalog_version
            - created
            - modified
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Filter packages available for a specific offering
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Query packages by name, description, or version (case-insensitive
          partial match)
      tags:
      - marketplace-software-packages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SoftwarePackage'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_software_packages_create
      description: Creates a new software package within a catalog. Requires staff
        permissions.
      summary: Create a software package
      tags:
      - marketplace-software-packages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SoftwarePackageRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwarePackage'
          description: ''
    head:
      operationId: marketplace_software_packages_count
      description: Get number of items in the collection matching the request parameters.
      summary: List software packages
      parameters:
      - in: query
        name: catalog_name
        schema:
          type: string
        description: Filter packages by catalog name (case-insensitive partial match)
      - in: query
        name: catalog_uuid
        schema:
          type: string
          format: uuid
        description: Filter packages from a specific software catalog
      - in: query
        name: catalog_version
        schema:
          type: string
        description: Filter packages by catalog version (case-insensitive partial
          match)
      - in: query
        name: cpu_family
        schema:
          type: string
        description: Filter packages available for specific CPU family (e.g., x86_64,
          aarch64)
      - in: query
        name: cpu_microarchitecture
        schema:
          type: string
        description: Filter packages available for specific CPU microarchitecture
          (e.g., generic, zen2, haswell)
      - in: query
        name: description
        schema:
          type: string
        description: Filter packages by description (case-insensitive partial match)
      - in: query
        name: extension_name
        schema:
          type: string
        description: Filter packages having extensions with a specific name
      - in: query
        name: extension_type
        schema:
          type: string
        description: Filter packages having extensions of a specific type (e.g., 'python')
      - in: query
        name: has_version
        schema:
          type: string
        description: Filter packages that have a specific version
      - in: query
        name: name
        schema:
          type: string
        description: Filter packages by name (case-insensitive partial match)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -catalog_name
            - -catalog_version
            - -created
            - -modified
            - -name
            - catalog_name
            - catalog_version
            - created
            - modified
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Filter packages available for a specific offering
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Query packages by name, description, or version (case-insensitive
          partial match)
      tags:
      - marketplace-software-packages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-software-packages/{uuid}/:
    get:
      operationId: marketplace_software_packages_retrieve
      description: Returns the details of a specific software package, including its
        description, homepage, and available versions.
      summary: Retrieve a software package
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-packages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwarePackage'
          description: ''
    put:
      operationId: marketplace_software_packages_update
      description: Updates an existing software package. Requires staff permissions.
      summary: Update a software package
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-packages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SoftwarePackageRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwarePackage'
          description: ''
    patch:
      operationId: marketplace_software_packages_partial_update
      description: Partially updates an existing software package. Requires staff
        permissions.
      summary: Partially update a software package
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-packages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSoftwarePackageRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwarePackage'
          description: ''
    delete:
      operationId: marketplace_software_packages_destroy
      description: Deletes a software package. Requires staff permissions.
      summary: Delete a software package
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-packages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-software-targets/:
    get:
      operationId: marketplace_software_targets_list
      description: Returns a paginated list of software targets, which represent specific
        builds of a software version for a given CPU architecture.
      summary: List software targets
      parameters:
      - in: query
        name: catalog_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: cpu_family
        schema:
          type: string
      - in: query
        name: cpu_microarchitecture
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -cpu_family
            - -cpu_microarchitecture
            - -created
            - -package_name
            - cpu_family
            - cpu_microarchitecture
            - created
            - package_name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: package_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: path
        schema:
          type: string
      - in: query
        name: version_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-software-targets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SoftwareTarget'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_software_targets_create
      description: Creates a new target for a software version. Requires staff permissions.
      summary: Create a software target
      tags:
      - marketplace-software-targets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareTarget'
          description: ''
    head:
      operationId: marketplace_software_targets_count
      description: Get number of items in the collection matching the request parameters.
      summary: List software targets
      parameters:
      - in: query
        name: catalog_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: cpu_family
        schema:
          type: string
      - in: query
        name: cpu_microarchitecture
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -cpu_family
            - -cpu_microarchitecture
            - -created
            - -package_name
            - cpu_family
            - cpu_microarchitecture
            - created
            - package_name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: package_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: path
        schema:
          type: string
      - in: query
        name: version_uuid
        schema:
          type: string
          format: uuid
      tags:
      - marketplace-software-targets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-software-targets/{uuid}/:
    get:
      operationId: marketplace_software_targets_retrieve
      description: Returns the details of a specific software target, including its
        CPU family, microarchitecture, and path.
      summary: Retrieve a software target
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-targets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareTarget'
          description: ''
    put:
      operationId: marketplace_software_targets_update
      description: Updates an existing software target. Requires staff permissions.
      summary: Update a software target
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-targets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareTarget'
          description: ''
    patch:
      operationId: marketplace_software_targets_partial_update
      description: Partially updates an existing software target. Requires staff permissions.
      summary: Partially update a software target
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-targets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareTarget'
          description: ''
    delete:
      operationId: marketplace_software_targets_destroy
      description: Deletes a software target. Requires staff permissions.
      summary: Delete a software target
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-targets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-software-versions/:
    get:
      operationId: marketplace_software_versions_list
      description: Returns a paginated list of software versions. Can be filtered
        by package, catalog, offering, or CPU architecture.
      summary: List software versions
      parameters:
      - in: query
        name: catalog_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: cpu_family
        schema:
          type: string
      - in: query
        name: cpu_microarchitecture
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -package_name
            - -release_date
            - -version
            - created
            - package_name
            - release_date
            - version
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: package_name
        schema:
          type: string
      - in: query
        name: package_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: version
        schema:
          type: string
      tags:
      - marketplace-software-versions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SoftwareVersion'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_software_versions_create
      description: Creates a new version for a software package. Requires staff permissions.
      summary: Create a software version
      tags:
      - marketplace-software-versions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareVersion'
          description: ''
    head:
      operationId: marketplace_software_versions_count
      description: Get number of items in the collection matching the request parameters.
      summary: List software versions
      parameters:
      - in: query
        name: catalog_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: cpu_family
        schema:
          type: string
      - in: query
        name: cpu_microarchitecture
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -package_name
            - -release_date
            - -version
            - created
            - package_name
            - release_date
            - version
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: package_name
        schema:
          type: string
      - in: query
        name: package_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: version
        schema:
          type: string
      tags:
      - marketplace-software-versions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-software-versions/{uuid}/:
    get:
      operationId: marketplace_software_versions_retrieve
      description: Returns the details of a specific software version, including its
        release date and target count.
      summary: Retrieve a software version
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-versions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareVersion'
          description: ''
    put:
      operationId: marketplace_software_versions_update
      description: Updates an existing software version. Requires staff permissions.
      summary: Update a software version
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-versions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareVersion'
          description: ''
    patch:
      operationId: marketplace_software_versions_partial_update
      description: Partially updates an existing software version. Requires staff
        permissions.
      summary: Partially update a software version
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-versions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SoftwareVersion'
          description: ''
    delete:
      operationId: marketplace_software_versions_destroy
      description: Deletes a software version. Requires staff permissions.
      summary: Delete a software version
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-software-versions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-stats/aggregated_usage_trends/:
    get:
      operationId: marketplace_stats_aggregated_usage_trends_list
      description: Return aggregated usage trends per month.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AggregatedUsageTrend'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_aggregated_usage_trends_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/component_usages/:
    get:
      operationId: marketplace_stats_component_usages_list
      description: Return component usages for current month.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ComponentUsagesStats'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_component_usages_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/component_usages_per_month/:
    get:
      operationId: marketplace_stats_component_usages_per_month_list
      description: Return component usages per month.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ComponentUsagesPerMonthStats'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_component_usages_per_month_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/component_usages_per_project/:
    get:
      operationId: marketplace_stats_component_usages_per_project_list
      description: Return component usages per project.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ComponentUsagesPerProject'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_component_usages_per_project_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/count_active_resources_grouped_by_offering/:
    get:
      operationId: marketplace_stats_count_active_resources_grouped_by_offering_list
      description: Count active resources grouped by offering.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingStats'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_count_active_resources_grouped_by_offering_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/count_active_resources_grouped_by_offering_country/:
    get:
      operationId: marketplace_stats_count_active_resources_grouped_by_offering_country_list
      description: Count active resources grouped by offering country.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingCountryStats'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_count_active_resources_grouped_by_offering_country_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/count_active_resources_grouped_by_organization_group/:
    get:
      operationId: marketplace_stats_count_active_resources_grouped_by_organization_group_list
      description: Count active resources grouped by organization group.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CountStats'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_count_active_resources_grouped_by_organization_group_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/count_projects_grouped_by_provider_and_industry_flag/:
    get:
      operationId: marketplace_stats_count_projects_grouped_by_provider_and_industry_flag_list
      description: Count projects grouped by provider and industry flag
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerIndustryFlagStats'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_count_projects_grouped_by_provider_and_industry_flag_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/count_projects_grouped_by_provider_and_oecd/:
    get:
      operationId: marketplace_stats_count_projects_grouped_by_provider_and_oecd_list
      description: Count projects grouped by provider and OECD code
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerOecdCodeStats'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_count_projects_grouped_by_provider_and_oecd_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/count_projects_of_service_providers/:
    get:
      operationId: marketplace_stats_count_projects_of_service_providers_list
      description: Count projects of service providers.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CountProjectsOfServiceProviders'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_count_projects_of_service_providers_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/count_projects_of_service_providers_grouped_by_oecd/:
    get:
      operationId: marketplace_stats_count_projects_of_service_providers_grouped_by_oecd_list
      description: Count projects of service providers grouped by OECD.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CountProjectsOfServiceProvidersGroupedByOecd'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_count_projects_of_service_providers_grouped_by_oecd_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/count_unique_users_connected_with_active_resources_of_service_provider/:
    get:
      operationId: marketplace_stats_count_unique_users_connected_with_active_resources_of_service_provider_list
      description: Count unique users connected with active resources of service provider.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CountUniqueUsersConnectedWithActiveResourcesOfServiceProvider'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_count_unique_users_connected_with_active_resources_of_service_provider_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/count_users_of_service_providers/:
    get:
      operationId: marketplace_stats_count_users_of_service_providers_list
      description: Count users of service providers.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CountUsersOfServiceProviders'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_count_users_of_service_providers_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/customer_member_count/:
    get:
      operationId: marketplace_stats_customer_member_count_list
      description: Return count of customer members.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CustomerMemberCount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_customer_member_count_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/customer_member_summary/:
    get:
      operationId: marketplace_stats_customer_member_summary_retrieve
      description: Return summary statistics for customer members.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerMemberSummary'
          description: ''
    head:
      operationId: marketplace_stats_customer_member_summary_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/offering_costs_summary/:
    get:
      operationId: marketplace_stats_offering_costs_summary_retrieve
      description: Return summary statistics for offering costs.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingCostsSummary'
          description: ''
    head:
      operationId: marketplace_stats_offering_costs_summary_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/offerings_counter_stats/:
    get:
      operationId: marketplace_stats_offerings_counter_stats_list
      description: Retrieve statistics about the number of offerings, grouped by category
        and service provider.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingStatsCounter'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_offerings_counter_stats_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/order_stats/:
    get:
      operationId: marketplace_stats_order_stats_retrieve
      description: Return comprehensive order statistics including daily breakdown,
        state/type aggregations, and summary stats.
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
        description: Filter by customer UUID.
      - in: query
        name: end
        schema:
          type: string
        description: End date in YYYY-MM-DD format. Defaults to today.
      - in: query
        name: provider_uuid
        schema:
          type: string
        description: Filter by service provider UUID.
      - in: query
        name: start
        schema:
          type: string
        description: Start date in YYYY-MM-DD format. Defaults to 30 days ago.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderStatsResponse'
          description: ''
    head:
      operationId: marketplace_stats_order_stats_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
        description: Filter by customer UUID.
      - in: query
        name: end
        schema:
          type: string
        description: End date in YYYY-MM-DD format. Defaults to today.
      - in: query
        name: provider_uuid
        schema:
          type: string
        description: Filter by service provider UUID.
      - in: query
        name: start
        schema:
          type: string
        description: Start date in YYYY-MM-DD format. Defaults to 30 days ago.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/organization_project_count/:
    get:
      operationId: marketplace_stats_organization_project_count_list
      description: Return project count per organization.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MarketplaceCustomerStats'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_organization_project_count_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/organization_resource_count/:
    get:
      operationId: marketplace_stats_organization_resource_count_list
      description: Return resource count per organization.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MarketplaceCustomerStats'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_organization_resource_count_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/project_classification_summary/:
    get:
      operationId: marketplace_stats_project_classification_summary_retrieve
      description: Return summary statistics for project classification.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectClassificationSummary'
          description: ''
    head:
      operationId: marketplace_stats_project_classification_summary_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/projects_limits_grouped_by_industry_flag/:
    get:
      operationId: marketplace_stats_projects_limits_grouped_by_industry_flag_retrieve
      description: Group project limits by industry flag.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectsLimitsGroupedByIndustryFlag'
          description: ''
    head:
      operationId: marketplace_stats_projects_limits_grouped_by_industry_flag_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/projects_limits_grouped_by_oecd/:
    get:
      operationId: marketplace_stats_projects_limits_grouped_by_oecd_retrieve
      description: Group project limits by OECD code.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectsLimitsGroupedByOecd'
          description: ''
    head:
      operationId: marketplace_stats_projects_limits_grouped_by_oecd_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/projects_usages_grouped_by_industry_flag/:
    get:
      operationId: marketplace_stats_projects_usages_grouped_by_industry_flag_retrieve
      description: Group project usages by industry flag.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectsUsagesGroupedByIndustryFlag'
          description: ''
    head:
      operationId: marketplace_stats_projects_usages_grouped_by_industry_flag_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/projects_usages_grouped_by_oecd/:
    get:
      operationId: marketplace_stats_projects_usages_grouped_by_oecd_retrieve
      description: Group project usages by OECD code.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectsUsagesGroupedByOecd'
          description: ''
    head:
      operationId: marketplace_stats_projects_usages_grouped_by_oecd_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/provider_customers/:
    get:
      operationId: marketplace_stats_provider_customers_retrieve
      description: Return customer statistics for a service provider.
      parameters:
      - in: query
        name: provider_uuid
        schema:
          type: string
        description: Service provider UUID.
        required: true
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderCustomerStats'
          description: ''
    head:
      operationId: marketplace_stats_provider_customers_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: provider_uuid
        schema:
          type: string
        description: Service provider UUID.
        required: true
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/provider_offerings/:
    get:
      operationId: marketplace_stats_provider_offerings_retrieve
      description: Return offering performance statistics for a service provider.
      parameters:
      - in: query
        name: provider_uuid
        schema:
          type: string
        description: Service provider UUID.
        required: true
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderOfferingStats'
          description: ''
    head:
      operationId: marketplace_stats_provider_offerings_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: provider_uuid
        schema:
          type: string
        description: Service provider UUID.
        required: true
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/provider_resources/:
    get:
      operationId: marketplace_stats_provider_resources_retrieve
      description: Return resource statistics for a service provider.
      parameters:
      - in: query
        name: provider_uuid
        schema:
          type: string
        description: Service provider UUID.
        required: true
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderResourceStats'
          description: ''
    head:
      operationId: marketplace_stats_provider_resources_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: provider_uuid
        schema:
          type: string
        description: Service provider UUID.
        required: true
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/resource_provisioning_stats/:
    get:
      operationId: marketplace_stats_resource_provisioning_stats_list
      description: Get resource provisioning statistics.
      parameters:
      - in: query
        name: last_minutes
        schema:
          type: integer
        description: Filter by last N minutes. Default is 60.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResourceProvisioningStats'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_resource_provisioning_stats_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: last_minutes
        schema:
          type: integer
        description: Filter by last N minutes. Default is 60.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/resource_usage_by_creator_affiliation/:
    get:
      operationId: marketplace_stats_resource_usage_by_creator_affiliation_list
      description: Return resource usage grouped by creator's affiliation.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResourceUsageByAffiliation'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_resource_usage_by_creator_affiliation_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/resource_usage_by_customer/:
    get:
      operationId: marketplace_stats_resource_usage_by_customer_list
      description: Return resource usage statistics grouped by customer.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResourceUsageByCustomer'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_resource_usage_by_customer_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/resource_usage_by_organization_type/:
    get:
      operationId: marketplace_stats_resource_usage_by_organization_type_list
      description: Return component usages grouped by project members' organization
        type.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResourceUsageByOrgType'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_resource_usage_by_organization_type_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/resources_geography_summary/:
    get:
      operationId: marketplace_stats_resources_geography_summary_retrieve
      description: Return summary statistics for resource geographic distribution.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourcesGeographySummary'
          description: ''
    head:
      operationId: marketplace_stats_resources_geography_summary_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/resources_limits/:
    get:
      operationId: marketplace_stats_resources_limits_list
      description: Return resources limits per offering.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResourcesLimits'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_resources_limits_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/resources_missing_usage/:
    get:
      operationId: marketplace_stats_resources_missing_usage_list
      description: Return usage-based resources with no usage reported in the specified
        billing period.
      parameters:
      - in: query
        name: billing_period
        schema:
          type: string
        description: Billing period in YYYY-MM format. Defaults to current month.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: provider_uuid
        schema:
          type: string
        description: Filter by service provider UUID.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResourceMissingUsage'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_resources_missing_usage_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: billing_period
        schema:
          type: string
        description: Billing period in YYYY-MM format. Defaults to current month.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: provider_uuid
        schema:
          type: string
        description: Filter by service provider UUID.
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/total_cost_of_active_resources_per_offering/:
    get:
      operationId: marketplace_stats_total_cost_of_active_resources_per_offering_list
      description: Total cost of active resources per offering.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingCost'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_total_cost_of_active_resources_per_offering_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/user_affiliation_count/:
    get:
      operationId: marketplace_stats_user_affiliation_count_list
      description: Return user count grouped by affiliation.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserAffiliationCount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_user_affiliation_count_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/user_auth_method_count/:
    get:
      operationId: marketplace_stats_user_auth_method_count_list
      description: Return user count grouped by authentication method.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserAuthMethodCount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_user_auth_method_count_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/user_identity_source_count/:
    get:
      operationId: marketplace_stats_user_identity_source_count_list
      description: Return user count grouped by identity source.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserIdentitySourceCount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_user_identity_source_count_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/user_job_title_count/:
    get:
      operationId: marketplace_stats_user_job_title_count_list
      description: Return user count grouped by job title.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserJobTitleCount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_user_job_title_count_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/user_organization_count/:
    get:
      operationId: marketplace_stats_user_organization_count_list
      description: Return user count grouped by organization.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserOrganizationCount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_user_organization_count_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-stats/user_organization_type_count/:
    get:
      operationId: marketplace_stats_user_organization_type_count_list
      description: Return user count grouped by organization type (SCHAC URN).
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserOrganizationTypeCount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: marketplace_stats_user_organization_type_count_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-tags/:
    get:
      operationId: marketplace_tags_list
      parameters:
      - in: query
        name: created_by
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-tags
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Tag'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_tags_create
      tags:
      - marketplace-tags
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TagRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tag'
          description: ''
    head:
      operationId: marketplace_tags_count
      parameters:
      - in: query
        name: created_by
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - marketplace-tags
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/marketplace-tags/{uuid}/:
    get:
      operationId: marketplace_tags_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-tags
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tag'
          description: ''
    put:
      operationId: marketplace_tags_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-tags
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TagRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tag'
          description: ''
    patch:
      operationId: marketplace_tags_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-tags
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedTagRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tag'
          description: ''
    delete:
      operationId: marketplace_tags_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-tags
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-user-offering-consents/:
    get:
      operationId: marketplace_user_offering_consents_list
      description: Returns a paginated list of Terms of Service consents for the current
        user. Staff and support users can see all consents.
      summary: List user offering consents
      parameters:
      - in: query
        name: has_consent
        schema:
          type: boolean
        description: Has consent
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -agreement_date
            - -created
            - -modified
            - -revocation_date
            - agreement_date
            - created
            - modified
            - revocation_date
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
        description: Offering URL
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: requires_reconsent
        schema:
          type: boolean
        description: Requires reconsent
      - in: query
        name: user
        schema:
          type: string
        description: User URL
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: version
        schema:
          type: string
        description: Version
      tags:
      - marketplace-user-offering-consents
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserOfferingConsent'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: marketplace_user_offering_consents_create
      description: Creates a consent record for the current user and a specific offering.
        This indicates that the user has accepted the active Terms of Service for
        that offering. If a consent already exists (even if revoked), it will be reactivated
        and updated with the current ToS version.
      summary: Grant consent to an offering's Terms of Service
      tags:
      - marketplace-user-offering-consents
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserOfferingConsentCreateRequest'
            examples:
              GrantConsentToAnOffering:
                value:
                  offering: a1b2c3d4-e5f6-7890-1234-567890abcdef
                summary: Grant consent to an offering
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOfferingConsentCreate'
              examples:
                GrantConsentToAnOffering:
                  value:
                    offering: a1b2c3d4-e5f6-7890-1234-567890abcdef
                  summary: Grant consent to an offering
          description: ''
    head:
      operationId: marketplace_user_offering_consents_count
      description: Get number of items in the collection matching the request parameters.
      summary: List user offering consents
      parameters:
      - in: query
        name: has_consent
        schema:
          type: boolean
        description: Has consent
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -agreement_date
            - -created
            - -modified
            - -revocation_date
            - agreement_date
            - created
            - modified
            - revocation_date
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
        description: Offering URL
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: requires_reconsent
        schema:
          type: boolean
        description: Requires reconsent
      - in: query
        name: user
        schema:
          type: string
        description: User URL
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: version
        schema:
          type: string
        description: Version
      tags:
      - marketplace-user-offering-consents
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/marketplace-user-offering-consents/{uuid}/:
    get:
      operationId: marketplace_user_offering_consents_retrieve
      description: Returns the details of a specific consent record.
      summary: Retrieve a user offering consent
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-user-offering-consents
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOfferingConsent'
          description: ''
    put:
      operationId: marketplace_user_offering_consents_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-user-offering-consents
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserOfferingConsentRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOfferingConsent'
          description: ''
    patch:
      operationId: marketplace_user_offering_consents_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-user-offering-consents
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserOfferingConsentRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOfferingConsent'
          description: ''
    delete:
      operationId: marketplace_user_offering_consents_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-user-offering-consents
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/marketplace-user-offering-consents/{uuid}/revoke/:
    post:
      operationId: marketplace_user_offering_consents_revoke
      description: Revokes a user's consent to the Terms of Service for an offering.
        The consent record is marked with a revocation date, and the user may lose
        access to related resources if consent is required.
      summary: Revoke consent to Terms of Service
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - marketplace-user-offering-consents
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOfferingConsent'
          description: ''
  /api/media/{uuid}/:
    get:
      operationId: media_retrieve
      description: Get media file
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^.+$
        required: true
      tags:
      - media
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: string
                format: binary
          description: ''
  /api/metadata/events/:
    get:
      operationId: metadata_events_retrieve
      description: Retrieves metadata for all available event types, grouped by categories.
        This endpoint is publicly accessible and is useful for building UIs for event
        filtering or webhook configuration.
      summary: Get event metadata
      tags:
      - metadata
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventMetadataResponse'
          description: ''
  /api/metadata/features/:
    get:
      operationId: metadata_features_retrieve
      description: Retrieves metadata for all available feature flags, including their
        keys, descriptions, and grouping sections. This endpoint is publicly accessible
        and helps UIs to dynamically render feature-related settings.
      summary: Get feature flag metadata
      tags:
      - metadata
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeatureMetadataResponse'
          description: ''
  /api/metadata/permissions/:
    get:
      operationId: metadata_permissions_retrieve
      description: Retrieves metadata about roles, permissions, and their descriptions.
        This endpoint is publicly accessible and provides data needed for UI components,
        such as role selection dropdowns and permission management interfaces.
      summary: Get permission metadata
      tags:
      - metadata
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionMetadataResponse'
          description: ''
  /api/metadata/settings/:
    get:
      operationId: metadata_settings_retrieve
      description: Retrieves metadata for all settings that can be configured via
        the Constance backend. This includes setting keys, human-readable descriptions,
        default values, and types. This endpoint is publicly accessible.
      summary: Get overridable settings metadata
      tags:
      - metadata
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsMetadataResponse'
          description: ''
  /api/my-assignment-batches/:
    get:
      operationId: my_assignment_batches_list
      description: List all pending assignment batches for the authenticated reviewer.
      tags:
      - my-assignment-batches
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MyAssignmentBatch'
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: my_assignment_batches_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - my-assignment-batches
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/my-assignment-batches/{uuid}/:
    get:
      operationId: my_assignment_batches_retrieve
      description: Get details of a specific assignment batch with items.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        description: UUID of the assignment batch
        required: true
      tags:
      - my-assignment-batches
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MyAssignmentBatchDetail'
          description: ''
  /api/notification-messages/:
    get:
      operationId: notification_messages_list
      parameters:
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: is_overridden
        schema:
          type: boolean
        description: Is overridden
      - in: query
        name: key
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by key or description
      tags:
      - notification-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Notification'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: notification_messages_create
      tags:
      - notification-messages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Notification'
          description: ''
    head:
      operationId: notification_messages_count
      parameters:
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: is_overridden
        schema:
          type: boolean
        description: Is overridden
      - in: query
        name: key
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by key or description
      tags:
      - notification-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/notification-messages-templates/:
    get:
      operationId: notification_messages_templates_list
      parameters:
      - in: query
        name: is_overridden
        schema:
          type: boolean
        description: Is overridden
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: path
        schema:
          type: string
        description: Path
      - in: query
        name: path_exact
        schema:
          type: string
        description: Path (exact)
      tags:
      - notification-messages-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NotificationTemplateDetailSerializers'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: notification_messages_templates_create
      tags:
      - notification-messages-templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationTemplateDetailSerializersRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationTemplateDetailSerializers'
          description: ''
    head:
      operationId: notification_messages_templates_count
      parameters:
      - in: query
        name: is_overridden
        schema:
          type: boolean
        description: Is overridden
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: path
        schema:
          type: string
        description: Path
      - in: query
        name: path_exact
        schema:
          type: string
        description: Path (exact)
      tags:
      - notification-messages-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/notification-messages-templates/{uuid}/:
    get:
      operationId: notification_messages_templates_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - notification-messages-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationTemplateDetailSerializers'
          description: ''
    put:
      operationId: notification_messages_templates_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - notification-messages-templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationTemplateDetailSerializersRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationTemplateDetailSerializers'
          description: ''
    patch:
      operationId: notification_messages_templates_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - notification-messages-templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedNotificationTemplateDetailSerializersRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationTemplateDetailSerializers'
          description: ''
    delete:
      operationId: notification_messages_templates_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - notification-messages-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/notification-messages-templates/{uuid}/override/:
    post:
      operationId: notification_messages_templates_override
      summary: Override notification template content
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - notification-messages-templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationTemplateUpdateSerializersRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/notification-messages/{uuid}/:
    get:
      operationId: notification_messages_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - notification-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Notification'
          description: ''
    put:
      operationId: notification_messages_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - notification-messages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Notification'
          description: ''
    patch:
      operationId: notification_messages_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - notification-messages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedNotificationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Notification'
          description: ''
    delete:
      operationId: notification_messages_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - notification-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/notification-messages/{uuid}/disable/:
    post:
      operationId: notification_messages_disable
      summary: Disable a notification
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - notification-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/notification-messages/{uuid}/enable/:
    post:
      operationId: notification_messages_enable
      summary: Enable a notification
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - notification-messages
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/onboarding-justifications/:
    get:
      operationId: onboarding_justifications_list
      parameters:
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -modified
            - -validated_at
            - created
            - modified
            - validated_at
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by legal name, legal person identifier
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: validation_decision
        schema:
          type: array
          items:
            type: string
            enum:
            - Approved
            - Pending Review
            - Rejected
        description: |+
          Review decision

        explode: true
        style: form
      - in: query
        name: verification_uuid
        schema:
          type: string
          format: uuid
        description: Verification UUID
      tags:
      - onboarding-justifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OnboardingJustification'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: onboarding_justifications_create
      tags:
      - onboarding-justifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingJustificationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingJustification'
          description: ''
    head:
      operationId: onboarding_justifications_count
      parameters:
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -modified
            - -validated_at
            - created
            - modified
            - validated_at
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by legal name, legal person identifier
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: validation_decision
        schema:
          type: array
          items:
            type: string
            enum:
            - Approved
            - Pending Review
            - Rejected
        description: |+
          Review decision

        explode: true
        style: form
      - in: query
        name: verification_uuid
        schema:
          type: string
          format: uuid
        description: Verification UUID
      tags:
      - onboarding-justifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/onboarding-justifications/{uuid}/:
    get:
      operationId: onboarding_justifications_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-justifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingJustification'
          description: ''
    put:
      operationId: onboarding_justifications_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-justifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingJustificationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingJustification'
          description: ''
    patch:
      operationId: onboarding_justifications_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-justifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOnboardingJustificationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingJustification'
          description: ''
    delete:
      operationId: onboarding_justifications_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-justifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/onboarding-justifications/{uuid}/approve/:
    post:
      operationId: onboarding_justifications_approve
      description: Approve justification and mark verification as VERIFIED.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-justifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingJustificationReviewRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingJustification'
          description: ''
  /api/onboarding-justifications/{uuid}/attach_document/:
    post:
      operationId: onboarding_justifications_attach_document
      description: Attach supporting document to justification.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-justifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingJustificationDocumentationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OnboardingJustificationDocumentationRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/OnboardingJustificationDocumentationRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingJustificationDocumentation'
          description: ''
  /api/onboarding-justifications/{uuid}/reject/:
    post:
      operationId: onboarding_justifications_reject
      description: Reject justification and mark verification as FAILED.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-justifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingJustificationReviewRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingJustification'
          description: ''
  /api/onboarding-justifications/create_justification/:
    post:
      operationId: onboarding_justifications_create_justification
      description: Create justification for failed verification.
      tags:
      - onboarding-justifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingJustificationCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingJustification'
          description: ''
  /api/onboarding-question-metadata/:
    get:
      operationId: onboarding_question_metadata_list
      parameters:
      - in: query
        name: checklist_uuid
        schema:
          type: string
          format: uuid
        description: Checklist uuid
      - in: query
        name: intent_field
        schema:
          type: string
      - in: query
        name: maps_to_customer_field
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: question_description
        schema:
          type: string
      - in: query
        name: question_uuid
        schema:
          type: string
          format: uuid
      tags:
      - onboarding-question-metadata
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OnboardingQuestionMetadata'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: onboarding_question_metadata_create
      tags:
      - onboarding-question-metadata
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingQuestionMetadataRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingQuestionMetadata'
          description: ''
    head:
      operationId: onboarding_question_metadata_count
      parameters:
      - in: query
        name: checklist_uuid
        schema:
          type: string
          format: uuid
        description: Checklist uuid
      - in: query
        name: intent_field
        schema:
          type: string
      - in: query
        name: maps_to_customer_field
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: question_description
        schema:
          type: string
      - in: query
        name: question_uuid
        schema:
          type: string
          format: uuid
      tags:
      - onboarding-question-metadata
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/onboarding-question-metadata/{uuid}/:
    get:
      operationId: onboarding_question_metadata_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-question-metadata
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingQuestionMetadata'
          description: ''
    put:
      operationId: onboarding_question_metadata_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-question-metadata
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingQuestionMetadataRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingQuestionMetadata'
          description: ''
    patch:
      operationId: onboarding_question_metadata_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-question-metadata
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOnboardingQuestionMetadataRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingQuestionMetadata'
          description: ''
    delete:
      operationId: onboarding_question_metadata_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-question-metadata
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/onboarding-verifications/:
    get:
      operationId: onboarding_verifications_list
      parameters:
      - in: query
        name: country
        schema:
          type: string
      - in: query
        name: legal_name
        schema:
          type: string
      - in: query
        name: legal_person_identifier
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -expires_at
            - -modified
            - -validated_at
            - created
            - expires_at
            - modified
            - validated_at
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by legal name, legal person identifier
      - in: query
        name: status
        schema:
          type: array
          items:
            type: string
            enum:
            - Escalated for manual validation
            - Expired
            - Failed
            - Pending
            - Verified
        description: |+
          Verification status

        explode: true
        style: form
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: validation_method
        schema:
          type: array
          items:
            type: string
            enum:
            - Austrian Business Register (WirtschaftsCompass)
            - Estonian Business Register (ariregister)
            - Norwegian Business Register (Brreg)
            - Swedish Business Register (Bolagsverket)
        description: |+
          Validation method

        explode: true
        style: form
      tags:
      - onboarding-verifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OnboardingVerification'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: onboarding_verifications_create
      tags:
      - onboarding-verifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingVerificationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingVerification'
          description: ''
    head:
      operationId: onboarding_verifications_count
      parameters:
      - in: query
        name: country
        schema:
          type: string
      - in: query
        name: legal_name
        schema:
          type: string
      - in: query
        name: legal_person_identifier
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -expires_at
            - -modified
            - -validated_at
            - created
            - expires_at
            - modified
            - validated_at
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by legal name, legal person identifier
      - in: query
        name: status
        schema:
          type: array
          items:
            type: string
            enum:
            - Escalated for manual validation
            - Expired
            - Failed
            - Pending
            - Verified
        description: |+
          Verification status

        explode: true
        style: form
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: validation_method
        schema:
          type: array
          items:
            type: string
            enum:
            - Austrian Business Register (WirtschaftsCompass)
            - Estonian Business Register (ariregister)
            - Norwegian Business Register (Brreg)
            - Swedish Business Register (Bolagsverket)
        description: |+
          Validation method

        explode: true
        style: form
      tags:
      - onboarding-verifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/onboarding-verifications/{uuid}/:
    get:
      operationId: onboarding_verifications_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-verifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingVerification'
          description: ''
    put:
      operationId: onboarding_verifications_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-verifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingVerificationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingVerification'
          description: ''
    patch:
      operationId: onboarding_verifications_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-verifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOnboardingVerificationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingVerification'
          description: ''
    delete:
      operationId: onboarding_verifications_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-verifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/onboarding-verifications/{uuid}/checklist/:
    get:
      operationId: onboarding_verifications_checklist_retrieve
      description: Get checklist with questions and existing answers. Supports both
        customer and intent checklists via checklist_type parameter.
      parameters:
      - in: query
        name: checklist_type
        schema:
          enum:
          - customer
          - intent
          type: string
          default: intent
          minLength: 1
        description: Type of checklist to retrieve (customer or intent). Defaults
          to intent.
      - in: query
        name: include_all
        schema:
          type: boolean
          default: false
        description: If true, returns all questions including hidden ones.
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-verifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistResponse'
          description: ''
  /api/onboarding-verifications/{uuid}/completion_status/:
    get:
      operationId: onboarding_verifications_completion_status_retrieve
      description: Get checklist completion status. Supports both customer and intent
        checklists via checklist_type parameter.
      parameters:
      - in: query
        name: checklist_type
        schema:
          enum:
          - customer
          - intent
          type: string
          default: intent
          minLength: 1
        description: Type of checklist to retrieve (customer or intent). Defaults
          to intent.
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-verifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistCompletion'
          description: ''
  /api/onboarding-verifications/{uuid}/create_customer/:
    post:
      operationId: onboarding_verifications_create_customer
      description: Create customer from successful verification.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-verifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
          description: ''
  /api/onboarding-verifications/{uuid}/run_validation/:
    post:
      operationId: onboarding_verifications_run_validation
      description: Run automatic validation using the required fields provided during
        verification creation. Checklist answers (if any) are only used for supplemental
        customer/intent data.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-verifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingRunValidationRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingVerification'
          description: ''
  /api/onboarding-verifications/{uuid}/submit_answers/:
    post:
      operationId: onboarding_verifications_submit_answers
      description: Submit answers to checklist questions. Automatically detects which
        checklist (customer or intent) each question belongs to.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - onboarding-verifications
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AnswerSubmitRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingVerification'
          description: ''
  /api/onboarding-verifications/available_checklists/:
    get:
      operationId: onboarding_verifications_available_checklists_retrieve
      description: Get available onboarding checklists (customer and intent) for preview.
        This endpoint allows users to see checklist questions before creating a verification.
        Supports checklist_type parameter to filter by customer or intent checklists.
        Includes questions with onboarding metadata (field mappings).
      parameters:
      - in: query
        name: checklist_type
        schema:
          enum:
          - customer
          - intent
          - all
          type: string
          default: all
          minLength: 1
        description: Type of checklist to retrieve (customer, intent, or all). Defaults
          to all.
      tags:
      - onboarding-verifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvailableChecklistsResponse'
          description: ''
    head:
      operationId: onboarding_verifications_available_checklists_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: checklist_type
        schema:
          enum:
          - customer
          - intent
          - all
          type: string
          default: all
          minLength: 1
        description: Type of checklist to retrieve (customer, intent, or all). Defaults
          to all.
      tags:
      - onboarding-verifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/onboarding-verifications/checklist-template/:
    get:
      operationId: onboarding_verifications_checklist_template_retrieve
      description: Get checklist template for creating new objects.
      parameters:
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the parent object (e.g., customer UUID for new projects)
        required: true
      tags:
      - onboarding-verifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistTemplate'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Parent object not found
          description: ''
    head:
      operationId: onboarding_verifications_checklist_template_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the parent object (e.g., customer UUID for new projects)
        required: true
      tags:
      - onboarding-verifications
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/onboarding-verifications/start_verification/:
    post:
      operationId: onboarding_verifications_start_verification
      description: Start company validation process by creating a verification record.
        User selects validation_method (e.g., 'ariregister', 'wirtschaftscompass').
        Checklists are used for intent and customer data collection. Then call run_validation
        to perform automatic validation or create manual justification.
      tags:
      - onboarding-verifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingCompanyValidationRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingVerification'
          description: ''
  /api/onboarding/person-identifier-fields/:
    get:
      operationId: onboarding_person_identifier_fields_retrieve
      description: Return person identifier field specification for a specific validation
        method. The validation_method parameter should match one of the available
        methods (e.g., 'ariregister', 'wirtschaftscompass', 'bolagsverket', 'breg').
      parameters:
      - in: query
        name: validation_method
        schema:
          type: string
          enum:
          - ariregister
          - bolagsverket
          - breg
          - wirtschaftscompass
        description: Validation method identifier
        required: true
      tags:
      - onboarding
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonIdentifierFieldsResponse'
          description: ''
  /api/onboarding/supported-countries/:
    get:
      operationId: onboarding_supported_countries_retrieve
      description: Return list of supported countries for validation.
      tags:
      - onboarding
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupportedCountriesResponse'
          description: ''
  /api/openportal-allocation-user-usage/:
    get:
      operationId: openportal_allocation_user_usage_list
      parameters:
      - in: query
        name: allocation
        schema:
          type: string
      - in: query
        name: allocation_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: month
        schema:
          type: integer
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user
        schema:
          type: string
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: year
        schema:
          type: integer
      tags:
      - openportal-allocation-user-usage
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AllocationUserUsage'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openportal_allocation_user_usage_count
      parameters:
      - in: query
        name: allocation
        schema:
          type: string
      - in: query
        name: allocation_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: month
        schema:
          type: integer
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user
        schema:
          type: string
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: year
        schema:
          type: integer
      tags:
      - openportal-allocation-user-usage
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/openportal-allocation-user-usage/{id}/:
    get:
      operationId: openportal_allocation_user_usage_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this allocation user usage.
        required: true
      tags:
      - openportal-allocation-user-usage
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllocationUserUsage'
          description: ''
  /api/openportal-allocations/:
    get:
      operationId: openportal_allocations_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - groupname
            - is_active
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - node_limit
            - node_usage
            - project
            - project_name
            - project_uuid
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openportal-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Allocation'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: openportal_allocations_create
      tags:
      - openportal-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AllocationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Allocation'
          description: ''
    head:
      operationId: openportal_allocations_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openportal-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/openportal-allocations/{uuid}/:
    get:
      operationId: openportal_allocations_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - groupname
            - is_active
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - node_limit
            - node_usage
            - project
            - project_name
            - project_uuid
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Allocation'
          description: ''
    put:
      operationId: openportal_allocations_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AllocationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Allocation'
          description: ''
    patch:
      operationId: openportal_allocations_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedAllocationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Allocation'
          description: ''
    delete:
      operationId: openportal_allocations_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openportal-allocations/{uuid}/pull/:
    post:
      operationId: openportal_allocations_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/openportal-allocations/{uuid}/set_erred/:
    post:
      operationId: openportal_allocations_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/openportal-allocations/{uuid}/set_limits/:
    post:
      operationId: openportal_allocations_set_limits
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AllocationSetLimitsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllocationSetLimits'
          description: ''
  /api/openportal-allocations/{uuid}/set_ok/:
    post:
      operationId: openportal_allocations_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/openportal-allocations/{uuid}/unlink/:
    post:
      operationId: openportal_allocations_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openportal-associations/:
    get:
      operationId: openportal_associations_list
      parameters:
      - in: query
        name: allocation
        schema:
          type: string
      - in: query
        name: allocation_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - openportal-associations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Association'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openportal_associations_count
      parameters:
      - in: query
        name: allocation
        schema:
          type: string
      - in: query
        name: allocation_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - openportal-associations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/openportal-associations/{uuid}/:
    get:
      operationId: openportal_associations_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-associations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Association'
          description: ''
  /api/openportal-managed-projects/:
    get:
      operationId: openportal_managed_projects_list
      description: List all managed projects
      parameters:
      - in: query
        name: identifier
        schema:
          type: string
      - in: query
        name: local_identifier
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
      - in: query
        name: project_template
        schema:
          type: string
      - in: query
        name: project_template_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - approved
            - canceled
            - draft
            - pending
            - rejected
        explode: true
        style: form
      tags:
      - openportal-managed-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ManagedProject'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openportal_managed_projects_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: identifier
        schema:
          type: string
      - in: query
        name: local_identifier
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
      - in: query
        name: project_template
        schema:
          type: string
      - in: query
        name: project_template_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - approved
            - canceled
            - draft
            - pending
            - rejected
        explode: true
        style: form
      tags:
      - openportal-managed-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openportal-managed-projects/{identifier}/{destination}/:
    get:
      operationId: openportal_managed_projects_retrieve_get
      description: Retrieve a managed project
      parameters:
      - in: path
        name: destination
        schema:
          type: string
        description: The destination of the managed project
        required: true
      - in: path
        name: identifier
        schema:
          type: string
        description: The identifier of the managed project
        required: true
      tags:
      - openportal-managed-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagedProject'
          description: ''
    head:
      operationId: openportal_managed_projects_retrieve_head
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: path
        name: destination
        schema:
          type: string
        description: The destination of the managed project
        required: true
      - in: path
        name: identifier
        schema:
          type: string
        description: The identifier of the managed project
        required: true
      tags:
      - openportal-managed-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openportal-managed-projects/{identifier}/{destination}/approve/:
    post:
      operationId: openportal_managed_projects_approve
      description: Approve managed project request
      parameters:
      - in: path
        name: destination
        schema:
          type: string
        description: The destination of the managed project
        required: true
      - in: path
        name: identifier
        schema:
          type: string
        description: The identifier of the managed project
        required: true
      tags:
      - openportal-managed-projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewCommentRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openportal-managed-projects/{identifier}/{destination}/attach/:
    post:
      operationId: openportal_managed_projects_attach
      description: Attach a project to this managed project
      parameters:
      - in: path
        name: destination
        schema:
          type: string
        description: The destination of the managed project
        required: true
      - in: path
        name: identifier
        schema:
          type: string
        description: The identifier of the managed project
        required: true
      tags:
      - openportal-managed-projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectAttachRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openportal-managed-projects/{identifier}/{destination}/delete/:
    delete:
      operationId: openportal_managed_projects_delete_destroy
      description: Delete ManagedProject object
      parameters:
      - in: path
        name: destination
        schema:
          type: string
        description: The destination of the managed project
        required: true
      - in: path
        name: identifier
        schema:
          type: string
        description: The identifier of the managed project
        required: true
      tags:
      - openportal-managed-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openportal-managed-projects/{identifier}/{destination}/detach/:
    post:
      operationId: openportal_managed_projects_detach
      description: Detach the project from this managed project
      parameters:
      - in: path
        name: destination
        schema:
          type: string
        description: The destination of the managed project
        required: true
      - in: path
        name: identifier
        schema:
          type: string
        description: The identifier of the managed project
        required: true
      tags:
      - openportal-managed-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openportal-managed-projects/{identifier}/{destination}/reject/:
    post:
      operationId: openportal_managed_projects_reject
      description: Reject managed project request
      parameters:
      - in: path
        name: destination
        schema:
          type: string
        description: The destination of the managed project
        required: true
      - in: path
        name: identifier
        schema:
          type: string
        description: The identifier of the managed project
        required: true
      tags:
      - openportal-managed-projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewCommentRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openportal-project-template/:
    get:
      operationId: openportal_project_template_list
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: portal
        schema:
          type: string
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
      tags:
      - openportal-project-template
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectTemplate'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: openportal_project_template_create
      description: Create ProjectTemplate object
      tags:
      - openportal-project-template
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectTemplateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectTemplate'
          description: ''
    head:
      operationId: openportal_project_template_count
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: portal
        schema:
          type: string
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
      tags:
      - openportal-project-template
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/openportal-project-template/{uuid}/:
    get:
      operationId: openportal_project_template_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-project-template
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectTemplate'
          description: ''
    put:
      operationId: openportal_project_template_update
      description: Update ProjectTemplate object (full update)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-project-template
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectTemplateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectTemplate'
          description: ''
    patch:
      operationId: openportal_project_template_partial_update
      description: Partially update ProjectTemplate object
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-project-template
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProjectTemplateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectTemplate'
          description: ''
    delete:
      operationId: openportal_project_template_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-project-template
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openportal-project-template/{uuid}/delete/:
    delete:
      operationId: openportal_project_template_delete_destroy
      description: Delete ProjectTemplate object
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-project-template
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openportal-projectinfo/:
    get:
      operationId: openportal_projectinfo_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      tags:
      - openportal-projectinfo
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectInfo'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: openportal_projectinfo_create
      tags:
      - openportal-projectinfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectInfoRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectInfo'
          description: ''
    head:
      operationId: openportal_projectinfo_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      tags:
      - openportal-projectinfo
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/openportal-projectinfo/{project}/:
    get:
      operationId: openportal_projectinfo_retrieve
      parameters:
      - in: path
        name: project
        schema:
          type: integer
        required: true
      tags:
      - openportal-projectinfo
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectInfo'
          description: ''
    put:
      operationId: openportal_projectinfo_update
      parameters:
      - in: path
        name: project
        schema:
          type: integer
        required: true
      tags:
      - openportal-projectinfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectInfoRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectInfo'
          description: ''
    patch:
      operationId: openportal_projectinfo_partial_update
      parameters:
      - in: path
        name: project
        schema:
          type: integer
        required: true
      tags:
      - openportal-projectinfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProjectInfoRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectInfo'
          description: ''
    delete:
      operationId: openportal_projectinfo_destroy
      parameters:
      - in: path
        name: project
        schema:
          type: integer
        required: true
      tags:
      - openportal-projectinfo
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openportal-projectinfo/{project}/set_allowed_destinations/:
    put:
      operationId: openportal_projectinfo_set_allowed_destinations_update
      parameters:
      - in: path
        name: project
        schema:
          type: integer
        required: true
      tags:
      - openportal-projectinfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectInfoRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectInfo'
          description: ''
  /api/openportal-projectinfo/{project}/set_shortname/:
    put:
      operationId: openportal_projectinfo_set_shortname_update
      parameters:
      - in: path
        name: project
        schema:
          type: integer
        required: true
      tags:
      - openportal-projectinfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectInfoRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectInfo'
          description: ''
  /api/openportal-remote-allocations/:
    get:
      operationId: openportal_remote_allocations_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_active
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - node_limit
            - node_usage
            - project
            - project_name
            - project_uuid
            - remote_project_identifier
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openportal-remote-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RemoteAllocation'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: openportal_remote_allocations_create
      tags:
      - openportal-remote-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoteAllocationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteAllocation'
          description: ''
    head:
      operationId: openportal_remote_allocations_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openportal-remote-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/openportal-remote-allocations/{uuid}/:
    get:
      operationId: openportal_remote_allocations_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_active
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - node_limit
            - node_usage
            - project
            - project_name
            - project_uuid
            - remote_project_identifier
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-remote-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteAllocation'
          description: ''
    put:
      operationId: openportal_remote_allocations_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-remote-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoteAllocationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteAllocation'
          description: ''
    patch:
      operationId: openportal_remote_allocations_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-remote-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRemoteAllocationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteAllocation'
          description: ''
    delete:
      operationId: openportal_remote_allocations_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-remote-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openportal-remote-allocations/{uuid}/pull/:
    post:
      operationId: openportal_remote_allocations_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-remote-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/openportal-remote-allocations/{uuid}/set_erred/:
    post:
      operationId: openportal_remote_allocations_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-remote-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/openportal-remote-allocations/{uuid}/set_limits/:
    post:
      operationId: openportal_remote_allocations_set_limits
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-remote-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoteAllocationSetLimitsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteAllocationSetLimits'
          description: ''
  /api/openportal-remote-allocations/{uuid}/set_ok/:
    post:
      operationId: openportal_remote_allocations_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-remote-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/openportal-remote-allocations/{uuid}/unlink/:
    post:
      operationId: openportal_remote_allocations_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-remote-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openportal-remote-associations/:
    get:
      operationId: openportal_remote_associations_list
      parameters:
      - in: query
        name: allocation
        schema:
          type: string
      - in: query
        name: allocation_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - openportal-remote-associations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RemoteAssociation'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openportal_remote_associations_count
      parameters:
      - in: query
        name: allocation
        schema:
          type: string
      - in: query
        name: allocation_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - openportal-remote-associations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/openportal-remote-associations/{uuid}/:
    get:
      operationId: openportal_remote_associations_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-remote-associations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteAssociation'
          description: ''
  /api/openportal-unmanaged-projects/:
    get:
      operationId: openportal_unmanaged_projects_list
      description: Retrieve a list of projects. The list is filtered based on the
        user's permissions. By default, only active projects are shown.
      summary: List projects
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: can_admin
        schema:
          type: boolean
        description: Return a list of projects where current user is admin.
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Return a list of projects where current user is manager or a
          customer owner.
      - in: query
        name: conceal_finished_projects
        schema:
          type: boolean
        description: Conceal finished projects
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - billing_price_estimate
            - created
            - customer
            - customer_abbreviation
            - customer_display_billing_info_in_projects
            - customer_name
            - customer_native_name
            - customer_slug
            - customer_uuid
            - description
            - end_date
            - end_date_requested_by
            - grace_period_days
            - image
            - is_industry
            - is_removed
            - kind
            - marketplace_resource_count
            - max_service_accounts
            - name
            - oecd_fos_2007_code
            - oecd_fos_2007_label
            - project_credit
            - resources_count
            - slug
            - staff_notes
            - start_date
            - termination_metadata
            - type
            - type_name
            - type_uuid
            - url
            - user_affiliations
            - user_email_patterns
            - user_identity_sources
            - uuid
      - in: query
        name: include_terminated
        schema:
          type: boolean
        description: Include soft-deleted (terminated) projects. Only available to
          staff and support users, or users with organizational roles who can see
          their terminated projects.
      - in: query
        name: is_removed
        schema:
          type: boolean
        description: Is removed
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -customer_abbreviation
            - -customer_name
            - -customer_native_name
            - -end_date
            - -estimated_cost
            - -name
            - -start_date
            - created
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - end_date
            - estimated_cost
            - name
            - start_date
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, slug, UUID, backend ID or resource effective
          ID
      - in: query
        name: slug
        schema:
          type: string
        description: Slug
      tags:
      - openportal-unmanaged-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: openportal_unmanaged_projects_create
      description: A new project can be created by users with staff privilege (is_staff=True)
        or customer owners. Project resource quota is optional.
      summary: Create a new project
      tags:
      - openportal-unmanaged-projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectRequest'
            examples:
              CreateProject:
                value:
                  name: Project A
                  customer: http://example.com/api/customers/6c9b01c251c24174a6691a1f894fae31/
                summary: Create project
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ProjectRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ProjectRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: ''
    head:
      operationId: openportal_unmanaged_projects_count
      description: Get number of items in the collection matching the request parameters.
      summary: List projects
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: can_admin
        schema:
          type: boolean
        description: Return a list of projects where current user is admin.
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Return a list of projects where current user is manager or a
          customer owner.
      - in: query
        name: conceal_finished_projects
        schema:
          type: boolean
        description: Conceal finished projects
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: include_terminated
        schema:
          type: boolean
        description: Include soft-deleted (terminated) projects. Only available to
          staff and support users, or users with organizational roles who can see
          their terminated projects.
      - in: query
        name: is_removed
        schema:
          type: boolean
        description: Is removed
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -customer_abbreviation
            - -customer_name
            - -customer_native_name
            - -end_date
            - -estimated_cost
            - -name
            - -start_date
            - created
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - end_date
            - estimated_cost
            - name
            - start_date
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, slug, UUID, backend ID or resource effective
          ID
      - in: query
        name: slug
        schema:
          type: string
        description: Slug
      tags:
      - openportal-unmanaged-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openportal-unmanaged-projects/{uuid}/:
    get:
      operationId: openportal_unmanaged_projects_retrieve
      description: Fetch the details of a specific project by its UUID. Users can
        access details of terminated projects they previously had access to.
      summary: Retrieve project details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - billing_price_estimate
            - created
            - customer
            - customer_abbreviation
            - customer_display_billing_info_in_projects
            - customer_name
            - customer_native_name
            - customer_slug
            - customer_uuid
            - description
            - end_date
            - end_date_requested_by
            - grace_period_days
            - image
            - is_industry
            - is_removed
            - kind
            - marketplace_resource_count
            - max_service_accounts
            - name
            - oecd_fos_2007_code
            - oecd_fos_2007_label
            - project_credit
            - resources_count
            - slug
            - staff_notes
            - start_date
            - termination_metadata
            - type
            - type_name
            - type_uuid
            - url
            - user_affiliations
            - user_email_patterns
            - user_identity_sources
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: ''
    put:
      operationId: openportal_unmanaged_projects_update
      description: Update the details of a project. Requires project administrator
        or customer owner permissions.
      summary: Update project details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ProjectRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ProjectRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: ''
      x-permissions:
      - permission: PROJECT.UPDATE
        scopes:
        - '*'
        - customer
    patch:
      operationId: openportal_unmanaged_projects_partial_update
      description: Partially update the details of a project. Requires project administrator
        or customer owner permissions.
      summary: Partially update project details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProjectRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedProjectRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedProjectRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: ''
      x-permissions:
      - permission: PROJECT.UPDATE
        scopes:
        - '*'
        - customer
    delete:
      operationId: openportal_unmanaged_projects_destroy
      description: Delete a project. If the project has any active resources, the
        deletion request will fail with a 409 Conflict response. This action performs
        a soft-delete, and the project can be recovered later.
      summary: Delete a project
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: PROJECT.DELETE
        scopes:
        - customer
  /api/openportal-unmanaged-projects/{uuid}/add_user/:
    post:
      operationId: openportal_unmanaged_projects_add_user
      description: Assigns a specific role to a user within the current scope. An
        optional expiration time for the role can be set.
      summary: Grant a role to a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleCreateRequest'
            examples:
              GrantProjectAdminRoleUntilEndOfYear:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2024-12-31'
                summary: Grant project admin role until end of year
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleGrantResponse:
                  value:
                    expiration_time: '2024-12-31T00:00:00Z'
                  summary: Successful role grant response
          description: ''
        '400':
          description: Validation error, for example when trying to add a user to
            a terminated project.
  /api/openportal-unmanaged-projects/{uuid}/checklist/:
    get:
      operationId: openportal_unmanaged_projects_checklist_retrieve
      description: Get checklist with questions and existing answers.
      parameters:
      - in: query
        name: include_all
        schema:
          type: boolean
        description: 'If true, returns all questions including hidden ones (for dynamic
          form visibility). Default: false.'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
  /api/openportal-unmanaged-projects/{uuid}/completion_status/:
    get:
      operationId: openportal_unmanaged_projects_completion_status_retrieve
      description: Get checklist completion status.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistCompletion'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
  /api/openportal-unmanaged-projects/{uuid}/delete_user/:
    post:
      operationId: openportal_unmanaged_projects_delete_user
      description: Removes a specific role from a user within the current scope. This
        effectively revokes their permissions associated with that role.
      summary: Revoke a role from a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleDeleteRequest'
            examples:
              RevokeProjectAdminRoleFromUser:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                summary: Revoke project admin role from user
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: Role revoked successfully.
  /api/openportal-unmanaged-projects/{uuid}/list_users/:
    get:
      operationId: openportal_unmanaged_projects_list_users_list
      description: Retrieves a list of users who have a role within a specific scope
        (e.g., a project or an organization). The list can be filtered by user details
        or role.
      summary: List users and their roles in a scope
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - created_by_full_name
            - created_by_uuid
            - expiration_time
            - role_name
            - role_uuid
            - user_email
            - user_full_name
            - user_image
            - user_username
            - user_uuid
            - uuid
        description: Fields to include in response
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name
      - in: query
        name: native_name
        schema:
          type: string
        description: User native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: Ordering fields
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role
        schema:
          type: string
          format: uuid
        description: Role UUID or name
      - in: query
        name: search_string
        schema:
          type: string
        description: Search string for user
      - in: query
        name: user
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug
      - in: query
        name: user_url
        schema:
          type: string
        description: User URL
      - in: query
        name: username
        schema:
          type: string
        description: User username
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserRoleDetails'
                description: ''
              examples:
                ExampleUserRoleListResponse:
                  value:
                  - - uuid: a7e6b0a29a434d2889273c5240217a26
                      created: '2023-10-26T10:00:00Z'
                      expiration_time: '2024-12-31T23:59:59Z'
                      role_name: PROJECT.ADMIN
                      role_uuid: d8c2d5852d434937985392d24249b6d3
                      user_email: alice@example.com
                      user_full_name: Alice Smith
                      user_username: alice
                      user_uuid: 8f20242b638743b18a485f81ac685e13
                      user_image: null
                      created_by_full_name: Bob Johnson
                      created_by_uuid: b4e4c2f1a6f24a8d8e4c2f1a6f24a8d8
                  summary: Example user role list response
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/openportal-unmanaged-projects/{uuid}/move_project/:
    post:
      operationId: openportal_unmanaged_projects_move_project
      description: Moves a project and its associated resources to a different customer.
        You can choose whether to preserve existing project permissions for users.
        Terminated projects can also be moved.
      summary: Move project to another customer
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoveProjectRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: ''
  /api/openportal-unmanaged-projects/{uuid}/recover/:
    post:
      operationId: openportal_unmanaged_projects_recover
      description: Recovers a soft-deleted (terminated) project, making it active
        again. Provides options to restore previous team members automatically (staff-only)
        or send them new invitations.
      summary: Recover a soft-deleted project
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectRecoveryRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: ''
      x-permissions:
      - permission: PROJECT.CREATE
        scopes:
        - customer
  /api/openportal-unmanaged-projects/{uuid}/stats/:
    get:
      operationId: openportal_unmanaged_projects_stats_retrieve
      description: Provides statistics about the resource usage (e.g., CPU, RAM, storage)
        for all resources within a project. Can be filtered to show usage for the
        current month only.
      summary: Get project resource usage statistics
      parameters:
      - in: query
        name: for_current_month
        schema:
          type: boolean
        description: If true, returns usage data for the current month only. Otherwise,
          returns total usage.
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentsUsageStats'
          description: ''
  /api/openportal-unmanaged-projects/{uuid}/submit_answers/:
    post:
      operationId: openportal_unmanaged_projects_submit_answers
      description: Submit checklist answers.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AnswerSubmitRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnswerSubmitResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: Validation error or no checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
  /api/openportal-unmanaged-projects/{uuid}/update_user/:
    post:
      operationId: openportal_unmanaged_projects_update_user
      description: Updates the expiration time for a user's existing role in the current
        scope. This is useful for extending or shortening the duration of a permission.
        To make a role permanent, set expiration_time to null.
      summary: Update a user's role expiration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openportal-unmanaged-projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleUpdateRequest'
            examples:
              ExtendRoleUntilMid-2025:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2025-06-30'
                summary: Extend role until mid-2025
              MakeARolePermanent:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: null
                summary: Make a role permanent
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleUpdateResponse:
                  value:
                    expiration_time: '2025-06-30T00:00:00Z'
                  summary: Successful role update response
          description: ''
  /api/openportal-unmanaged-projects/checklist-template/:
    get:
      operationId: openportal_unmanaged_projects_checklist_template_retrieve
      description: Get checklist template for creating new objects.
      parameters:
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the parent object (e.g., customer UUID for new projects)
        required: true
      tags:
      - openportal-unmanaged-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistTemplate'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Parent object not found
          description: ''
    head:
      operationId: openportal_unmanaged_projects_checklist_template_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the parent object (e.g., customer UUID for new projects)
        required: true
      tags:
      - openportal-unmanaged-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openportal-userinfo/:
    get:
      operationId: openportal_userinfo_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user
        schema:
          type: string
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      tags:
      - openportal-userinfo
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserInfo'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: openportal_userinfo_create
      tags:
      - openportal-userinfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserInfoRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'
          description: ''
    head:
      operationId: openportal_userinfo_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user
        schema:
          type: string
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      tags:
      - openportal-userinfo
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/openportal-userinfo/{user}/:
    get:
      operationId: openportal_userinfo_retrieve
      parameters:
      - in: path
        name: user
        schema:
          type: integer
        required: true
      tags:
      - openportal-userinfo
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'
          description: ''
    put:
      operationId: openportal_userinfo_update
      parameters:
      - in: path
        name: user
        schema:
          type: integer
        required: true
      tags:
      - openportal-userinfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserInfoRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'
          description: ''
    patch:
      operationId: openportal_userinfo_partial_update
      parameters:
      - in: path
        name: user
        schema:
          type: integer
        required: true
      tags:
      - openportal-userinfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserInfoRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'
          description: ''
    delete:
      operationId: openportal_userinfo_destroy
      parameters:
      - in: path
        name: user
        schema:
          type: integer
        required: true
      tags:
      - openportal-userinfo
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openportal-userinfo/{user}/set_shortname/:
    put:
      operationId: openportal_userinfo_set_shortname_update
      parameters:
      - in: path
        name: user
        schema:
          type: integer
        required: true
      tags:
      - openportal-userinfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserInfoRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'
          description: ''
  /api/openportal-userinfo/me/:
    get:
      operationId: openportal_userinfo_me_retrieve
      tags:
      - openportal-userinfo
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'
          description: ''
    head:
      operationId: openportal_userinfo_me_count
      tags:
      - openportal-userinfo
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/openstack-backups/:
    get:
      operationId: openstack_backups_list
      description: Get a list of instance backups.
      summary: List backups
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - instance
            - instance_floating_ips
            - instance_marketplace_uuid
            - instance_name
            - instance_ports
            - instance_security_groups
            - is_limit_based
            - is_usage_based
            - kept_until
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - metadata
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_type
            - restorations
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - tenant_uuid
            - url
            - uuid
      - in: query
        name: instance
        schema:
          type: string
        description: Instance URL
      - in: query
        name: instance_uuid
        schema:
          type: string
          format: uuid
        description: Instance UUID
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-backups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackBackup'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_backups_count
      description: Get number of items in the collection matching the request parameters.
      summary: List backups
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: instance
        schema:
          type: string
        description: Instance URL
      - in: query
        name: instance_uuid
        schema:
          type: string
          format: uuid
        description: Instance UUID
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-backups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-backups/{uuid}/:
    get:
      operationId: openstack_backups_retrieve
      description: Retrieve details of a specific instance backup.
      summary: Get backup details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - instance
            - instance_floating_ips
            - instance_marketplace_uuid
            - instance_name
            - instance_ports
            - instance_security_groups
            - is_limit_based
            - is_usage_based
            - kept_until
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - metadata
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_type
            - restorations
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - tenant_uuid
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-backups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackBackup'
          description: ''
    put:
      operationId: openstack_backups_update
      description: Update an existing instance backup.
      summary: Update backup
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-backups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackBackupRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackBackup'
          description: ''
    patch:
      operationId: openstack_backups_partial_update
      description: Update specific fields of an instance backup.
      summary: Partially update backup
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-backups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOpenStackBackupRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackBackup'
          description: ''
    delete:
      operationId: openstack_backups_destroy
      description: Delete an instance backup.
      summary: Delete backup
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-backups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-backups/{uuid}/pull/:
    post:
      operationId: openstack_backups_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-backups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/openstack-backups/{uuid}/restore/:
    post:
      operationId: openstack_backups_restore
      description: Restore instance from backup
      summary: Restore instance from backup
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-backups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackBackupRestorationCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackInstance'
          description: ''
  /api/openstack-backups/{uuid}/set_erred/:
    post:
      operationId: openstack_backups_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-backups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/openstack-backups/{uuid}/set_ok/:
    post:
      operationId: openstack_backups_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-backups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/openstack-backups/{uuid}/unlink/:
    post:
      operationId: openstack_backups_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-backups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-external-networks/:
    get:
      operationId: openstack_external_networks_list
      description: Get a list of provider-level external networks discovered from
        OpenStack.
      summary: List external networks
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - description
            - is_default
            - is_shared
            - name
            - settings
            - status
            - subnets
            - url
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - openstack-external-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExternalNetwork'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_external_networks_count
      description: Get number of items in the collection matching the request parameters.
      summary: List external networks
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - openstack-external-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-external-networks/{uuid}/:
    get:
      operationId: openstack_external_networks_retrieve
      description: Retrieve details of a specific external network, including its
        subnets.
      summary: Get external network details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - description
            - is_default
            - is_shared
            - name
            - settings
            - status
            - subnets
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-external-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalNetwork'
          description: ''
  /api/openstack-flavors/:
    get:
      operationId: openstack_flavors_list
      description: Get a list of available VM instance flavors.
      summary: List flavors
      parameters:
      - in: query
        name: cores
        schema:
          type: integer
      - in: query
        name: cores__gte
        schema:
          type: integer
      - in: query
        name: cores__lte
        schema:
          type: integer
      - in: query
        name: disk
        schema:
          type: integer
      - in: query
        name: disk__gte
        schema:
          type: integer
      - in: query
        name: disk__lte
        schema:
          type: integer
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - cores
            - disk
            - display_name
            - name
            - ram
            - settings
            - url
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: name_iregex
        schema:
          type: string
        description: Name (regex)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -cores
            - -disk
            - -ram
            - cores
            - disk
            - ram
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: ram
        schema:
          type: integer
      - in: query
        name: ram__gte
        schema:
          type: integer
      - in: query
        name: ram__lte
        schema:
          type: integer
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-flavors
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackFlavor'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_flavors_count
      description: Get number of items in the collection matching the request parameters.
      summary: List flavors
      parameters:
      - in: query
        name: cores
        schema:
          type: integer
      - in: query
        name: cores__gte
        schema:
          type: integer
      - in: query
        name: cores__lte
        schema:
          type: integer
      - in: query
        name: disk
        schema:
          type: integer
      - in: query
        name: disk__gte
        schema:
          type: integer
      - in: query
        name: disk__lte
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: name_iregex
        schema:
          type: string
        description: Name (regex)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -cores
            - -disk
            - -ram
            - cores
            - disk
            - ram
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: ram
        schema:
          type: integer
      - in: query
        name: ram__gte
        schema:
          type: integer
      - in: query
        name: ram__lte
        schema:
          type: integer
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-flavors
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-flavors/{uuid}/:
    get:
      operationId: openstack_flavors_retrieve
      description: Retrieve details of a specific VM instance flavor.
      summary: Get flavor details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - cores
            - disk
            - display_name
            - name
            - ram
            - settings
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-flavors
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackFlavor'
          description: ''
  /api/openstack-flavors/usage_stats/:
    get:
      operationId: openstack_flavors_usage_stats_retrieve
      description: Retrieve usage statistics for VM instance flavors, showing running
        and created instance counts for each flavor.
      summary: Get flavor usage statistics
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - cores
            - disk
            - display_name
            - name
            - ram
            - settings
            - url
            - uuid
      tags:
      - openstack-flavors
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackFlavor'
          description: ''
    head:
      operationId: openstack_flavors_usage_stats_count
      description: Get number of items in the collection matching the request parameters.
      summary: Get flavor usage statistics
      tags:
      - openstack-flavors
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-floating-ips/:
    get:
      operationId: openstack_floating_ips_list
      description: Get a list of floating IP addresses. Status *DOWN* means that floating
        IP is not linked to a VM, status *ACTIVE* means that it is in use.
      summary: List floating IPs
      parameters:
      - in: query
        name: address
        schema:
          type: string
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - address
            - backend_id
            - backend_network_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - external_address
            - instance_name
            - instance_url
            - instance_uuid
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - port
            - port_fixed_ips
            - project
            - project_name
            - project_uuid
            - resource_type
            - router
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - tenant
            - tenant_name
            - tenant_uuid
            - url
            - uuid
      - in: query
        name: free
        schema:
          type: boolean
        description: Is free
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: runtime_state
        schema:
          type: string
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-floating-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackFloatingIP'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_floating_ips_count
      description: Get number of items in the collection matching the request parameters.
      summary: List floating IPs
      parameters:
      - in: query
        name: address
        schema:
          type: string
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: free
        schema:
          type: boolean
        description: Is free
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: runtime_state
        schema:
          type: string
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-floating-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-floating-ips/{uuid}/:
    get:
      operationId: openstack_floating_ips_retrieve
      description: Retrieve details of a specific floating IP address.
      summary: Get floating IP details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - address
            - backend_id
            - backend_network_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - external_address
            - instance_name
            - instance_url
            - instance_uuid
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - port
            - port_fixed_ips
            - project
            - project_name
            - project_uuid
            - resource_type
            - router
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - tenant
            - tenant_name
            - tenant_uuid
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-floating-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackFloatingIP'
          description: ''
    delete:
      operationId: openstack_floating_ips_destroy
      description: Delete a floating IP address.
      summary: Delete floating IP
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-floating-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-floating-ips/{uuid}/attach_to_port/:
    post:
      operationId: openstack_floating_ips_attach_to_port
      description: Attach floating IP to port
      summary: Attach floating IP to a port
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-floating-ips
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackFloatingIPAttachRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-floating-ips/{uuid}/detach_from_port/:
    post:
      operationId: openstack_floating_ips_detach_from_port
      description: Detach floating IP from port
      summary: Detach floating IP from port
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-floating-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-floating-ips/{uuid}/pull/:
    post:
      operationId: openstack_floating_ips_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-floating-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/openstack-floating-ips/{uuid}/set_erred/:
    post:
      operationId: openstack_floating_ips_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-floating-ips
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/openstack-floating-ips/{uuid}/set_ok/:
    post:
      operationId: openstack_floating_ips_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-floating-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/openstack-floating-ips/{uuid}/unlink/:
    post:
      operationId: openstack_floating_ips_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-floating-ips
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-floating-ips/{uuid}/update_description/:
    post:
      operationId: openstack_floating_ips_update_description
      description: Update description of the floating IP
      summary: Update floating IP description
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-floating-ips
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackFloatingIPDescriptionUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-images/:
    get:
      operationId: openstack_images_list
      description: Get a list of available VM instance images.
      summary: List images
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: show_duplicate_names
        schema:
          type: boolean
        description: Show duplicate image names
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackImage'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_images_count
      description: Get number of items in the collection matching the request parameters.
      summary: List images
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: show_duplicate_names
        schema:
          type: boolean
        description: Show duplicate image names
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-images/{uuid}/:
    get:
      operationId: openstack_images_retrieve
      description: Retrieve details of a specific VM instance image.
      summary: Get image details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackImage'
          description: ''
  /api/openstack-images/usage_stats/:
    get:
      operationId: openstack_images_usage_stats_retrieve
      description: Retrieve usage statistics for VM instance images, showing running
        and created instance counts for each image.
      summary: Get image usage statistics
      tags:
      - openstack-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackImage'
          description: ''
    head:
      operationId: openstack_images_usage_stats_count
      description: Get number of items in the collection matching the request parameters.
      summary: Get image usage statistics
      tags:
      - openstack-images
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-instance-availability-zones/:
    get:
      operationId: openstack_instance_availability_zones_list
      description: Get a list of instance availability zones.
      summary: List instance availability zones
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-instance-availability-zones
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackInstanceAvailabilityZone'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_instance_availability_zones_count
      description: Get number of items in the collection matching the request parameters.
      summary: List instance availability zones
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-instance-availability-zones
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-instance-availability-zones/{uuid}/:
    get:
      operationId: openstack_instance_availability_zones_retrieve
      description: Retrieve details of a specific instance availability zone.
      summary: Get instance availability zone details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instance-availability-zones
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackInstanceAvailabilityZone'
          description: ''
  /api/openstack-instances/:
    get:
      operationId: openstack_instances_list
      description: Get a list of VM instances.
      summary: List instances
      parameters:
      - in: query
        name: attach_volume_uuid
        schema:
          type: string
          format: uuid
        description: Filter for attachment to volume UUID
      - in: query
        name: availability_zone_name
        schema:
          type: string
        description: Availability zone name
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - action
            - action_details
            - availability_zone
            - availability_zone_name
            - backend_id
            - connect_directly_to_external_network
            - cores
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - disk
            - error_message
            - error_traceback
            - external_address
            - external_ips
            - flavor_disk
            - flavor_name
            - floating_ips
            - hypervisor_hostname
            - image_name
            - internal_ips
            - is_limit_based
            - is_usage_based
            - key_fingerprint
            - key_name
            - latitude
            - longitude
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - min_disk
            - min_ram
            - modified
            - name
            - ports
            - project
            - project_name
            - project_uuid
            - ram
            - rancher_cluster
            - resource_type
            - runtime_state
            - security_groups
            - server_group
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - ssh_public_key
            - start_time
            - state
            - tenant
            - tenant_uuid
            - url
            - user_data
            - uuid
            - volumes
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by name, internal IP, or external IP
      - in: query
        name: runtime_state
        schema:
          type: string
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackInstance'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_instances_count
      description: Get number of items in the collection matching the request parameters.
      summary: List instances
      parameters:
      - in: query
        name: attach_volume_uuid
        schema:
          type: string
          format: uuid
        description: Filter for attachment to volume UUID
      - in: query
        name: availability_zone_name
        schema:
          type: string
        description: Availability zone name
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by name, internal IP, or external IP
      - in: query
        name: runtime_state
        schema:
          type: string
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-instances/{uuid}/:
    get:
      operationId: openstack_instances_retrieve
      description: Retrieve details of a specific VM instance.
      summary: Get instance details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - action
            - action_details
            - availability_zone
            - availability_zone_name
            - backend_id
            - connect_directly_to_external_network
            - cores
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - disk
            - error_message
            - error_traceback
            - external_address
            - external_ips
            - flavor_disk
            - flavor_name
            - floating_ips
            - hypervisor_hostname
            - image_name
            - internal_ips
            - is_limit_based
            - is_usage_based
            - key_fingerprint
            - key_name
            - latitude
            - longitude
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - min_disk
            - min_ram
            - modified
            - name
            - ports
            - project
            - project_name
            - project_uuid
            - ram
            - rancher_cluster
            - resource_type
            - runtime_state
            - security_groups
            - server_group
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - ssh_public_key
            - start_time
            - state
            - tenant
            - tenant_uuid
            - url
            - user_data
            - uuid
            - volumes
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackInstance'
          description: ''
    put:
      operationId: openstack_instances_update
      description: Update an existing VM instance.
      summary: Update instance
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackInstanceRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackInstance'
          description: ''
    patch:
      operationId: openstack_instances_partial_update
      description: Update specific fields of a VM instance.
      summary: Partially update instance
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOpenStackInstanceRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackInstance'
          description: ''
  /api/openstack-instances/{uuid}/backup/:
    post:
      operationId: openstack_instances_backup
      description: Create backup from instance
      summary: Create instance backup
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackBackupRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackBackup'
          description: ''
  /api/openstack-instances/{uuid}/change_flavor/:
    post:
      operationId: openstack_instances_change_flavor
      description: Change flavor of the instance
      summary: Change instance flavor
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstanceFlavorChangeRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-instances/{uuid}/console/:
    get:
      operationId: openstack_instances_console_retrieve
      description: Get console url for the instance
      summary: Get console URL
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsoleUrl'
          description: ''
  /api/openstack-instances/{uuid}/console_log/:
    get:
      operationId: openstack_instances_console_log_retrieve
      description: Get console log for the instance
      summary: Get console log
      parameters:
      - in: query
        name: length
        schema:
          type: integer
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: string
          description: ''
  /api/openstack-instances/{uuid}/floating_ips/:
    get:
      operationId: openstack_instances_floating_ips_list
      description: Get a list of instance floating IPs
      summary: List instance floating IPs
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackNestedFloatingIP'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/openstack-instances/{uuid}/ports/:
    get:
      operationId: openstack_instances_ports_list
      description: Get a list of instance ports
      summary: List instance ports
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackNestedPort'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/openstack-instances/{uuid}/pull/:
    post:
      operationId: openstack_instances_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/openstack-instances/{uuid}/restart/:
    post:
      operationId: openstack_instances_restart
      description: Restart the instance
      summary: Restart instance
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-instances/{uuid}/set_erred/:
    post:
      operationId: openstack_instances_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/openstack-instances/{uuid}/set_ok/:
    post:
      operationId: openstack_instances_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/openstack-instances/{uuid}/start/:
    post:
      operationId: openstack_instances_start
      description: Start the instance
      summary: Start instance
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-instances/{uuid}/stop/:
    post:
      operationId: openstack_instances_stop
      description: Stop the instance
      summary: Stop instance
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-instances/{uuid}/unlink/:
    post:
      operationId: openstack_instances_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-instances/{uuid}/update_allowed_address_pairs/:
    post:
      operationId: openstack_instances_update_allowed_address_pairs
      description: Update allowed address pairs of the instance
      summary: Update instance allowed address pairs
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackInstanceAllowedAddressPairsUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-instances/{uuid}/update_floating_ips/:
    post:
      operationId: openstack_instances_update_floating_ips
      description: Update floating IPs of the instance
      summary: Update instance floating IPs
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackInstanceFloatingIPsUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-instances/{uuid}/update_ports/:
    post:
      operationId: openstack_instances_update_ports
      description: Update ports of the instance
      summary: Update instance ports
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackInstancePortsUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-instances/{uuid}/update_security_groups/:
    post:
      operationId: openstack_instances_update_security_groups
      description: Update security groups of the instance
      summary: Update instance security groups
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-instances
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackInstanceSecurityGroupsUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-marketplace-tenants/:
    get:
      operationId: openstack_marketplace_tenants_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-marketplace-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Tenant'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_marketplace_tenants_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-marketplace-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/openstack-marketplace-tenants/{uuid}/:
    get:
      operationId: openstack_marketplace_tenants_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-marketplace-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tenant'
          description: ''
  /api/openstack-marketplace-tenants/{uuid}/create_image/:
    post:
      operationId: openstack_marketplace_tenants_create_image
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-marketplace-tenants
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImageCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageCreateResponse'
          description: ''
  /api/openstack-marketplace-tenants/{uuid}/upload_image_data/{image_id}/:
    post:
      operationId: openstack_marketplace_tenants_upload_image_data
      parameters:
      - in: path
        name: image_id
        schema:
          type: string
          format: uuid
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-marketplace-tenants
      requestBody:
        content:
          application/json:
            schema:
              type: string
              format: binary
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageUploadResponse'
          description: ''
  /api/openstack-migrations/:
    get:
      operationId: openstack_migrations_list
      parameters:
      - in: query
        name: dst_resource_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: src_resource_uuid
        schema:
          type: string
          format: uuid
      tags:
      - openstack-migrations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MigrationDetails'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: openstack_migrations_create
      tags:
      - openstack-migrations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MigrationCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MigrationCreate'
          description: ''
    head:
      operationId: openstack_migrations_count
      parameters:
      - in: query
        name: dst_resource_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: src_resource_uuid
        schema:
          type: string
          format: uuid
      tags:
      - openstack-migrations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/openstack-migrations/{uuid}/:
    get:
      operationId: openstack_migrations_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-migrations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MigrationDetails'
          description: ''
    put:
      operationId: openstack_migrations_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-migrations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MigrationDetailsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MigrationDetails'
          description: ''
    patch:
      operationId: openstack_migrations_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-migrations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMigrationDetailsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MigrationDetails'
          description: ''
    delete:
      operationId: openstack_migrations_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-migrations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-network-rbac-policies/:
    get:
      operationId: openstack_network_rbac_policies_list
      description: Get a list of network RBAC policies.
      summary: List network RBAC policies
      parameters:
      - in: query
        name: network
        schema:
          type: string
        description: Network URL
      - in: query
        name: network_uuid
        schema:
          type: string
          format: uuid
        description: Network UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: policy_type
        schema:
          type: string
          enum:
          - access_as_external
          - access_as_shared
        description: |+
          Type of access granted - either shared access or external network access

      - in: query
        name: target_tenant
        schema:
          type: string
        description: Target tenant URL
      - in: query
        name: target_tenant_uuid
        schema:
          type: string
          format: uuid
        description: Target tenant UUID
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-network-rbac-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NetworkRBACPolicy'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: openstack_network_rbac_policies_create
      description: Create RBAC policy for the network
      summary: Create RBAC policy
      tags:
      - openstack-network-rbac-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkRBACPolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkRBACPolicy'
          description: ''
    head:
      operationId: openstack_network_rbac_policies_count
      description: Get number of items in the collection matching the request parameters.
      summary: List network RBAC policies
      parameters:
      - in: query
        name: network
        schema:
          type: string
        description: Network URL
      - in: query
        name: network_uuid
        schema:
          type: string
          format: uuid
        description: Network UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: policy_type
        schema:
          type: string
          enum:
          - access_as_external
          - access_as_shared
        description: |+
          Type of access granted - either shared access or external network access

      - in: query
        name: target_tenant
        schema:
          type: string
        description: Target tenant URL
      - in: query
        name: target_tenant_uuid
        schema:
          type: string
          format: uuid
        description: Target tenant UUID
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-network-rbac-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-network-rbac-policies/{uuid}/:
    get:
      operationId: openstack_network_rbac_policies_retrieve
      description: Retrieve details of a specific network RBAC policy.
      summary: Get network RBAC policy details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-network-rbac-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkRBACPolicy'
          description: ''
    put:
      operationId: openstack_network_rbac_policies_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-network-rbac-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkRBACPolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkRBACPolicy'
          description: ''
    patch:
      operationId: openstack_network_rbac_policies_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-network-rbac-policies
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedNetworkRBACPolicyRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkRBACPolicy'
          description: ''
    delete:
      operationId: openstack_network_rbac_policies_destroy
      description: Delete RBAC policy for the network
      summary: Delete RBAC policy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-network-rbac-policies
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-networks/:
    get:
      operationId: openstack_networks_list
      description: Get a list of networks.
      summary: List networks
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: direct_only
        schema:
          type: boolean
        description: Direct only
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_external
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - mtu
            - name
            - project
            - project_name
            - project_uuid
            - rbac_policies
            - resource_type
            - segmentation_id
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - subnets
            - tenant
            - tenant_name
            - tenant_uuid
            - type
            - url
            - uuid
      - in: query
        name: is_external
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: rbac_only
        schema:
          type: boolean
        description: RBAC only
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: type
        schema:
          type: string
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackNetwork'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_networks_count
      description: Get number of items in the collection matching the request parameters.
      summary: List networks
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: direct_only
        schema:
          type: boolean
        description: Direct only
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: is_external
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: rbac_only
        schema:
          type: boolean
        description: RBAC only
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: type
        schema:
          type: string
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-networks/{uuid}/:
    get:
      operationId: openstack_networks_retrieve
      description: Retrieve details of a specific network.
      summary: Get network details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_external
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - mtu
            - name
            - project
            - project_name
            - project_uuid
            - rbac_policies
            - resource_type
            - segmentation_id
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - subnets
            - tenant
            - tenant_name
            - tenant_uuid
            - type
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackNetwork'
          description: ''
    put:
      operationId: openstack_networks_update
      description: Update an existing network.
      summary: Update network
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-networks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackNetworkRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackNetwork'
          description: ''
    patch:
      operationId: openstack_networks_partial_update
      description: Update specific fields of a network.
      summary: Partially update network
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-networks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOpenStackNetworkRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackNetwork'
          description: ''
    delete:
      operationId: openstack_networks_destroy
      description: Delete a network.
      summary: Delete network
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-networks/{uuid}/create_subnet/:
    post:
      operationId: openstack_networks_create_subnet
      description: Create a new subnet within the network.
      summary: Create subnet
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-networks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackSubNetRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackSubNet'
          description: ''
  /api/openstack-networks/{uuid}/pull/:
    post:
      operationId: openstack_networks_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/openstack-networks/{uuid}/rbac_policy_create/:
    post:
      operationId: openstack_networks_rbac_policy_create
      description: 'Create RBAC policy for the network. DEPRECATED: please use the
        dedicated /api/openstack-network-rbac-policies/ endpoint.'
      summary: Create RBAC policy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-networks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeprecatedNetworkRBACPolicyRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      deprecated: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeprecatedNetworkRBACPolicy'
          description: ''
  /api/openstack-networks/{uuid}/rbac_policy_delete/{rbac_policy_uuid}/:
    delete:
      operationId: openstack_networks_rbac_policy_delete_destroy
      description: 'Delete RBAC policy for the network. DEPRECATED: please use the
        dedicated /api/openstack-network-rbac-policies/ endpoint.'
      summary: Delete RBAC policy
      parameters:
      - in: path
        name: rbac_policy_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the RBAC policy to delete
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      deprecated: true
      responses:
        '204':
          description: No response body
  /api/openstack-networks/{uuid}/set_erred/:
    post:
      operationId: openstack_networks_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-networks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/openstack-networks/{uuid}/set_mtu/:
    post:
      operationId: openstack_networks_set_mtu
      description: Update the Maximum Transmission Unit (MTU) for the network.
      summary: Set network MTU
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-networks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetMtuRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetMtu'
          description: ''
  /api/openstack-networks/{uuid}/set_ok/:
    post:
      operationId: openstack_networks_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/openstack-networks/{uuid}/unlink/:
    post:
      operationId: openstack_networks_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-ports/:
    get:
      operationId: openstack_ports_list
      description: Get a list of network ports.
      summary: List ports
      parameters:
      - in: query
        name: admin_state_up
        schema:
          type: boolean
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: device_id
        schema:
          type: string
      - in: query
        name: device_owner
        schema:
          type: string
      - in: query
        name: exclude_subnet_uuids
        schema:
          type: string
        description: Exclude Subnet UUIDs (comma-separated)
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - admin_state_up
            - allowed_address_pairs
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - device_id
            - device_owner
            - error_message
            - error_traceback
            - fixed_ips
            - floating_ips
            - is_limit_based
            - is_usage_based
            - mac_address
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - network
            - network_name
            - network_uuid
            - port_security_enabled
            - project
            - project_name
            - project_uuid
            - resource_type
            - security_groups
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - status
            - target_tenant
            - tenant
            - tenant_name
            - tenant_uuid
            - url
            - uuid
      - in: query
        name: fixed_ips
        schema:
          type: string
        description: Search by fixed IP
      - in: query
        name: has_device_owner
        schema:
          type: boolean
        description: Has device owner
      - in: query
        name: mac_address
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: network_name
        schema:
          type: string
        description: Search by network name
      - in: query
        name: network_uuid
        schema:
          type: string
          format: uuid
        description: Search by network UUID
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -admin_state_up
            - -created
            - -device_owner
            - -instance_name
            - -mac_address
            - -name
            - -network_name
            - -status
            - -subnet_name
            - admin_state_up
            - created
            - device_owner
            - instance_name
            - mac_address
            - name
            - network_name
            - status
            - subnet_name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Search by name, MAC address or backend ID
      - in: query
        name: status
        schema:
          type: string
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackPort'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: openstack_ports_create
      description: Create a new network port.
      summary: Create port
      tags:
      - openstack-ports
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackPortRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackPort'
          description: ''
    head:
      operationId: openstack_ports_count
      description: Get number of items in the collection matching the request parameters.
      summary: List ports
      parameters:
      - in: query
        name: admin_state_up
        schema:
          type: boolean
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: device_id
        schema:
          type: string
      - in: query
        name: device_owner
        schema:
          type: string
      - in: query
        name: exclude_subnet_uuids
        schema:
          type: string
        description: Exclude Subnet UUIDs (comma-separated)
      - in: query
        name: fixed_ips
        schema:
          type: string
        description: Search by fixed IP
      - in: query
        name: has_device_owner
        schema:
          type: boolean
        description: Has device owner
      - in: query
        name: mac_address
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: network_name
        schema:
          type: string
        description: Search by network name
      - in: query
        name: network_uuid
        schema:
          type: string
          format: uuid
        description: Search by network UUID
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -admin_state_up
            - -created
            - -device_owner
            - -instance_name
            - -mac_address
            - -name
            - -network_name
            - -status
            - -subnet_name
            - admin_state_up
            - created
            - device_owner
            - instance_name
            - mac_address
            - name
            - network_name
            - status
            - subnet_name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Search by name, MAC address or backend ID
      - in: query
        name: status
        schema:
          type: string
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-ports/{uuid}/:
    get:
      operationId: openstack_ports_retrieve
      description: Retrieve details of a specific network port.
      summary: Get port details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - admin_state_up
            - allowed_address_pairs
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - device_id
            - device_owner
            - error_message
            - error_traceback
            - fixed_ips
            - floating_ips
            - is_limit_based
            - is_usage_based
            - mac_address
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - network
            - network_name
            - network_uuid
            - port_security_enabled
            - project
            - project_name
            - project_uuid
            - resource_type
            - security_groups
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - status
            - target_tenant
            - tenant
            - tenant_name
            - tenant_uuid
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackPort'
          description: ''
    put:
      operationId: openstack_ports_update
      description: Update an existing network port.
      summary: Update port
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackPortRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackPort'
          description: ''
    patch:
      operationId: openstack_ports_partial_update
      description: Update specific fields of a network port.
      summary: Partially update port
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOpenStackPortRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackPort'
          description: ''
    delete:
      operationId: openstack_ports_destroy
      description: Delete a network port.
      summary: Delete port
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-ports/{uuid}/disable_port/:
    post:
      operationId: openstack_ports_disable_port
      description: Disable port.
      summary: Disable port
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-ports/{uuid}/disable_port_security/:
    post:
      operationId: openstack_ports_disable_port_security
      description: Disable port security for the port
      summary: Disable port security
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-ports/{uuid}/enable_port/:
    post:
      operationId: openstack_ports_enable_port
      description: Enable port.
      summary: Enable port
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-ports/{uuid}/enable_port_security/:
    post:
      operationId: openstack_ports_enable_port_security
      description: Enable port security for the port
      summary: Enable port security
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-ports/{uuid}/pull/:
    post:
      operationId: openstack_ports_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/openstack-ports/{uuid}/set_erred/:
    post:
      operationId: openstack_ports_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/openstack-ports/{uuid}/set_ok/:
    post:
      operationId: openstack_ports_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/openstack-ports/{uuid}/unlink/:
    post:
      operationId: openstack_ports_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-ports/{uuid}/update_port_ip/:
    post:
      operationId: openstack_ports_update_port_ip
      description: Update port IP address.
      summary: Update port IP address
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackPortIPUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-ports/{uuid}/update_security_groups/:
    post:
      operationId: openstack_ports_update_security_groups
      description: Update security groups of the port
      summary: Update port security groups
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-ports
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackInstanceSecurityGroupsUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-routers/:
    get:
      operationId: openstack_routers_list
      description: Get a list of routers.
      summary: List routers
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - fixed_ips
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - offering_external_ips
            - ports
            - project
            - project_name
            - project_uuid
            - resource_type
            - routes
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - tenant
            - tenant_name
            - tenant_uuid
            - url
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-routers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackRouter'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: openstack_routers_create
      description: Create a new router.
      summary: Create router
      tags:
      - openstack-routers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRouterRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRouter'
          description: ''
    head:
      operationId: openstack_routers_count
      description: Get number of items in the collection matching the request parameters.
      summary: List routers
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-routers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-routers/{uuid}/:
    get:
      operationId: openstack_routers_retrieve
      description: Retrieve details of a specific router.
      summary: Get router details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - fixed_ips
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - offering_external_ips
            - ports
            - project
            - project_name
            - project_uuid
            - resource_type
            - routes
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - tenant
            - tenant_name
            - tenant_uuid
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-routers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackRouter'
          description: ''
    delete:
      operationId: openstack_routers_destroy
      description: Delete a router.
      summary: Delete router
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-routers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-routers/{uuid}/add_router_interface/:
    post:
      operationId: openstack_routers_add_router_interface
      description: Add interface to router. Either subnet or port must be provided.
      summary: Add router interface
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-routers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackRouterInterfaceRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-routers/{uuid}/remove_router_interface/:
    post:
      operationId: openstack_routers_remove_router_interface
      description: Remove interface from router. Either subnet or port must be provided.
      summary: Remove router interface
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-routers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackRouterInterfaceRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-routers/{uuid}/set_erred/:
    post:
      operationId: openstack_routers_set_erred
      description: Manually transition the router to ERRED state. This is useful for
        routers stuck in transitional states (CREATING, UPDATING, DELETING) that cannot
        be synced via pull. Staff-only operation.
      summary: Mark router as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-routers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RouterSetErredResponse'
          description: ''
  /api/openstack-routers/{uuid}/set_ok/:
    post:
      operationId: openstack_routers_set_ok
      description: Manually transition the router to OK state and clear error fields.
        Staff-only operation.
      summary: Mark router as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-routers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RouterSetOkResponse'
          description: ''
  /api/openstack-routers/{uuid}/set_routes/:
    post:
      operationId: openstack_routers_set_routes
      description: Define or overwrite the static routes for the router.
      summary: Set static routes
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-routers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackRouterSetRoutesRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackRouterSetRoutes'
          description: ''
  /api/openstack-security-groups/:
    get:
      operationId: openstack_security_groups_list
      description: Get a list of security groups.
      summary: List security groups
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_type
            - rules
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - tenant
            - tenant_name
            - tenant_uuid
            - url
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by name or description
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-security-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackSecurityGroup'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_security_groups_count
      description: Get number of items in the collection matching the request parameters.
      summary: List security groups
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Search by name or description
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-security-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-security-groups/{uuid}/:
    get:
      operationId: openstack_security_groups_retrieve
      description: Retrieve details of a specific security group.
      summary: Get security group details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_type
            - rules
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - tenant
            - tenant_name
            - tenant_uuid
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-security-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackSecurityGroup'
          description: ''
    put:
      operationId: openstack_security_groups_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-security-groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackSecurityGroupUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackSecurityGroupUpdate'
          description: ''
    patch:
      operationId: openstack_security_groups_partial_update
      description: Update specific fields of a security group.
      summary: Partially update security group
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-security-groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOpenStackSecurityGroupUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackSecurityGroupUpdate'
          description: ''
    delete:
      operationId: openstack_security_groups_destroy
      description: Delete a security group.
      summary: Delete security group
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-security-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-security-groups/{uuid}/pull/:
    post:
      operationId: openstack_security_groups_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-security-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/openstack-security-groups/{uuid}/set_erred/:
    post:
      operationId: openstack_security_groups_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-security-groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/openstack-security-groups/{uuid}/set_ok/:
    post:
      operationId: openstack_security_groups_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-security-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/openstack-security-groups/{uuid}/set_rules/:
    post:
      operationId: openstack_security_groups_set_rules
      description: Update the rules for a specific security group. This overwrites
        all existing rules.
      summary: Set security group rules
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-security-groups
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/OpenStackSecurityGroupRuleUpdateRequest'
            examples:
              Openstack-security-group-set-rules:
                value:
                - - protocol: tcp
                    from_port: 1
                    to_port: 10
                    cidr: 10.1.1.0/24
                summary: openstack-security-group-set-rules
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-security-groups/{uuid}/unlink/:
    post:
      operationId: openstack_security_groups_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-security-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-server-groups/:
    get:
      operationId: openstack_server_groups_list
      description: Get a list of server groups.
      summary: List server groups
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - display_name
            - error_message
            - error_traceback
            - instances
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - policy
            - project
            - project_name
            - project_uuid
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - tenant
            - tenant_name
            - tenant_uuid
            - url
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-server-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackServerGroup'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: openstack_server_groups_create
      tags:
      - openstack-server-groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackServerGroupRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackServerGroup'
          description: ''
    head:
      operationId: openstack_server_groups_count
      description: Get number of items in the collection matching the request parameters.
      summary: List server groups
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-server-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-server-groups/{uuid}/:
    get:
      operationId: openstack_server_groups_retrieve
      description: Retrieve details of a specific server group.
      summary: Get server group details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - display_name
            - error_message
            - error_traceback
            - instances
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - policy
            - project
            - project_name
            - project_uuid
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - tenant
            - tenant_name
            - tenant_uuid
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-server-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackServerGroup'
          description: ''
    delete:
      operationId: openstack_server_groups_destroy
      description: Delete a server group.
      summary: Delete server group
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-server-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-server-groups/{uuid}/pull/:
    post:
      operationId: openstack_server_groups_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-server-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/openstack-server-groups/{uuid}/set_erred/:
    post:
      operationId: openstack_server_groups_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-server-groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/openstack-server-groups/{uuid}/set_ok/:
    post:
      operationId: openstack_server_groups_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-server-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/openstack-server-groups/{uuid}/unlink/:
    post:
      operationId: openstack_server_groups_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-server-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-snapshots/:
    get:
      operationId: openstack_snapshots_list
      description: Get a list of snapshots.
      summary: List snapshots
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: backup
        schema:
          type: string
        description: Backup URL
      - in: query
        name: backup_uuid
        schema:
          type: string
          format: uuid
        description: Backup UUID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - action
            - action_details
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - kept_until
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - metadata
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_type
            - restorations
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - source_volume
            - source_volume_marketplace_uuid
            - source_volume_name
            - state
            - url
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: runtime_state
        schema:
          type: string
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: source_volume
        schema:
          type: string
        description: Source volume URL
      - in: query
        name: source_volume_uuid
        schema:
          type: string
          format: uuid
        description: Source volume UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-snapshots
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackSnapshot'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_snapshots_count
      description: Get number of items in the collection matching the request parameters.
      summary: List snapshots
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: backup
        schema:
          type: string
        description: Backup URL
      - in: query
        name: backup_uuid
        schema:
          type: string
          format: uuid
        description: Backup UUID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: runtime_state
        schema:
          type: string
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: source_volume
        schema:
          type: string
        description: Source volume URL
      - in: query
        name: source_volume_uuid
        schema:
          type: string
          format: uuid
        description: Source volume UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-snapshots
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-snapshots/{uuid}/:
    get:
      operationId: openstack_snapshots_retrieve
      description: Retrieve details of a specific snapshot.
      summary: Get snapshot details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - action
            - action_details
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - kept_until
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - metadata
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_type
            - restorations
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - source_volume
            - source_volume_marketplace_uuid
            - source_volume_name
            - state
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-snapshots
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackSnapshot'
          description: ''
    put:
      operationId: openstack_snapshots_update
      description: Update an existing snapshot.
      summary: Update snapshot
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-snapshots
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackSnapshotRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackSnapshot'
          description: ''
    patch:
      operationId: openstack_snapshots_partial_update
      description: Update specific fields of a snapshot.
      summary: Partially update snapshot
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-snapshots
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOpenStackSnapshotRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackSnapshot'
          description: ''
    delete:
      operationId: openstack_snapshots_destroy
      description: Delete a snapshot.
      summary: Delete snapshot
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-snapshots
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-snapshots/{uuid}/pull/:
    post:
      operationId: openstack_snapshots_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-snapshots
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/openstack-snapshots/{uuid}/restorations/:
    get:
      operationId: openstack_snapshots_restorations_list
      description: Get a list of snapshot restorations
      summary: List snapshot restorations
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-snapshots
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackSnapshotRestoration'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/openstack-snapshots/{uuid}/restore/:
    post:
      operationId: openstack_snapshots_restore
      description: Restore volume from snapshot
      summary: Restore volume from snapshot
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-snapshots
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackSnapshotRestorationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackVolume'
          description: ''
  /api/openstack-snapshots/{uuid}/set_erred/:
    post:
      operationId: openstack_snapshots_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-snapshots
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/openstack-snapshots/{uuid}/set_ok/:
    post:
      operationId: openstack_snapshots_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-snapshots
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/openstack-snapshots/{uuid}/unlink/:
    post:
      operationId: openstack_snapshots_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-snapshots
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-subnets/:
    get:
      operationId: openstack_subnets_list
      description: Get a list of subnets.
      summary: List subnets
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: direct_only
        schema:
          type: boolean
        description: Direct only
      - in: query
        name: enable_dhcp
        schema:
          type: boolean
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - allocation_pools
            - backend_id
            - cidr
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - disable_gateway
            - dns_nameservers
            - enable_dhcp
            - error_message
            - error_traceback
            - gateway_ip
            - host_routes
            - ip_version
            - is_connected
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - network
            - network_name
            - project
            - project_name
            - project_uuid
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - tenant
            - tenant_name
            - url
            - uuid
      - in: query
        name: ip_version
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: network
        schema:
          type: string
        description: Network URL
      - in: query
        name: network_uuid
        schema:
          type: string
          format: uuid
        description: Network UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: rbac_only
        schema:
          type: boolean
        description: RBAC only
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-subnets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackSubNet'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_subnets_count
      description: Get number of items in the collection matching the request parameters.
      summary: List subnets
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: direct_only
        schema:
          type: boolean
        description: Direct only
      - in: query
        name: enable_dhcp
        schema:
          type: boolean
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: ip_version
        schema:
          type: integer
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: network
        schema:
          type: string
        description: Network URL
      - in: query
        name: network_uuid
        schema:
          type: string
          format: uuid
        description: Network UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: rbac_only
        schema:
          type: boolean
        description: RBAC only
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-subnets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-subnets/{uuid}/:
    get:
      operationId: openstack_subnets_retrieve
      description: Retrieve details of a specific subnet.
      summary: Get subnet details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - allocation_pools
            - backend_id
            - cidr
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - disable_gateway
            - dns_nameservers
            - enable_dhcp
            - error_message
            - error_traceback
            - gateway_ip
            - host_routes
            - ip_version
            - is_connected
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - network
            - network_name
            - project
            - project_name
            - project_uuid
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - tenant
            - tenant_name
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-subnets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackSubNet'
          description: ''
    put:
      operationId: openstack_subnets_update
      description: Update an existing subnet.
      summary: Update subnet
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-subnets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackSubNetRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackSubNet'
          description: ''
    patch:
      operationId: openstack_subnets_partial_update
      description: Update specific fields of a subnet.
      summary: Partially update subnet
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-subnets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOpenStackSubNetRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackSubNet'
          description: ''
    delete:
      operationId: openstack_subnets_destroy
      description: Delete a subnet.
      summary: Delete subnet
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-subnets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-subnets/{uuid}/connect/:
    post:
      operationId: openstack_subnets_connect
      description: Connect the subnet to the default tenant router.
      summary: Connect subnet to router
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-subnets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-subnets/{uuid}/disconnect/:
    post:
      operationId: openstack_subnets_disconnect
      description: Disconnect the subnet from the default tenant router.
      summary: Disconnect subnet from router
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-subnets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-subnets/{uuid}/pull/:
    post:
      operationId: openstack_subnets_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-subnets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/openstack-subnets/{uuid}/set_erred/:
    post:
      operationId: openstack_subnets_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-subnets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/openstack-subnets/{uuid}/set_ok/:
    post:
      operationId: openstack_subnets_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-subnets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/openstack-subnets/{uuid}/unlink/:
    post:
      operationId: openstack_subnets_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-subnets
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-tenants/:
    get:
      operationId: openstack_tenants_list
      description: Get a list of OpenStack tenants.
      summary: List tenants
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - availability_zone
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - default_volume_type_name
            - description
            - error_message
            - error_traceback
            - external_network_id
            - external_network_ref_name
            - external_network_ref_uuid
            - internal_network_id
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - quotas
            - resource_type
            - security_groups
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - skip_creation_of_default_router
            - skip_creation_of_default_subnet
            - state
            - subnet_cidr
            - url
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackTenant'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_tenants_count
      description: Get number of items in the collection matching the request parameters.
      summary: List tenants
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-tenants/{uuid}/:
    get:
      operationId: openstack_tenants_retrieve
      description: Retrieve details of a specific OpenStack tenant.
      summary: Get tenant details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - availability_zone
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - default_volume_type_name
            - description
            - error_message
            - error_traceback
            - external_network_id
            - external_network_ref_name
            - external_network_ref_uuid
            - internal_network_id
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - quotas
            - resource_type
            - security_groups
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - skip_creation_of_default_router
            - skip_creation_of_default_subnet
            - state
            - subnet_cidr
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackTenant'
          description: ''
    put:
      operationId: openstack_tenants_update
      description: Update an existing OpenStack tenant.
      summary: Update tenant
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackTenantRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackTenant'
          description: ''
    patch:
      operationId: openstack_tenants_partial_update
      description: Update specific fields of an OpenStack tenant.
      summary: Partially update tenant
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOpenStackTenantRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackTenant'
          description: ''
  /api/openstack-tenants/{uuid}/backend_instances/:
    get:
      operationId: openstack_tenants_backend_instances_list
      description: Return a list of volumes from backend
      summary: List backend instances
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackBackendInstance'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/openstack-tenants/{uuid}/backend_volumes/:
    get:
      operationId: openstack_tenants_backend_volumes_list
      description: Return a list of volumes from backend
      summary: List backend volumes
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackBackendVolumes'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/openstack-tenants/{uuid}/change_password/:
    post:
      operationId: openstack_tenants_change_password
      description: Change password for tenant user
      summary: Change tenant user password
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackTenantChangePasswordRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-tenants/{uuid}/create_floating_ip/:
    post:
      operationId: openstack_tenants_create_floating_ip
      description: Create floating IP for tenant
      summary: Create floating IP for tenant
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackFloatingIPRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackFloatingIP'
          description: ''
  /api/openstack-tenants/{uuid}/create_network/:
    post:
      operationId: openstack_tenants_create_network
      description: Create network for tenant
      summary: Create network for tenant
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackNetworkRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackNetwork'
          description: ''
  /api/openstack-tenants/{uuid}/create_security_group/:
    post:
      operationId: openstack_tenants_create_security_group
      description: Create a security group for the tenant.
      summary: Create security group
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackSecurityGroupRequest'
            examples:
              Openstack-tenant-create-security-group:
                value:
                  name: Security group name
                  description: description
                  rules:
                  - protocol: tcp
                    from_port: 1
                    to_port: 10
                    cidr: 10.1.1.0/24
                  - protocol: udp
                    from_port: 10
                    to_port: 8000
                    cidr: 10.1.1.0/24
                summary: openstack-tenant-create-security-group
                description: Example of creating a security group with rules
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackSecurityGroup'
          description: ''
  /api/openstack-tenants/{uuid}/create_server_group/:
    post:
      operationId: openstack_tenants_create_server_group
      description: Create a new server group for the tenant.
      summary: Create server group
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackServerGroupRequest'
            examples:
              Openstack-tenant-create-server-group:
                value:
                  name: Server group name
                  policy: affinity
                summary: openstack-tenant-create-server-group
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackServerGroup'
          description: ''
  /api/openstack-tenants/{uuid}/pull/:
    post:
      operationId: openstack_tenants_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/openstack-tenants/{uuid}/pull_floating_ips/:
    post:
      operationId: openstack_tenants_pull_floating_ips
      description: Trigger job to pull floating IPs from remote VPC
      summary: Pull floating IPs
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          description: No response body
  /api/openstack-tenants/{uuid}/pull_quotas/:
    post:
      operationId: openstack_tenants_pull_quotas
      description: It triggers celery job to pull quotas from remote VPC
      summary: Pull tenant quotas
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-tenants/{uuid}/pull_security_groups/:
    post:
      operationId: openstack_tenants_pull_security_groups
      description: Trigger job to pull security groups from remote VPC
      summary: Pull security groups
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackTenant'
          description: ''
  /api/openstack-tenants/{uuid}/pull_server_groups/:
    post:
      operationId: openstack_tenants_pull_server_groups
      description: Trigger job to pull server groups from remote VPC
      summary: Pull server groups
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackTenant'
          description: ''
  /api/openstack-tenants/{uuid}/push_security_groups/:
    post:
      operationId: openstack_tenants_push_security_groups
      description: |2-

                * Security groups with UUIDs are updated.
                * Security groups without UUIDs are created.
                * Security groups existing in the tenant but not present in the request are deleted.
                * Rules for created/updated security groups are replaced.

                To reference a remote group within a rule, use 'remote_group_name' field.
      summary: Batch update security groups for a tenant.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TenantSecurityGroupUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-tenants/{uuid}/set_erred/:
    post:
      operationId: openstack_tenants_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/openstack-tenants/{uuid}/set_ok/:
    post:
      operationId: openstack_tenants_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/openstack-tenants/{uuid}/set_quotas/:
    post:
      operationId: openstack_tenants_set_quotas
      description: |
        A quota can be set for a particular tenant. Only staff users and service provider owners/managers can do that.
        In order to set quota submit POST request to /api/openstack-tenants/<uuid>/set_quotas/.
        The quota values are propagated to the backend.

        The following quotas are supported. All values are expected to be integers:

        - instances - maximal number of created instances.
        - ram - maximal size of ram for allocation. In MiB_.
        - storage - maximal size of storage for allocation. In MiB_.
        - vcpu - maximal number of virtual cores for allocation.
        - security_group_count - maximal number of created security groups.
        - security_group_rule_count - maximal number of created security groups rules.
        - volumes - maximal number of created volumes.
        - snapshots - maximal number of created snapshots.

        It is possible to update quotas by one or by submitting all the fields in one request.
        Waldur will attempt to update the provided quotas. Please note, that if provided quotas are
        conflicting with the backend (e.g. requested number of instances is below of the already existing ones),
        some quotas might not be applied.

        .. _MiB: http://en.wikipedia.org/wiki/Mebibyte

        Response code of a successful request is **202 ACCEPTED**.
        In case tenant is in a non-stable status, the response would be **409 CONFLICT**.
        In this case REST client is advised to repeat the request after some time.
        On successful completion the task will synchronize quotas with the backend.
      summary: Set tenant quotas
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackTenantQuotaRequest'
            examples:
              Openstack-tenant-set-quotas:
                value:
                  instances: 30
                  ram: 100000
                  storage: 1000000
                  vcpu: 30
                  security_group_count: 100
                  security_group_rule_count: 100
                  volumes: 10
                  snapshots: 20
                summary: openstack-tenant-set-quotas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackTenantQuota'
          description: ''
  /api/openstack-tenants/{uuid}/unlink/:
    post:
      operationId: openstack_tenants_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-tenants
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack-volume-availability-zones/:
    get:
      operationId: openstack_volume_availability_zones_list
      description: Get a list of volume availability zones.
      summary: List volume availability zones
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-volume-availability-zones
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackVolumeAvailabilityZone'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_volume_availability_zones_count
      description: Get number of items in the collection matching the request parameters.
      summary: List volume availability zones
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-volume-availability-zones
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-volume-availability-zones/{uuid}/:
    get:
      operationId: openstack_volume_availability_zones_retrieve
      description: Retrieve details of a specific volume availability zone.
      summary: Get volume availability zone details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volume-availability-zones
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackVolumeAvailabilityZone'
          description: ''
  /api/openstack-volume-types/:
    get:
      operationId: openstack_volume_types_list
      description: Get a list of available volume types.
      summary: List volume types
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-volume-types
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackVolumeType'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_volume_types_count
      description: Get number of items in the collection matching the request parameters.
      summary: List volume types
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      tags:
      - openstack-volume-types
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-volume-types/{uuid}/:
    get:
      operationId: openstack_volume_types_retrieve
      description: Retrieve details of a specific volume type.
      summary: Get volume type details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volume-types
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackVolumeType'
          description: ''
  /api/openstack-volume-types/names/:
    get:
      operationId: openstack_volume_types_names_retrieve
      description: Return a list of unique volume type names.
      summary: List unique volume type names
      tags:
      - openstack-volume-types
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
          description: ''
    head:
      operationId: openstack_volume_types_names_count
      description: Get number of items in the collection matching the request parameters.
      summary: List unique volume type names
      tags:
      - openstack-volume-types
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-volumes/:
    get:
      operationId: openstack_volumes_list
      description: Get a list of volumes.
      summary: List volumes
      parameters:
      - in: query
        name: attach_instance_uuid
        schema:
          type: string
          format: uuid
        description: Filter for attachment to instance UUID
      - in: query
        name: availability_zone_name
        schema:
          type: string
        description: Availability zone name
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - action
            - action_details
            - availability_zone
            - availability_zone_name
            - backend_id
            - bootable
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - device
            - error_message
            - error_traceback
            - extend_enabled
            - image
            - image_metadata
            - image_name
            - instance
            - instance_marketplace_uuid
            - instance_name
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - metadata
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - source_snapshot
            - state
            - tenant
            - tenant_uuid
            - type
            - type_name
            - url
            - uuid
      - in: query
        name: instance
        schema:
          type: string
        description: Instance URL
      - in: query
        name: instance_uuid
        schema:
          type: string
          format: uuid
        description: Instance UUID
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: runtime_state
        schema:
          type: string
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: snapshot
        schema:
          type: string
        description: Snapshot URL
      - in: query
        name: snapshot_uuid
        schema:
          type: string
          format: uuid
        description: Snapshot UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OpenStackVolume'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: openstack_volumes_count
      description: Get number of items in the collection matching the request parameters.
      summary: List volumes
      parameters:
      - in: query
        name: attach_instance_uuid
        schema:
          type: string
          format: uuid
        description: Filter for attachment to instance UUID
      - in: query
        name: availability_zone_name
        schema:
          type: string
        description: Availability zone name
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: instance
        schema:
          type: string
        description: Instance URL
      - in: query
        name: instance_uuid
        schema:
          type: string
          format: uuid
        description: Instance UUID
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: runtime_state
        schema:
          type: string
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: snapshot
        schema:
          type: string
        description: Snapshot URL
      - in: query
        name: snapshot_uuid
        schema:
          type: string
          format: uuid
        description: Snapshot UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: tenant
        schema:
          type: string
        description: Tenant URL
      - in: query
        name: tenant_uuid
        schema:
          type: string
          format: uuid
        description: Tenant UUID
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - openstack-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-volumes/{uuid}/:
    get:
      operationId: openstack_volumes_retrieve
      description: Retrieve details of a specific volume.
      summary: Get volume details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - action
            - action_details
            - availability_zone
            - availability_zone_name
            - backend_id
            - bootable
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - device
            - error_message
            - error_traceback
            - extend_enabled
            - image
            - image_metadata
            - image_name
            - instance
            - instance_marketplace_uuid
            - instance_name
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - metadata
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - source_snapshot
            - state
            - tenant
            - tenant_uuid
            - type
            - type_name
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackVolume'
          description: ''
    put:
      operationId: openstack_volumes_update
      description: Update an existing volume.
      summary: Update volume
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volumes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackVolumeRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackVolume'
          description: ''
    patch:
      operationId: openstack_volumes_partial_update
      description: Update specific fields of a volume.
      summary: Partially update volume
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volumes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOpenStackVolumeRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackVolume'
          description: ''
  /api/openstack-volumes/{uuid}/attach/:
    post:
      operationId: openstack_volumes_attach
      description: Attach volume to instance
      summary: Attach volume to instance
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volumes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VolumeAttachRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-volumes/{uuid}/detach/:
    post:
      operationId: openstack_volumes_detach
      description: Detach instance from volume
      summary: Detach volume from instance
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-volumes/{uuid}/extend/:
    post:
      operationId: openstack_volumes_extend
      description: Increase volume size
      summary: Extend volume size
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volumes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackVolumeExtendRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-volumes/{uuid}/pull/:
    post:
      operationId: openstack_volumes_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/openstack-volumes/{uuid}/retype/:
    post:
      operationId: openstack_volumes_retype
      description: Retype detached volume
      summary: Change volume type
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volumes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackVolumeRetypeRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/openstack-volumes/{uuid}/set_erred/:
    post:
      operationId: openstack_volumes_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volumes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/openstack-volumes/{uuid}/set_ok/:
    post:
      operationId: openstack_volumes_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/openstack-volumes/{uuid}/snapshot/:
    post:
      operationId: openstack_volumes_snapshot
      description: Create snapshot from volume
      summary: Create volume snapshot
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volumes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackSnapshotRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenStackSnapshot'
          description: ''
  /api/openstack-volumes/{uuid}/unlink/:
    post:
      operationId: openstack_volumes_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - openstack-volumes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack/discovery/:
    get:
      operationId: openstack_discovery_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - openstack
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
    post:
      operationId: openstack_discovery_create
      tags:
      - openstack
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          description: No response body
  /api/openstack/discovery/{id}/:
    get:
      operationId: openstack_discovery_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Service provider.
        required: true
      tags:
      - openstack
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
    put:
      operationId: openstack_discovery_update
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Service provider.
        required: true
      tags:
      - openstack
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
    patch:
      operationId: openstack_discovery_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Service provider.
        required: true
      tags:
      - openstack
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
    delete:
      operationId: openstack_discovery_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this Service provider.
        required: true
      tags:
      - openstack
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/openstack/discovery/discover_external_networks/:
    post:
      operationId: openstack_discovery_discover_external_networks
      description: Discover available external networks.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - openstack
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverExternalNetworksRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExternalNetworkResponse'
                description: ''
          description: ''
  /api/openstack/discovery/discover_flavors/:
    post:
      operationId: openstack_discovery_discover_flavors
      description: Discover available flavors.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - openstack
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverFlavorsRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlavorResponse'
                description: ''
          description: ''
  /api/openstack/discovery/discover_instance_availability_zones/:
    post:
      operationId: openstack_discovery_discover_instance_availability_zones
      description: Discover available Nova instance availability zones.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - openstack
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverInstanceAvailabilityZonesRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AvailabilityZoneResponse'
                description: ''
          description: ''
  /api/openstack/discovery/discover_volume_availability_zones/:
    post:
      operationId: openstack_discovery_discover_volume_availability_zones
      description: Discover available Cinder volume availability zones.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - openstack
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverVolumeAvailabilityZonesRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AvailabilityZoneResponse'
                description: ''
          description: ''
  /api/openstack/discovery/discover_volume_types/:
    post:
      operationId: openstack_discovery_discover_volume_types
      description: Discover available volume types.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - openstack
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverVolumeTypesRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VolumeTypeResponse'
                description: ''
          description: ''
  /api/openstack/discovery/preview_service_attributes/:
    post:
      operationId: openstack_discovery_preview_service_attributes
      description: Build service_attributes and plugin_options from selected values.
      tags:
      - openstack
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PreviewServiceAttributesRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceAttributesPreview'
          description: ''
  /api/openstack/discovery/validate_credentials/:
    post:
      operationId: openstack_discovery_validate_credentials
      description: Validate OpenStack credentials without saving them.
      tags:
      - openstack
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenStackCredentialsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialsValidationResponse'
          description: ''
  /api/organization-groups/:
    get:
      operationId: organization_groups_list
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent
        schema:
          type: string
          format: uuid
        description: Parent UUID
      tags:
      - organization-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrganizationGroup'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: organization_groups_create
      tags:
      - organization-groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationGroupRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationGroup'
          description: ''
    head:
      operationId: organization_groups_count
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: parent
        schema:
          type: string
          format: uuid
        description: Parent UUID
      tags:
      - organization-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/organization-groups/{uuid}/:
    get:
      operationId: organization_groups_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - organization-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationGroup'
          description: ''
    put:
      operationId: organization_groups_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - organization-groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationGroupRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationGroup'
          description: ''
    patch:
      operationId: organization_groups_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - organization-groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedOrganizationGroupRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationGroup'
          description: ''
    delete:
      operationId: organization_groups_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - organization-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/override-settings/:
    get:
      operationId: override_settings_retrieve
      description: Returns all settings that can be overridden in the database via
        the Constance backend. Requires admin permissions.
      summary: Get all overridable settings
      tags:
      - override-settings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConstanceSettings'
          description: ''
    post:
      operationId: override_settings
      description: Updates one or more settings in the database via the Constance
        backend. Requires admin permissions.
      summary: Update overridable settings
      tags:
      - override-settings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConstanceSettingsRequest'
            examples:
              EnableMarketplaceAndSetACustomTitle:
                value:
                  WALDUR_MARKETPLACE_ENABLED: true
                  SITE_NAME: My Custom Cloud Portal
                summary: An example of updating multiple settings at once.
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ConstanceSettingsRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ConstanceSettingsRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/payment-profiles/:
    get:
      operationId: payment_profiles_list
      parameters:
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -is_active
            - -name
            - -payment_type
            - is_active
            - name
            - payment_type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: string
      - in: query
        name: organization_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: payment_type
        schema:
          type: array
          items:
            type: string
            enum:
            - fixed_price
            - invoices
            - payment_gw_monthly
        explode: true
        style: form
      tags:
      - payment-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentProfile'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: payment_profiles_create
      tags:
      - payment-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentProfileRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentProfile'
          description: ''
    head:
      operationId: payment_profiles_count
      parameters:
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -is_active
            - -name
            - -payment_type
            - is_active
            - name
            - payment_type
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: string
      - in: query
        name: organization_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: payment_type
        schema:
          type: array
          items:
            type: string
            enum:
            - fixed_price
            - invoices
            - payment_gw_monthly
        explode: true
        style: form
      tags:
      - payment-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/payment-profiles/{uuid}/:
    get:
      operationId: payment_profiles_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - payment-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentProfile'
          description: ''
    put:
      operationId: payment_profiles_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - payment-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentProfileRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentProfile'
          description: ''
    patch:
      operationId: payment_profiles_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - payment-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPaymentProfileRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentProfile'
          description: ''
    delete:
      operationId: payment_profiles_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - payment-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/payment-profiles/{uuid}/enable/:
    post:
      operationId: payment_profiles_enable
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - payment-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/payments/:
    get:
      operationId: payments_list
      parameters:
      - in: query
        name: date_of_payment
        schema:
          type: string
          format: date
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: profile
        schema:
          type: string
      - in: query
        name: profile_uuid
        schema:
          type: string
          format: uuid
      tags:
      - payments
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Payment'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: payments_create
      tags:
      - payments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PaymentRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PaymentRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
          description: ''
    head:
      operationId: payments_count
      parameters:
      - in: query
        name: date_of_payment
        schema:
          type: string
          format: date
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: profile
        schema:
          type: string
      - in: query
        name: profile_uuid
        schema:
          type: string
          format: uuid
      tags:
      - payments
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/payments/{uuid}/:
    get:
      operationId: payments_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - payments
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
          description: ''
    put:
      operationId: payments_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - payments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PaymentRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PaymentRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
          description: ''
    patch:
      operationId: payments_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - payments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPaymentRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPaymentRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPaymentRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
          description: ''
    delete:
      operationId: payments_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - payments
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/payments/{uuid}/link_to_invoice/:
    post:
      operationId: payments_link_to_invoice
      description: Link a payment to an invoice. Payment can be linked to an invoice
        only if they belong to the same customer.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - payments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkToInvoiceRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkToInvoice'
          description: ''
  /api/payments/{uuid}/unlink_from_invoice/:
    post:
      operationId: payments_unlink_from_invoice
      description: Unlink a payment from an invoice. Remove connection between payment
        and existing linked invoice.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - payments
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/project-credits/:
    get:
      operationId: project_credits_list
      parameters:
      - in: query
        name: customer_name
        schema:
          type: string
      - in: query
        name: customer_slug
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -end_date
            - -expected_consumption
            - -project_name
            - -value
            - end_date
            - expected_consumption
            - project_name
            - value
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_name
        schema:
          type: string
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: query
        schema:
          type: string
      tags:
      - project-credits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectCredit'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: project_credits_create
      tags:
      - project-credits
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectCreditRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectCredit'
          description: ''
    head:
      operationId: project_credits_count
      parameters:
      - in: query
        name: customer_name
        schema:
          type: string
      - in: query
        name: customer_slug
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -end_date
            - -expected_consumption
            - -project_name
            - -value
            - end_date
            - expected_consumption
            - project_name
            - value
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_name
        schema:
          type: string
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: query
        schema:
          type: string
      tags:
      - project-credits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/project-credits/{uuid}/:
    get:
      operationId: project_credits_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - project-credits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectCredit'
          description: ''
    put:
      operationId: project_credits_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - project-credits
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectCreditRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectCredit'
          description: ''
    patch:
      operationId: project_credits_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - project-credits
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProjectCreditRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectCredit'
          description: ''
    delete:
      operationId: project_credits_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - project-credits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/project-permissions-reviews/:
    get:
      operationId: project_permissions_reviews_list
      parameters:
      - in: query
        name: closed
        schema:
          type: string
          format: date-time
      - in: query
        name: is_pending
        schema:
          type: boolean
        description: Is pending
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -closed
            - -created
            - closed
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
        description: Reviewer UUID
      tags:
      - project-permissions-reviews
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectPermissionReview'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: project_permissions_reviews_count
      parameters:
      - in: query
        name: closed
        schema:
          type: string
          format: date-time
      - in: query
        name: is_pending
        schema:
          type: boolean
        description: Is pending
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -closed
            - -created
            - closed
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
        description: Reviewer UUID
      tags:
      - project-permissions-reviews
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/project-permissions-reviews/{uuid}/:
    get:
      operationId: project_permissions_reviews_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - project-permissions-reviews
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectPermissionReview'
          description: ''
  /api/project-permissions-reviews/{uuid}/close/:
    post:
      operationId: project_permissions_reviews_close
      description: Complete project permission review.
      summary: Close project permission review
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - project-permissions-reviews
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/project-quotas/:
    get:
      operationId: project_quotas_list
      description: List project quotas.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - project-quotas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectQuotas'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: project_quotas_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - project-quotas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/project-types/:
    get:
      operationId: project_types_list
      description: Retrieve a list of available project types.
      summary: List project types
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - project-types
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectType'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: project_types_count
      description: Get number of items in the collection matching the request parameters.
      summary: List project types
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - project-types
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/project-types/{uuid}/:
    get:
      operationId: project_types_retrieve
      description: Fetch details of a specific project type by its UUID.
      summary: Retrieve project type details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - project-types
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectType'
          description: ''
  /api/projects/:
    get:
      operationId: projects_list
      description: Retrieve a list of projects. The list is filtered based on the
        user's permissions. By default, only active projects are shown.
      summary: List projects
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: can_admin
        schema:
          type: boolean
        description: Return a list of projects where current user is admin.
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Return a list of projects where current user is manager or a
          customer owner.
      - in: query
        name: conceal_finished_projects
        schema:
          type: boolean
        description: Conceal finished projects
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - billing_price_estimate
            - created
            - customer
            - customer_abbreviation
            - customer_display_billing_info_in_projects
            - customer_name
            - customer_native_name
            - customer_slug
            - customer_uuid
            - description
            - end_date
            - end_date_requested_by
            - grace_period_days
            - image
            - is_industry
            - is_removed
            - kind
            - marketplace_resource_count
            - max_service_accounts
            - name
            - oecd_fos_2007_code
            - oecd_fos_2007_label
            - project_credit
            - resources_count
            - slug
            - staff_notes
            - start_date
            - termination_metadata
            - type
            - type_name
            - type_uuid
            - url
            - user_affiliations
            - user_email_patterns
            - user_identity_sources
            - uuid
      - in: query
        name: include_terminated
        schema:
          type: boolean
        description: Include soft-deleted (terminated) projects. Only available to
          staff and support users, or users with organizational roles who can see
          their terminated projects.
      - in: query
        name: is_removed
        schema:
          type: boolean
        description: Is removed
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -customer_abbreviation
            - -customer_name
            - -customer_native_name
            - -end_date
            - -estimated_cost
            - -name
            - -start_date
            - created
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - end_date
            - estimated_cost
            - name
            - start_date
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, slug, UUID, backend ID or resource effective
          ID
      - in: query
        name: slug
        schema:
          type: string
        description: Slug
      tags:
      - projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: projects_create
      description: A new project can be created by users with staff privilege (is_staff=True)
        or customer owners. Project resource quota is optional.
      summary: Create a new project
      tags:
      - projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectRequest'
            examples:
              CreateProject:
                value:
                  name: Project A
                  customer: http://example.com/api/customers/6c9b01c251c24174a6691a1f894fae31/
                summary: Create project
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ProjectRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ProjectRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: ''
    head:
      operationId: projects_count
      description: Get number of items in the collection matching the request parameters.
      summary: List projects
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: can_admin
        schema:
          type: boolean
        description: Return a list of projects where current user is admin.
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Return a list of projects where current user is manager or a
          customer owner.
      - in: query
        name: conceal_finished_projects
        schema:
          type: boolean
        description: Conceal finished projects
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: customer
        schema:
          type: array
          items:
            type: string
            format: uuid
        description: Multiple values may be separated by commas.
        explode: false
        style: form
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: include_terminated
        schema:
          type: boolean
        description: Include soft-deleted (terminated) projects. Only available to
          staff and support users, or users with organizational roles who can see
          their terminated projects.
      - in: query
        name: is_removed
        schema:
          type: boolean
        description: Is removed
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -customer_abbreviation
            - -customer_name
            - -customer_native_name
            - -end_date
            - -estimated_cost
            - -name
            - -start_date
            - created
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - end_date
            - estimated_cost
            - name
            - start_date
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Filter by name, slug, UUID, backend ID or resource effective
          ID
      - in: query
        name: slug
        schema:
          type: string
        description: Slug
      tags:
      - projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/projects/{project_uuid}/other_users/:
    get:
      operationId: projects_other_users_list
      description: A list of users which can be added to the current project from
        other projects of the same customer.
      parameters:
      - in: query
        name: agreement_date
        schema:
          type: string
          format: date-time
        description: Agreement date after
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: date_joined
        schema:
          type: string
          format: date-time
        description: Date joined after
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: email
        schema:
          type: string
        description: Email
      - in: query
        name: full_name
        schema:
          type: string
        description: Full name
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: job_title
        schema:
          type: string
        description: Job title
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Date modified after
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: o
        schema:
          type: string
          enum:
          - concatenated_name
          - -concatenated_name
        description: Ordering. Sort by a combination of first name, last name, and
          username.
      - in: query
        name: organization
        schema:
          type: string
        description: Organization
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: phone_number
        schema:
          type: string
      - in: path
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the project
        required: true
      - in: query
        name: registration_method
        schema:
          type: string
      - in: query
        name: user_keyword
        schema:
          type: string
        description: User keyword
      - in: query
        name: username
        schema:
          type: string
        description: Username
      tags:
      - projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BasicUser'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/projects/{uuid}/:
    get:
      operationId: projects_retrieve
      description: Fetch the details of a specific project by its UUID. Users can
        access details of terminated projects they previously had access to.
      summary: Retrieve project details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - billing_price_estimate
            - created
            - customer
            - customer_abbreviation
            - customer_display_billing_info_in_projects
            - customer_name
            - customer_native_name
            - customer_slug
            - customer_uuid
            - description
            - end_date
            - end_date_requested_by
            - grace_period_days
            - image
            - is_industry
            - is_removed
            - kind
            - marketplace_resource_count
            - max_service_accounts
            - name
            - oecd_fos_2007_code
            - oecd_fos_2007_label
            - project_credit
            - resources_count
            - slug
            - staff_notes
            - start_date
            - termination_metadata
            - type
            - type_name
            - type_uuid
            - url
            - user_affiliations
            - user_email_patterns
            - user_identity_sources
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: ''
    put:
      operationId: projects_update
      description: Update the details of a project. Requires project administrator
        or customer owner permissions.
      summary: Update project details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ProjectRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ProjectRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: ''
      x-permissions:
      - permission: PROJECT.UPDATE
        scopes:
        - '*'
        - customer
    patch:
      operationId: projects_partial_update
      description: Partially update the details of a project. Requires project administrator
        or customer owner permissions.
      summary: Partially update project details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProjectRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedProjectRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedProjectRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: ''
      x-permissions:
      - permission: PROJECT.UPDATE
        scopes:
        - '*'
        - customer
    delete:
      operationId: projects_destroy
      description: Delete a project. If the project has any active resources, the
        deletion request will fail with a 409 Conflict response. This action performs
        a soft-delete, and the project can be recovered later.
      summary: Delete a project
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: PROJECT.DELETE
        scopes:
        - customer
  /api/projects/{uuid}/add_user/:
    post:
      operationId: projects_add_user
      description: Assigns a specific role to a user within the current scope. An
        optional expiration time for the role can be set.
      summary: Grant a role to a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleCreateRequest'
            examples:
              GrantProjectAdminRoleUntilEndOfYear:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2024-12-31'
                summary: Grant project admin role until end of year
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleGrantResponse:
                  value:
                    expiration_time: '2024-12-31T00:00:00Z'
                  summary: Successful role grant response
          description: ''
        '400':
          description: Validation error, for example when trying to add a user to
            a terminated project.
  /api/projects/{uuid}/checklist/:
    get:
      operationId: projects_checklist_retrieve
      description: Get checklist with questions and existing answers.
      parameters:
      - in: query
        name: include_all
        schema:
          type: boolean
        description: 'If true, returns all questions including hidden ones (for dynamic
          form visibility). Default: false.'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
  /api/projects/{uuid}/completion_status/:
    get:
      operationId: projects_completion_status_retrieve
      description: Get checklist completion status.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistCompletion'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
  /api/projects/{uuid}/delete_user/:
    post:
      operationId: projects_delete_user
      description: Removes a specific role from a user within the current scope. This
        effectively revokes their permissions associated with that role.
      summary: Revoke a role from a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleDeleteRequest'
            examples:
              RevokeProjectAdminRoleFromUser:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                summary: Revoke project admin role from user
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: Role revoked successfully.
  /api/projects/{uuid}/list_users/:
    get:
      operationId: projects_list_users_list
      description: Retrieves a list of users who have a role within a specific scope
        (e.g., a project or an organization). The list can be filtered by user details
        or role.
      summary: List users and their roles in a scope
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - created_by_full_name
            - created_by_uuid
            - expiration_time
            - role_name
            - role_uuid
            - user_email
            - user_full_name
            - user_image
            - user_username
            - user_uuid
            - uuid
        description: Fields to include in response
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name
      - in: query
        name: native_name
        schema:
          type: string
        description: User native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: Ordering fields
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role
        schema:
          type: string
          format: uuid
        description: Role UUID or name
      - in: query
        name: search_string
        schema:
          type: string
        description: Search string for user
      - in: query
        name: user
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug
      - in: query
        name: user_url
        schema:
          type: string
        description: User URL
      - in: query
        name: username
        schema:
          type: string
        description: User username
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserRoleDetails'
                description: ''
              examples:
                ExampleUserRoleListResponse:
                  value:
                  - - uuid: a7e6b0a29a434d2889273c5240217a26
                      created: '2023-10-26T10:00:00Z'
                      expiration_time: '2024-12-31T23:59:59Z'
                      role_name: PROJECT.ADMIN
                      role_uuid: d8c2d5852d434937985392d24249b6d3
                      user_email: alice@example.com
                      user_full_name: Alice Smith
                      user_username: alice
                      user_uuid: 8f20242b638743b18a485f81ac685e13
                      user_image: null
                      created_by_full_name: Bob Johnson
                      created_by_uuid: b4e4c2f1a6f24a8d8e4c2f1a6f24a8d8
                  summary: Example user role list response
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/projects/{uuid}/move_project/:
    post:
      operationId: projects_move_project
      description: Moves a project and its associated resources to a different customer.
        You can choose whether to preserve existing project permissions for users.
        Terminated projects can also be moved.
      summary: Move project to another customer
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoveProjectRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: ''
  /api/projects/{uuid}/recover/:
    post:
      operationId: projects_recover
      description: Recovers a soft-deleted (terminated) project, making it active
        again. Provides options to restore previous team members automatically (staff-only)
        or send them new invitations.
      summary: Recover a soft-deleted project
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectRecoveryRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
          description: ''
      x-permissions:
      - permission: PROJECT.CREATE
        scopes:
        - customer
  /api/projects/{uuid}/stats/:
    get:
      operationId: projects_stats_retrieve
      description: Provides statistics about the resource usage (e.g., CPU, RAM, storage)
        for all resources within a project. Can be filtered to show usage for the
        current month only.
      summary: Get project resource usage statistics
      parameters:
      - in: query
        name: for_current_month
        schema:
          type: boolean
        description: If true, returns usage data for the current month only. Otherwise,
          returns total usage.
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentsUsageStats'
          description: ''
  /api/projects/{uuid}/submit_answers/:
    post:
      operationId: projects_submit_answers
      description: Submit checklist answers.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AnswerSubmitRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnswerSubmitResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: Validation error or no checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
  /api/projects/{uuid}/sync_user_roles/:
    post:
      operationId: projects_sync_user_roles
      description: Trigger user role sync for this project. Sends a notification to
        RabbitMQ that this project needs user role synchronization.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/projects/{uuid}/update_user/:
    post:
      operationId: projects_update_user
      description: Updates the expiration time for a user's existing role in the current
        scope. This is useful for extending or shortening the duration of a permission.
        To make a role permanent, set expiration_time to null.
      summary: Update a user's role expiration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - projects
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleUpdateRequest'
            examples:
              ExtendRoleUntilMid-2025:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2025-06-30'
                summary: Extend role until mid-2025
              MakeARolePermanent:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: null
                summary: Make a role permanent
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleUpdateResponse:
                  value:
                    expiration_time: '2025-06-30T00:00:00Z'
                  summary: Successful role update response
          description: ''
  /api/projects/checklist-template/:
    get:
      operationId: projects_checklist_template_retrieve
      description: Get checklist template for creating new objects.
      parameters:
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the parent object (e.g., customer UUID for new projects)
        required: true
      tags:
      - projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistTemplate'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Parent object not found
          description: ''
    head:
      operationId: projects_checklist_template_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the parent object (e.g., customer UUID for new projects)
        required: true
      tags:
      - projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/promotions-campaigns/:
    get:
      operationId: promotions_campaigns_list
      parameters:
      - in: query
        name: discount_type
        schema:
          type: string
      - in: query
        name: end_date
        schema:
          type: string
          format: date
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -end_date
            - -start_date
            - end_date
            - start_date
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
        description: Offering
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Search by name or coupon code
      - in: query
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: start_date
        schema:
          type: string
          format: date
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Draft
            - Terminated
        explode: true
        style: form
      tags:
      - promotions-campaigns
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Campaign'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: promotions_campaigns_create
      tags:
      - promotions-campaigns
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
          description: ''
    head:
      operationId: promotions_campaigns_count
      parameters:
      - in: query
        name: discount_type
        schema:
          type: string
      - in: query
        name: end_date
        schema:
          type: string
          format: date
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -end_date
            - -start_date
            - end_date
            - start_date
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
        description: Offering
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: query
        schema:
          type: string
        description: Search by name or coupon code
      - in: query
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: start_date
        schema:
          type: string
          format: date
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Active
            - Draft
            - Terminated
        explode: true
        style: form
      tags:
      - promotions-campaigns
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/promotions-campaigns/{uuid}/:
    get:
      operationId: promotions_campaigns_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - promotions-campaigns
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
          description: ''
    put:
      operationId: promotions_campaigns_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - promotions-campaigns
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Campaign'
          description: ''
      x-permissions:
      - permission: OFFERING.MANAGE_CAMPAIGN
        scopes:
        - service_provider.customer
    delete:
      operationId: promotions_campaigns_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - promotions-campaigns
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: OFFERING.MANAGE_CAMPAIGN
        scopes:
        - service_provider.customer
  /api/promotions-campaigns/{uuid}/activate/:
    post:
      operationId: promotions_campaigns_activate
      description: Activate campaign.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - promotions-campaigns
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
        '409':
          description: No response body
      x-permissions:
      - permission: OFFERING.MANAGE_CAMPAIGN
        scopes:
        - service_provider.customer
  /api/promotions-campaigns/{uuid}/orders/:
    get:
      operationId: promotions_campaigns_orders_list
      description: Return a list of orders for which the campaign is applied.
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - accepting_terms_of_service
            - activation_price
            - attachment
            - attributes
            - backend_id
            - callback_url
            - can_terminate
            - category_icon
            - category_title
            - category_uuid
            - completed_at
            - consumer_message
            - consumer_message_attachment
            - consumer_rejection_comment
            - consumer_reviewed_at
            - consumer_reviewed_by
            - consumer_reviewed_by_full_name
            - consumer_reviewed_by_username
            - cost
            - created
            - created_by_civil_number
            - created_by_email
            - created_by_full_name
            - created_by_organization
            - created_by_organization_registry_code
            - created_by_username
            - customer_name
            - customer_slug
            - customer_uuid
            - error_message
            - error_traceback
            - fixed_price
            - issue
            - limits
            - marketplace_resource_uuid
            - modified
            - new_cost_estimate
            - new_plan_name
            - new_plan_uuid
            - offering
            - offering_billable
            - offering_description
            - offering_image
            - offering_name
            - offering_plugin_options
            - offering_shared
            - offering_thumbnail
            - offering_type
            - offering_uuid
            - old_cost_estimate
            - old_plan_name
            - old_plan_uuid
            - order_subtype
            - output
            - plan
            - plan_description
            - plan_name
            - plan_unit
            - plan_uuid
            - project_description
            - project_name
            - project_slug
            - project_uuid
            - provider_message
            - provider_message_attachment
            - provider_message_url
            - provider_name
            - provider_rejection_comment
            - provider_reviewed_at
            - provider_reviewed_by
            - provider_reviewed_by_full_name
            - provider_reviewed_by_username
            - provider_slug
            - provider_uuid
            - request_comment
            - resource_name
            - resource_type
            - resource_uuid
            - slug
            - start_date
            - state
            - termination_comment
            - type
            - url
            - uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - promotions-campaigns
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrderDetails'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/promotions-campaigns/{uuid}/resources/:
    get:
      operationId: promotions_campaigns_resources_list
      description: Return a list of resources for which the campaign is applied.
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - attributes
            - available_actions
            - backend_id
            - backend_metadata
            - can_terminate
            - category_icon
            - category_title
            - category_uuid
            - created
            - creation_order
            - current_usages
            - customer_name
            - customer_slug
            - customer_uuid
            - description
            - downscaled
            - effective_id
            - end_date
            - end_date_requested_by
            - endpoints
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - last_sync
            - limit_usage
            - limits
            - modified
            - name
            - offering
            - offering_backend_id
            - offering_billable
            - offering_components
            - offering_description
            - offering_image
            - offering_name
            - offering_plugin_options
            - offering_shared
            - offering_slug
            - offering_state
            - offering_thumbnail
            - offering_type
            - offering_uuid
            - options
            - order_in_progress
            - parent_name
            - parent_offering_name
            - parent_offering_slug
            - parent_offering_uuid
            - parent_uuid
            - paused
            - plan
            - plan_description
            - plan_name
            - plan_unit
            - plan_uuid
            - project
            - project_description
            - project_end_date
            - project_end_date_requested_by
            - project_name
            - project_slug
            - project_uuid
            - provider_name
            - provider_slug
            - provider_uuid
            - renewal_date
            - report
            - resource_type
            - resource_uuid
            - restrict_member_access
            - scope
            - service_settings_uuid
            - slug
            - state
            - url
            - user_requires_reconsent
            - username
            - uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - promotions-campaigns
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Resource'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/promotions-campaigns/{uuid}/terminate/:
    post:
      operationId: promotions_campaigns_terminate
      description: Terminate campaign.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - promotions-campaigns
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
        '409':
          description: No response body
      x-permissions:
      - permission: OFFERING.MANAGE_CAMPAIGN
        scopes:
        - service_provider.customer
  /api/proposal-proposals/:
    get:
      operationId: proposal_proposals_list
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: created_by_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: my_proposals
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -round__call__name
            - -round__cutoff_time
            - -round__start_time
            - -slug
            - -state
            - created
            - round__call__name
            - round__cutoff_time
            - round__start_time
            - slug
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: round
        schema:
          type: string
          format: uuid
      - in: query
        name: round_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - accepted
            - canceled
            - draft
            - in_review
            - rejected
            - submitted
        explode: true
        style: form
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Proposal'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: proposal_proposals_create
      tags:
      - proposal-proposals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposalRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Proposal'
          description: ''
    head:
      operationId: proposal_proposals_count
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: created_by_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: my_proposals
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -round__call__name
            - -round__cutoff_time
            - -round__start_time
            - -slug
            - -state
            - created
            - round__call__name
            - round__cutoff_time
            - round__start_time
            - slug
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: round
        schema:
          type: string
          format: uuid
      - in: query
        name: round_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - accepted
            - canceled
            - draft
            - in_review
            - rejected
            - submitted
        explode: true
        style: form
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/proposal-proposals/{uuid}/:
    get:
      operationId: proposal_proposals_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Proposal'
          description: ''
    delete:
      operationId: proposal_proposals_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/proposal-proposals/{uuid}/add_user/:
    post:
      operationId: proposal_proposals_add_user
      description: Assigns a specific role to a user within the current scope. An
        optional expiration time for the role can be set.
      summary: Grant a role to a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleCreateRequest'
            examples:
              GrantProjectAdminRoleUntilEndOfYear:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2024-12-31'
                summary: Grant project admin role until end of year
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleGrantResponse:
                  value:
                    expiration_time: '2024-12-31T00:00:00Z'
                  summary: Successful role grant response
          description: ''
        '400':
          description: Validation error, for example when trying to add a user to
            a terminated project.
  /api/proposal-proposals/{uuid}/approve/:
    post:
      operationId: proposal_proposals_approve
      description: Approve a proposal.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposalApproveRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: CALL.APPROVE_AND_REJECT_PROPOSALS
        scopes:
        - round.call
        - round.call.manager
  /api/proposal-proposals/{uuid}/attach_document/:
    post:
      operationId: proposal_proposals_attach_document
      description: Attach document to proposal.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposalDocumentationRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ProposalDocumentationRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ProposalDocumentationRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/proposal-proposals/{uuid}/checklist/:
    get:
      operationId: proposal_proposals_checklist_retrieve
      description: Get checklist with questions and existing answers.
      parameters:
      - in: query
        name: include_all
        schema:
          type: boolean
        description: 'If true, returns all questions including hidden ones (for dynamic
          form visibility). Default: false.'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
  /api/proposal-proposals/{uuid}/checklist_review/:
    get:
      operationId: proposal_proposals_checklist_review_retrieve
      description: Get checklist with questions and existing answers including review
        logic (reviewers only).
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistReviewerResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
  /api/proposal-proposals/{uuid}/completion_review_status/:
    get:
      operationId: proposal_proposals_completion_review_status_retrieve
      description: Get checklist completion status with review triggers (reviewers
        only).
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistCompletionReviewer'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
  /api/proposal-proposals/{uuid}/completion_status/:
    get:
      operationId: proposal_proposals_completion_status_retrieve
      description: Get checklist completion status.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistCompletion'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE
        scopes: null
  /api/proposal-proposals/{uuid}/delete_user/:
    post:
      operationId: proposal_proposals_delete_user
      description: Removes a specific role from a user within the current scope. This
        effectively revokes their permissions associated with that role.
      summary: Revoke a role from a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleDeleteRequest'
            examples:
              RevokeProjectAdminRoleFromUser:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                summary: Revoke project admin role from user
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: Role revoked successfully.
  /api/proposal-proposals/{uuid}/detach_documents/:
    post:
      operationId: proposal_proposals_detach_documents
      description: Detach documents from proposal.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposalDetachDocumentsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/proposal-proposals/{uuid}/list_users/:
    get:
      operationId: proposal_proposals_list_users_list
      description: Retrieves a list of users who have a role within a specific scope
        (e.g., a project or an organization). The list can be filtered by user details
        or role.
      summary: List users and their roles in a scope
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - created_by_full_name
            - created_by_uuid
            - expiration_time
            - role_name
            - role_uuid
            - user_email
            - user_full_name
            - user_image
            - user_username
            - user_uuid
            - uuid
        description: Fields to include in response
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name
      - in: query
        name: native_name
        schema:
          type: string
        description: User native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: Ordering fields
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role
        schema:
          type: string
          format: uuid
        description: Role UUID or name
      - in: query
        name: search_string
        schema:
          type: string
        description: Search string for user
      - in: query
        name: user
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug
      - in: query
        name: user_url
        schema:
          type: string
        description: User URL
      - in: query
        name: username
        schema:
          type: string
        description: User username
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserRoleDetails'
                description: ''
              examples:
                ExampleUserRoleListResponse:
                  value:
                  - - uuid: a7e6b0a29a434d2889273c5240217a26
                      created: '2023-10-26T10:00:00Z'
                      expiration_time: '2024-12-31T23:59:59Z'
                      role_name: PROJECT.ADMIN
                      role_uuid: d8c2d5852d434937985392d24249b6d3
                      user_email: alice@example.com
                      user_full_name: Alice Smith
                      user_username: alice
                      user_uuid: 8f20242b638743b18a485f81ac685e13
                      user_image: null
                      created_by_full_name: Bob Johnson
                      created_by_uuid: b4e4c2f1a6f24a8d8e4c2f1a6f24a8d8
                  summary: Example user role list response
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/proposal-proposals/{uuid}/reject/:
    post:
      operationId: proposal_proposals_reject
      description: Reject a proposal.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposalApproveRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: CALL.APPROVE_AND_REJECT_PROPOSALS
        scopes:
        - round.call
        - round.call.manager
  /api/proposal-proposals/{uuid}/resources/:
    get:
      operationId: proposal_proposals_resources_list
      description: List resources for a proposal.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequestedResource'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: proposal_proposals_resources_set
      description: Create resource for a proposal.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestedResourceRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestedResource'
          description: ''
  /api/proposal-proposals/{uuid}/resources/{obj_uuid}/:
    get:
      operationId: proposal_proposals_resources_retrieve
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestedResource'
          description: ''
    put:
      operationId: proposal_proposals_resources_update
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-proposals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestedResourceRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestedResource'
          description: ''
    patch:
      operationId: proposal_proposals_resources_partial_update
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-proposals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRequestedResourceRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestedResource'
          description: ''
    delete:
      operationId: proposal_proposals_resources_destroy
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/proposal-proposals/{uuid}/submit/:
    post:
      operationId: proposal_proposals_submit
      description: Submit a proposal.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/proposal-proposals/{uuid}/submit_answers/:
    post:
      operationId: proposal_proposals_submit_answers
      description: Submit checklist answers.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AnswerSubmitRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProposalChecklistAnswerSubmitResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: Validation error or no checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Object not found
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE
        scopes: null
  /api/proposal-proposals/{uuid}/update_project_details/:
    post:
      operationId: proposal_proposals_update_project_details
      description: Update project details of a proposal.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposalUpdateProjectDetailsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/proposal-proposals/{uuid}/update_user/:
    post:
      operationId: proposal_proposals_update_user
      description: Updates the expiration time for a user's existing role in the current
        scope. This is useful for extending or shortening the duration of a permission.
        To make a role permanent, set expiration_time to null.
      summary: Update a user's role expiration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-proposals
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleUpdateRequest'
            examples:
              ExtendRoleUntilMid-2025:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2025-06-30'
                summary: Extend role until mid-2025
              MakeARolePermanent:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: null
                summary: Make a role permanent
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleUpdateResponse:
                  value:
                    expiration_time: '2025-06-30T00:00:00Z'
                  summary: Successful role update response
          description: ''
  /api/proposal-proposals/checklist-template/:
    get:
      operationId: proposal_proposals_checklist_template_retrieve
      description: Get checklist template for creating new objects.
      parameters:
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the parent object (e.g., customer UUID for new projects)
        required: true
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecklistTemplate'
          description: ''
        '400':
          content:
            application/json:
              schema:
                description: No checklist configured
          description: ''
        '404':
          content:
            application/json:
              schema:
                description: Parent object not found
          description: ''
    head:
      operationId: proposal_proposals_checklist_template_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: parent_uuid
        schema:
          type: string
          format: uuid
        description: UUID of the parent object (e.g., customer UUID for new projects)
        required: true
      tags:
      - proposal-proposals
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/proposal-protected-calls/:
    get:
      operationId: proposal_protected_calls_list
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_keyword
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - compliance_checklist
            - compliance_checklist_name
            - created
            - created_by
            - customer_name
            - customer_uuid
            - description
            - documents
            - end_date
            - external_url
            - fixed_duration_in_days
            - has_eligibility_restrictions
            - manager
            - manager_uuid
            - name
            - offerings
            - proposal_slug_template
            - reference_code
            - resource_templates
            - reviewer_identity_visible_to_submitters
            - reviews_visible_to_submitters
            - rounds
            - slug
            - start_date
            - state
            - url
            - user_affiliations
            - user_assurance_levels
            - user_email_patterns
            - user_identity_sources
            - user_nationalities
            - user_organization_types
            - uuid
      - in: query
        name: has_active_round
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -manager__customer__name
            - -name
            - created
            - manager__customer__name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: offerings_provider_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - active
            - archived
            - draft
        explode: true
        style: form
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProtectedCall'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: proposal_protected_calls_create
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectedCallRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectedCall'
          description: ''
    head:
      operationId: proposal_protected_calls_count
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_keyword
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: has_active_round
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -manager__customer__name
            - -name
            - created
            - manager__customer__name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: offerings_provider_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - active
            - archived
            - draft
        explode: true
        style: form
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/proposal-protected-calls/{uuid}/:
    get:
      operationId: proposal_protected_calls_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - compliance_checklist
            - compliance_checklist_name
            - created
            - created_by
            - customer_name
            - customer_uuid
            - description
            - documents
            - end_date
            - external_url
            - fixed_duration_in_days
            - has_eligibility_restrictions
            - manager
            - manager_uuid
            - name
            - offerings
            - proposal_slug_template
            - reference_code
            - resource_templates
            - reviewer_identity_visible_to_submitters
            - reviews_visible_to_submitters
            - rounds
            - slug
            - start_date
            - state
            - url
            - user_affiliations
            - user_assurance_levels
            - user_email_patterns
            - user_identity_sources
            - user_nationalities
            - user_organization_types
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectedCall'
          description: ''
    put:
      operationId: proposal_protected_calls_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectedCallRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectedCall'
          description: ''
    patch:
      operationId: proposal_protected_calls_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProtectedCallRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectedCall'
          description: ''
    delete:
      operationId: proposal_protected_calls_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/proposal-protected-calls/{uuid}/activate/:
    post:
      operationId: proposal_protected_calls_activate
      description: Activate a call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
          description: ''
  /api/proposal-protected-calls/{uuid}/add_user/:
    post:
      operationId: proposal_protected_calls_add_user
      description: Assigns a specific role to a user within the current scope. An
        optional expiration time for the role can be set.
      summary: Grant a role to a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleCreateRequest'
            examples:
              GrantProjectAdminRoleUntilEndOfYear:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2024-12-31'
                summary: Grant project admin role until end of year
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleGrantResponse:
                  value:
                    expiration_time: '2024-12-31T00:00:00Z'
                  summary: Successful role grant response
          description: ''
        '400':
          description: Validation error, for example when trying to add a user to
            a terminated project.
  /api/proposal-protected-calls/{uuid}/affinity-matrix/:
    get:
      operationId: proposal_protected_calls_affinity_matrix_retrieve
      description: Get affinity matrix for reviewer-proposal matching.
      parameters:
      - in: query
        name: scope
        schema:
          type: string
          enum:
          - all
          - pool
          - suggestions
        description: 'Filter by reviewer source: ''pool'' (accepted reviewers), ''suggestions''
          (suggested reviewers), or ''all'' (both). Default: ''pool'''
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AffinityMatrixResponse'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/applicant_attribute_config/:
    get:
      operationId: proposal_protected_calls_applicant_attribute_config_retrieve
      description: Get applicant attribute exposure configuration for this call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallApplicantAttributeConfig'
          description: ''
      x-permissions:
      - permission: CALL.UPDATE
        scopes: null
  /api/proposal-protected-calls/{uuid}/archive/:
    post:
      operationId: proposal_protected_calls_archive
      description: Archive a call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
          description: ''
  /api/proposal-protected-calls/{uuid}/attach_documents/:
    post:
      operationId: proposal_protected_calls_attach_documents
      description: Attach documents to call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallAttachDocumentsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/proposal-protected-calls/{uuid}/coi-configuration/:
    get:
      operationId: proposal_protected_calls_coi_configuration_retrieve
      description: Get COI configuration for this call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallCOIConfiguration'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
    patch:
      operationId: proposal_protected_calls_coi_configuration_partial_update
      description: Get COI configuration for this call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCallCOIConfigurationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallCOIConfiguration'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/compliance_overview/:
    get:
      operationId: proposal_protected_calls_compliance_overview_retrieve
      description: Get compliance overview for call manager showing all proposals
        and their compliance status.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallComplianceOverview'
          description: ''
      x-permissions:
      - permission: CALL.UPDATE
        scopes: null
  /api/proposal-protected-calls/{uuid}/compute-affinities/:
    post:
      operationId: proposal_protected_calls_compute_affinities
      description: Compute affinity scores for all reviewer-proposal pairs.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectedCallRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComputeAffinitiesResponse'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/conflict-summary/:
    get:
      operationId: proposal_protected_calls_conflict_summary_retrieve
      description: Get summary statistics of conflicts for this call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictSummaryResponse'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/conflicts/:
    get:
      operationId: proposal_protected_calls_conflicts_list
      description: List all conflicts of interest detected for this call.
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_keyword
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: has_active_round
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -manager__customer__name
            - -name
            - created
            - manager__customer__name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: offerings_provider_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - active
            - archived
            - draft
        explode: true
        style: form
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ConflictOfInterest'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/create-manual-assignment/:
    post:
      operationId: proposal_protected_calls_create_manual_assignment
      description: Create a manual assignment batch for a specific reviewer. This
        allows call managers to manually assign proposals to reviewers.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateManualAssignmentRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateManualAssignmentResponse'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/delete_applicant_attribute_config/:
    delete:
      operationId: proposal_protected_calls_delete_applicant_attribute_config_destroy
      description: Delete custom applicant attribute config, reverting to system defaults.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: CALL.UPDATE
        scopes: null
  /api/proposal-protected-calls/{uuid}/delete_user/:
    post:
      operationId: proposal_protected_calls_delete_user
      description: Removes a specific role from a user within the current scope. This
        effectively revokes their permissions associated with that role.
      summary: Revoke a role from a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleDeleteRequest'
            examples:
              RevokeProjectAdminRoleFromUser:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                summary: Revoke project admin role from user
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: Role revoked successfully.
  /api/proposal-protected-calls/{uuid}/detach_documents/:
    post:
      operationId: proposal_protected_calls_detach_documents
      description: Detach documents from call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallDetachDocumentsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/proposal-protected-calls/{uuid}/detect-conflicts/:
    post:
      operationId: proposal_protected_calls_detect_conflicts
      description: Trigger automated COI detection for all reviewer-proposal pairs.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerCOIDetectionRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/COIDetectionJob'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/generate-assignments/:
    post:
      operationId: proposal_protected_calls_generate_assignments
      description: Generate assignment batches for reviewers. Uses the affinity matrix
        and COI records to assign reviewers to proposals.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateAssignmentsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateAssignmentsResponse'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/generate-suggestions/:
    post:
      operationId: proposal_protected_calls_generate_suggestions
      description: Generate reviewer suggestions with configurable matching source.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateSuggestionsRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateSuggestionsResponse'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/invite-by-email/:
    post:
      operationId: proposal_protected_calls_invite_by_email
      description: Invite a reviewer by email address. Creates an invitation that
        requires the reviewer to create and publish a profile before accepting.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailInvitationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallReviewerPool'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/list_users/:
    get:
      operationId: proposal_protected_calls_list_users_list
      description: Retrieves a list of users who have a role within a specific scope
        (e.g., a project or an organization). The list can be filtered by user details
        or role.
      summary: List users and their roles in a scope
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - created_by_full_name
            - created_by_uuid
            - expiration_time
            - role_name
            - role_uuid
            - user_email
            - user_full_name
            - user_image
            - user_username
            - user_uuid
            - uuid
        description: Fields to include in response
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name
      - in: query
        name: native_name
        schema:
          type: string
        description: User native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: Ordering fields
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role
        schema:
          type: string
          format: uuid
        description: Role UUID or name
      - in: query
        name: search_string
        schema:
          type: string
        description: Search string for user
      - in: query
        name: user
        schema:
          type: string
          format: uuid
        description: User UUID
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug
      - in: query
        name: user_url
        schema:
          type: string
        description: User URL
      - in: query
        name: username
        schema:
          type: string
        description: User username
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserRoleDetails'
                description: ''
              examples:
                ExampleUserRoleListResponse:
                  value:
                  - - uuid: a7e6b0a29a434d2889273c5240217a26
                      created: '2023-10-26T10:00:00Z'
                      expiration_time: '2024-12-31T23:59:59Z'
                      role_name: PROJECT.ADMIN
                      role_uuid: d8c2d5852d434937985392d24249b6d3
                      user_email: alice@example.com
                      user_full_name: Alice Smith
                      user_username: alice
                      user_uuid: 8f20242b638743b18a485f81ac685e13
                      user_image: null
                      created_by_full_name: Bob Johnson
                      created_by_uuid: b4e4c2f1a6f24a8d8e4c2f1a6f24a8d8
                  summary: Example user role list response
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/proposal-protected-calls/{uuid}/matching-configuration/:
    get:
      operationId: proposal_protected_calls_matching_configuration_retrieve
      description: Get or update matching configuration for this call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MatchingConfiguration'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
    patch:
      operationId: proposal_protected_calls_matching_configuration_partial_update
      description: Get or update matching configuration for this call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedMatchingConfigurationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MatchingConfiguration'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/offerings/:
    get:
      operationId: proposal_protected_calls_offerings_list
      description: List offerings for a call.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: string
        description: Filter by state
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequestedOffering'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: proposal_protected_calls_offerings_set
      description: Create offering for a call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestedOfferingRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestedOffering'
          description: ''
  /api/proposal-protected-calls/{uuid}/offerings/{obj_uuid}/:
    get:
      operationId: proposal_protected_calls_offerings_retrieve
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestedOffering'
          description: ''
    put:
      operationId: proposal_protected_calls_offerings_update
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestedOfferingRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestedOffering'
          description: ''
    patch:
      operationId: proposal_protected_calls_offerings_partial_update
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRequestedOfferingRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestedOffering'
          description: ''
    delete:
      operationId: proposal_protected_calls_offerings_destroy
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/proposal-protected-calls/{uuid}/proposals/{proposal_uuid}/compliance-answers/:
    get:
      operationId: proposal_protected_calls_proposals_compliance_answers_list
      description: Get detailed compliance answers for a specific proposal (call managers
        only).
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_keyword
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: has_active_round
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -manager__customer__name
            - -name
            - created
            - manager__customer__name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: offerings_provider_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: proposal_uuid
        schema:
          type: string
        description: UUID of the proposal
        required: true
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - active
            - archived
            - draft
        explode: true
        style: form
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Answer'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
      x-permissions:
      - permission: CALL.UPDATE
        scopes: null
  /api/proposal-protected-calls/{uuid}/proposed-assignments/:
    get:
      operationId: proposal_protected_calls_proposed_assignments_list
      description: Get proposed reviewer-proposal assignments.
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_keyword
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: has_active_round
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -manager__customer__name
            - -name
            - created
            - manager__customer__name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: offerings_provider_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - active
            - archived
            - draft
        explode: true
        style: form
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProposedAssignment'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/resource_templates/:
    get:
      operationId: proposal_protected_calls_resource_templates_list
      description: List resource templates for a call.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CallResourceTemplate'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: proposal_protected_calls_resource_templates_set
      description: Create resource template for a call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallResourceTemplateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallResourceTemplate'
          description: ''
  /api/proposal-protected-calls/{uuid}/resource_templates/{obj_uuid}/:
    get:
      operationId: proposal_protected_calls_resource_templates_retrieve
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallResourceTemplate'
          description: ''
    put:
      operationId: proposal_protected_calls_resource_templates_update
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallResourceTemplateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallResourceTemplate'
          description: ''
    patch:
      operationId: proposal_protected_calls_resource_templates_partial_update
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCallResourceTemplateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallResourceTemplate'
          description: ''
    delete:
      operationId: proposal_protected_calls_resource_templates_destroy
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/proposal-protected-calls/{uuid}/review_proposal_compliance/:
    post:
      operationId: proposal_protected_calls_review_proposal_compliance
      description: Mark proposal compliance as reviewed by call manager.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallComplianceReviewRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
          description: ''
      x-permissions:
      - permission: CALL.UPDATE
        scopes: null
  /api/proposal-protected-calls/{uuid}/reviewer-pool/:
    get:
      operationId: proposal_protected_calls_reviewer_pool_list
      description: List reviewer pool members for a call.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CallReviewerPool'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
    post:
      operationId: proposal_protected_calls_invite_reviewers
      description: Invite reviewers to join the call's reviewer pool.
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_keyword
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: has_active_round
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -manager__customer__name
            - -name
            - created
            - manager__customer__name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: offerings_provider_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - active
            - archived
            - draft
        explode: true
        style: form
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerInvitationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CallReviewerPool'
                description: ''
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/rounds/:
    get:
      operationId: proposal_protected_calls_rounds_list
      description: List rounds for a call.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProtectedRound'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: proposal_protected_calls_rounds_set
      description: Create a round for a call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectedRoundRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectedRound'
          description: ''
  /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/:
    get:
      operationId: proposal_protected_calls_rounds_retrieve
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectedRound'
          description: ''
    put:
      operationId: proposal_protected_calls_rounds_update
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectedRoundRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectedRound'
          description: ''
    patch:
      operationId: proposal_protected_calls_rounds_partial_update
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProtectedRoundRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectedRound'
          description: ''
    delete:
      operationId: proposal_protected_calls_rounds_destroy
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/proposal-protected-calls/{uuid}/rounds/{obj_uuid}/close/:
    post:
      operationId: proposal_protected_calls_rounds_close
      parameters:
      - in: path
        name: obj_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProtectedCallRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProtectedCall'
          description: ''
  /api/proposal-protected-calls/{uuid}/send-all-assignments/:
    post:
      operationId: proposal_protected_calls_send_all_assignments
      description: Send all draft assignment batches for this call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendAllAssignmentBatchesRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendAllAssignmentBatchesResponse'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/send-invitations/:
    post:
      operationId: proposal_protected_calls_send_invitations
      description: Send invitations to all confirmed suggestions.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendInvitationsResponse'
          description: ''
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/suggestions/:
    get:
      operationId: proposal_protected_calls_suggestions_list
      description: List all reviewer suggestions for this call with affinity scores.
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_keyword
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: has_active_round
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -manager__customer__name
            - -name
            - created
            - manager__customer__name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: offerings_provider_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - active
            - archived
            - draft
        explode: true
        style: form
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReviewerSuggestion'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - manager
  /api/proposal-protected-calls/{uuid}/update_applicant_attribute_config/:
    post:
      operationId: proposal_protected_calls_update_applicant_attribute_config
      description: Create or update applicant attribute exposure configuration.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallApplicantAttributeConfigRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallApplicantAttributeConfig'
          description: ''
      x-permissions:
      - permission: CALL.UPDATE
        scopes: null
    patch:
      operationId: proposal_protected_calls_update_applicant_attribute_config_partial_update
      description: Create or update applicant attribute exposure configuration.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCallApplicantAttributeConfigRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CallApplicantAttributeConfig'
          description: ''
      x-permissions:
      - permission: CALL.UPDATE
        scopes: null
  /api/proposal-protected-calls/{uuid}/update_user/:
    post:
      operationId: proposal_protected_calls_update_user
      description: Updates the expiration time for a user's existing role in the current
        scope. This is useful for extending or shortening the duration of a permission.
        To make a role permanent, set expiration_time to null.
      summary: Update a user's role expiration
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-protected-calls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRoleUpdateRequest'
            examples:
              ExtendRoleUntilMid-2025:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: '2025-06-30'
                summary: Extend role until mid-2025
              MakeARolePermanent:
                value:
                  user: 8f20242b638743b18a485f81ac685e13
                  role: PROJECT.ADMIN
                  expiration_time: null
                summary: Make a role permanent
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRoleExpirationTime'
              examples:
                SuccessfulRoleUpdateResponse:
                  value:
                    expiration_time: '2025-06-30T00:00:00Z'
                  summary: Successful role update response
          description: ''
  /api/proposal-protected-calls/available_compliance_checklists/:
    get:
      operationId: proposal_protected_calls_available_compliance_checklists_list
      description: Get available compliance checklists for call creation/editing.
      parameters:
      - in: query
        name: checklist_type
        schema:
          type: string
        description: 'Filter by checklist type (default: proposal_compliance)'
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_keyword
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
        description: Customer UUID to check permissions for. Required to verify user
          has CREATE_CALL permission on that customer's call managing organization.
        required: true
      - in: query
        name: has_active_round
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -manager__customer__name
            - -name
            - created
            - manager__customer__name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: offerings_provider_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - active
            - archived
            - draft
        explode: true
        style: form
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AvailableChecklist'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: proposal_protected_calls_available_compliance_checklists_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: checklist_type
        schema:
          type: string
        description: 'Filter by checklist type (default: proposal_compliance)'
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_keyword
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
        description: Customer UUID to check permissions for. Required to verify user
          has CREATE_CALL permission on that customer's call managing organization.
        required: true
      - in: query
        name: has_active_round
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -manager__customer__name
            - -name
            - created
            - manager__customer__name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: offerings_provider_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - active
            - archived
            - draft
        explode: true
        style: form
      tags:
      - proposal-protected-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/proposal-public-calls/:
    get:
      operationId: proposal_public_calls_list
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_keyword
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - created
            - customer_name
            - customer_uuid
            - description
            - documents
            - end_date
            - external_url
            - fixed_duration_in_days
            - has_eligibility_restrictions
            - manager
            - manager_uuid
            - name
            - offerings
            - resource_templates
            - reviewer_identity_visible_to_submitters
            - reviews_visible_to_submitters
            - rounds
            - slug
            - start_date
            - state
            - url
            - uuid
      - in: query
        name: has_active_round
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -manager__customer__name
            - -name
            - created
            - manager__customer__name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: offerings_provider_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - active
            - archived
            - draft
        explode: true
        style: form
      tags:
      - proposal-public-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicCall'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: proposal_public_calls_count
      parameters:
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_keyword
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: has_active_round
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -manager__customer__name
            - -name
            - created
            - manager__customer__name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: offerings_provider_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - active
            - archived
            - draft
        explode: true
        style: form
      tags:
      - proposal-public-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      - {}
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/proposal-public-calls/{uuid}/:
    get:
      operationId: proposal_public_calls_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - created
            - customer_name
            - customer_uuid
            - description
            - documents
            - end_date
            - external_url
            - fixed_duration_in_days
            - has_eligibility_restrictions
            - manager
            - manager_uuid
            - name
            - offerings
            - resource_templates
            - reviewer_identity_visible_to_submitters
            - reviews_visible_to_submitters
            - rounds
            - slug
            - start_date
            - state
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-public-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCall'
          description: ''
  /api/proposal-public-calls/{uuid}/check_eligibility/:
    get:
      operationId: proposal_public_calls_check_eligibility_retrieve
      description: Check if the current user is eligible to submit proposals to this
        call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-public-calls
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EligibilityCheck'
          description: ''
  /api/proposal-requested-offerings/:
    get:
      operationId: proposal_requested_offerings_list
      parameters:
      - in: query
        name: call
        schema:
          type: string
        description: Call
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -call__name
            - -created
            - -offering__name
            - -state
            - call__name
            - created
            - offering__name
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
        description: Offering
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: organization_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - accepted
            - canceled
            - requested
        explode: true
        style: form
      tags:
      - proposal-requested-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProviderRequestedOffering'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: proposal_requested_offerings_count
      parameters:
      - in: query
        name: call
        schema:
          type: string
        description: Call
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -call__name
            - -created
            - -offering__name
            - -state
            - call__name
            - created
            - offering__name
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
        description: Offering
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: organization_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: provider_uuid
        schema:
          type: string
          format: uuid
        description: Provider
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - accepted
            - canceled
            - requested
        explode: true
        style: form
      tags:
      - proposal-requested-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/proposal-requested-offerings/{uuid}/:
    get:
      operationId: proposal_requested_offerings_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-requested-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderRequestedOffering'
          description: ''
  /api/proposal-requested-offerings/{uuid}/accept/:
    post:
      operationId: proposal_requested_offerings_accept
      description: Accept a requested offering.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-requested-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.ACCEPT_CALL_REQUEST
        scopes:
        - offering.customer
  /api/proposal-requested-offerings/{uuid}/cancel/:
    post:
      operationId: proposal_requested_offerings_cancel
      description: Cancel a requested offering.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-requested-offerings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      x-permissions:
      - permission: OFFERING.ACCEPT_CALL_REQUEST
        scopes:
        - offering.customer
  /api/proposal-requested-resources/:
    get:
      operationId: proposal_requested_resources_list
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -offering__name
            - -proposal__name
            - -resource__name
            - created
            - offering__name
            - proposal__name
            - resource__name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
        description: Offering
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: proposal
        schema:
          type: string
        description: Proposal
      - in: query
        name: proposal_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: resource
        schema:
          type: string
        description: Resource
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
      tags:
      - proposal-requested-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProviderRequestedResource'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: proposal_requested_resources_count
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -offering__name
            - -proposal__name
            - -resource__name
            - created
            - offering__name
            - proposal__name
            - resource__name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering
        schema:
          type: string
        description: Offering
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: proposal
        schema:
          type: string
        description: Proposal
      - in: query
        name: proposal_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: resource
        schema:
          type: string
        description: Resource
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
      tags:
      - proposal-requested-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/proposal-requested-resources/{uuid}/:
    get:
      operationId: proposal_requested_resources_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-requested-resources
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderRequestedResource'
          description: ''
  /api/proposal-reviews/:
    get:
      operationId: proposal_reviews_list
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -state
            - created
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: proposal
        schema:
          type: string
      - in: query
        name: proposal_name
        schema:
          type: string
      - in: query
        name: proposal_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: round_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - in_review
            - rejected
            - submitted
        explode: true
        style: form
      tags:
      - proposal-reviews
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProposalReview'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: proposal_reviews_create
      tags:
      - proposal-reviews
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposalReviewRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProposalReview'
          description: ''
    head:
      operationId: proposal_reviews_count
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -state
            - created
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: proposal
        schema:
          type: string
      - in: query
        name: proposal_name
        schema:
          type: string
      - in: query
        name: proposal_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: round_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - in_review
            - rejected
            - submitted
        explode: true
        style: form
      tags:
      - proposal-reviews
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/proposal-reviews/{uuid}/:
    get:
      operationId: proposal_reviews_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-reviews
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProposalReview'
          description: ''
    put:
      operationId: proposal_reviews_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-reviews
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProposalReviewRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProposalReview'
          description: ''
    patch:
      operationId: proposal_reviews_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-reviews
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedProposalReviewRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProposalReview'
          description: ''
    delete:
      operationId: proposal_reviews_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-reviews
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/proposal-reviews/{uuid}/reject/:
    post:
      operationId: proposal_reviews_reject
      description: Reject a review, changing its state to REJECTED.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-reviews
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/proposal-reviews/{uuid}/submit/:
    post:
      operationId: proposal_reviews_submit
      description: Submit a review, changing its state to SUBMITTED.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - proposal-reviews
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewSubmitRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/provider-invoice-items/:
    get:
      operationId: provider_invoice_items_list
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: invoice_month
        schema:
          type: integer
        description: Invoice month
      - in: query
        name: invoice_year
        schema:
          type: integer
        description: Invoice year
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -invoice_customer_name
            - -project_name
            - -resource_offering_name
            - -unit_price
            - invoice_customer_name
            - project_name
            - resource_offering_name
            - unit_price
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      tags:
      - provider-invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InvoiceItem'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: provider_invoice_items_count
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: invoice_month
        schema:
          type: integer
        description: Invoice month
      - in: query
        name: invoice_year
        schema:
          type: integer
        description: Invoice year
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -invoice_customer_name
            - -project_name
            - -resource_offering_name
            - -unit_price
            - invoice_customer_name
            - project_name
            - resource_offering_name
            - unit_price
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: offering_uuid
        schema:
          type: string
          format: uuid
        description: Offering UUID
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      tags:
      - provider-invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/provider-invoice-items/{id}/:
    get:
      operationId: provider_invoice_items_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this invoice item.
        required: true
      tags:
      - provider-invoice-items
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceItem'
          description: ''
  /api/public-maintenance-announcements/:
    get:
      operationId: public_maintenance_announcements_list
      description: Returns a paginated list of public maintenance announcements. Only
        announcements that are 'Scheduled', 'In progress', or 'Completed' are visible.
        This endpoint is accessible to unauthenticated users.
      summary: List public maintenance announcements
      parameters:
      - in: query
        name: maintenance_type
        schema:
          type: integer
        description: Maintenance type
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -scheduled_end
            - -scheduled_start
            - created
            - name
            - scheduled_end
            - scheduled_start
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scheduled_end_after
        schema:
          type: string
          format: date-time
        description: Scheduled end after
      - in: query
        name: scheduled_end_before
        schema:
          type: string
          format: date-time
        description: Scheduled end before
      - in: query
        name: scheduled_start_after
        schema:
          type: string
          format: date-time
        description: Scheduled start after
      - in: query
        name: scheduled_start_before
        schema:
          type: string
          format: date-time
        description: Scheduled start before
      - in: query
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        description: Service provider UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Cancelled
            - Completed
            - Draft
            - In progress
            - Scheduled
        description: |+
          Maintenance state

        explode: true
        style: form
      tags:
      - public-maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PublicMaintenanceAnnouncement'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: public_maintenance_announcements_count
      description: Get number of items in the collection matching the request parameters.
      summary: List public maintenance announcements
      parameters:
      - in: query
        name: maintenance_type
        schema:
          type: integer
        description: Maintenance type
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -name
            - -scheduled_end
            - -scheduled_start
            - created
            - name
            - scheduled_end
            - scheduled_start
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scheduled_end_after
        schema:
          type: string
          format: date-time
        description: Scheduled end after
      - in: query
        name: scheduled_end_before
        schema:
          type: string
          format: date-time
        description: Scheduled end before
      - in: query
        name: scheduled_start_after
        schema:
          type: string
          format: date-time
        description: Scheduled start after
      - in: query
        name: scheduled_start_before
        schema:
          type: string
          format: date-time
        description: Scheduled start before
      - in: query
        name: service_provider_uuid
        schema:
          type: string
          format: uuid
        description: Service provider UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - Cancelled
            - Completed
            - Draft
            - In progress
            - Scheduled
        description: |+
          Maintenance state

        explode: true
        style: form
      tags:
      - public-maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      - {}
      responses:
        '200':
          description: No response body
  /api/public-maintenance-announcements/{uuid}/:
    get:
      operationId: public_maintenance_announcements_retrieve
      description: Returns the details of a specific public maintenance announcement.
      summary: Retrieve a public maintenance announcement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - public-maintenance-announcements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      - {}
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicMaintenanceAnnouncement'
          description: ''
  /api/query/:
    post:
      operationId: query
      description: Execute a given SQL query against a read-only database replica.
        This is a powerful tool for diagnostics and reporting, but should be used
        with caution. Requires support user permissions.
      summary: Execute read-only SQL query
      tags:
      - query
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryRequest'
            examples:
              ListAllCustomers:
                value:
                  query: SELECT uuid, name, country FROM structure_customer LIMIT
                    10;
                summary: Example of a query to retrieve all customers.
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items: {}
              examples:
                SuccessfulResponse:
                  value:
                  - - a1b2c3d4-e5f6-a7b8-c9d0-e1f2a3b4c5d6
                    - Customer A
                    - US
                  - - b2c3d4e5-f6a7-b8c9-d0e1-f2a3b4c5d6a7
                    - Customer B
                    - DE
                  summary: Example response for a successful query.
          description: ''
        '400':
          description: No response body
  /api/rabbitmq-overview/:
    get:
      operationId: rabbitmq_overview_retrieve
      description: |-
        Returns global RabbitMQ cluster health and performance metrics.

        Includes:
        - **Cluster info**: Name, RabbitMQ version, Erlang version
        - **Message stats**: Publish/deliver/confirm/ack counts and rates (per second)
        - **Queue totals**: Total messages, ready messages, unacknowledged messages
        - **Object totals**: Connection, channel, exchange, queue, and consumer counts
        - **Listeners**: Active protocol listeners (AMQP, HTTP, etc.)

        Requires support user permissions.
      summary: Get RabbitMQ cluster overview statistics
      tags:
      - rabbitmq-overview
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RmqOverview'
          description: ''
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RmqStatsError'
          description: ''
  /api/rabbitmq-stats/:
    get:
      operationId: rabbitmq_stats_retrieve
      description: |-
        Provides statistics about RabbitMQ subscription queues.

        Returns information about all vhosts with their subscription queues, including:
        - Queue names and message counts
        - Waldur user and subscription information linked to each vhost
        - Total message counts per vhost and across all vhosts

        Requires support user permissions.
      summary: Get RabbitMQ subscription queue statistics
      tags:
      - rabbitmq-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RmqStatsResponse'
          description: ''
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RmqStatsError'
          description: ''
    post:
      operationId: rabbitmq_stats
      description: |-
        Purges messages from or deletes specified RabbitMQ subscription queues.

        **Purge operations** (remove messages, keep queue):
        - `vhost` and `queue_name`: Purge a specific queue
        - `vhost` and `queue_pattern`: Purge queues matching pattern (e.g., '*_resource')
        - `purge_all_subscription_queues`: Purge all subscription queues across all vhosts

        **Delete operations** (remove queue entirely):
        - `vhost`, `queue_name`, and `delete_queue=true`: Delete a specific queue
        - `vhost`, `queue_pattern`, and `delete_queue=true`: Delete queues matching pattern
        - `delete_all_subscription_queues`: Delete all subscription queues across all vhosts

        Requires staff permissions (more restrictive than viewing).
      summary: Purge or delete RabbitMQ subscription queues
      tags:
      - rabbitmq-stats
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RmqPurgeRequestRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RmqPurgeResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RmqStatsError'
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RmqStatsError'
          description: ''
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RmqStatsError'
          description: ''
  /api/rabbitmq-user-stats/:
    get:
      operationId: rabbitmq_user_stats_list
      description: |-
        Returns enriched connection data for all RabbitMQ users.

        For each user (which corresponds to an EventSubscription), provides:
        - Connection state (running, blocked, blocking)
        - Traffic statistics (bytes sent/received)
        - Connection timestamp
        - Client properties (product, version, platform)
        - Channel count and heartbeat timeout

        Requires support user permissions.
      summary: Get RabbitMQ user connection statistics
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - rabbitmq-user-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RmqEnrichedUserStatsItem'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/rabbitmq-vhost-stats/:
    get:
      operationId: rabbitmq_vhost_stats_list
      tags:
      - rabbitmq-vhost-stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RmqVHostStatsItem'
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/rancher-apps/:
    get:
      operationId: rancher_apps_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - answers
            - backend_id
            - catalog_name
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - external_url
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - namespace
            - namespace_name
            - project
            - project_name
            - project_uuid
            - rancher_project
            - rancher_project_name
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - template
            - template_name
            - url
            - uuid
            - version
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: namespace_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: template_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - rancher-apps
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RancherApplication'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: rancher_apps_create
      tags:
      - rancher-apps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherApplicationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherApplication'
          description: ''
    head:
      operationId: rancher_apps_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: namespace_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: template_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - rancher-apps
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-apps/{uuid}/:
    get:
      operationId: rancher_apps_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - answers
            - backend_id
            - catalog_name
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - external_url
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - namespace
            - namespace_name
            - project
            - project_name
            - project_uuid
            - rancher_project
            - rancher_project_name
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - template
            - template_name
            - url
            - uuid
            - version
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-apps
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherApplication'
          description: ''
    put:
      operationId: rancher_apps_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-apps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherApplicationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherApplication'
          description: ''
    patch:
      operationId: rancher_apps_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-apps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRancherApplicationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherApplication'
          description: ''
    delete:
      operationId: rancher_apps_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-apps
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/rancher-apps/{uuid}/pull/:
    post:
      operationId: rancher_apps_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-apps
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/rancher-apps/{uuid}/set_erred/:
    post:
      operationId: rancher_apps_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-apps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/rancher-apps/{uuid}/set_ok/:
    post:
      operationId: rancher_apps_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-apps
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/rancher-apps/{uuid}/unlink/:
    post:
      operationId: rancher_apps_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-apps
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/rancher-catalogs/:
    get:
      operationId: rancher_catalogs_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - rancher-catalogs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RancherCatalog'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: rancher_catalogs_create
      tags:
      - rancher-catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherCatalogCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherCatalogCreate'
          description: ''
    head:
      operationId: rancher_catalogs_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - rancher-catalogs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-catalogs/{uuid}/:
    get:
      operationId: rancher_catalogs_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-catalogs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherCatalog'
          description: ''
    put:
      operationId: rancher_catalogs_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherCatalogUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherCatalogUpdate'
          description: ''
    patch:
      operationId: rancher_catalogs_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRancherCatalogRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherCatalog'
          description: ''
    delete:
      operationId: rancher_catalogs_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-catalogs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/rancher-catalogs/{uuid}/refresh/:
    post:
      operationId: rancher_catalogs_refresh
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherCatalogRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherCatalog'
          description: ''
  /api/rancher-cluster-security-groups/:
    get:
      operationId: rancher_cluster_security_groups_list
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - rancher-cluster-security-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClusterSecurityGroup'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: rancher_cluster_security_groups_count
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - rancher-cluster-security-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-cluster-security-groups/{uuid}/:
    get:
      operationId: rancher_cluster_security_groups_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-cluster-security-groups
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterSecurityGroup'
          description: ''
    put:
      operationId: rancher_cluster_security_groups_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-cluster-security-groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterSecurityGroupRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterSecurityGroup'
          description: ''
    patch:
      operationId: rancher_cluster_security_groups_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-cluster-security-groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedClusterSecurityGroupRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterSecurityGroup'
          description: ''
  /api/rancher-cluster-templates/:
    get:
      operationId: rancher_cluster_templates_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - rancher-cluster-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RancherClusterTemplate'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: rancher_cluster_templates_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - rancher-cluster-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-cluster-templates/{uuid}/:
    get:
      operationId: rancher_cluster_templates_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-cluster-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherClusterTemplate'
          description: ''
  /api/rancher-clusters/:
    get:
      operationId: rancher_clusters_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - capacity
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - install_longhorn
            - is_limit_based
            - is_usage_based
            - kubernetes_version
            - management_security_group
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - nodes
            - project
            - project_name
            - project_uuid
            - public_ips
            - requested
            - resource_type
            - router_ips
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - ssh_public_key
            - state
            - tenant
            - tenant_uuid
            - url
            - uuid
            - vm_project
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - rancher-clusters
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RancherCluster'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: rancher_clusters_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - rancher-clusters
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-clusters/{uuid}/:
    get:
      operationId: rancher_clusters_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - capacity
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - install_longhorn
            - is_limit_based
            - is_usage_based
            - kubernetes_version
            - management_security_group
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - nodes
            - project
            - project_name
            - project_uuid
            - public_ips
            - requested
            - resource_type
            - router_ips
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - ssh_public_key
            - state
            - tenant
            - tenant_uuid
            - url
            - uuid
            - vm_project
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-clusters
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherCluster'
          description: ''
    put:
      operationId: rancher_clusters_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-clusters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherClusterRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherCluster'
          description: ''
    patch:
      operationId: rancher_clusters_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-clusters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRancherClusterRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherCluster'
          description: ''
  /api/rancher-clusters/{uuid}/create_management_security_group/:
    post:
      operationId: rancher_clusters_create_management_security_group
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-clusters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherClusterRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherCluster'
          description: ''
  /api/rancher-clusters/{uuid}/import_yaml/:
    post:
      operationId: rancher_clusters_import_yaml
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-clusters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherImportYamlRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherImportYaml'
          description: ''
  /api/rancher-clusters/{uuid}/pull/:
    post:
      operationId: rancher_clusters_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-clusters
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/rancher-clusters/{uuid}/set_erred/:
    post:
      operationId: rancher_clusters_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-clusters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/rancher-clusters/{uuid}/set_ok/:
    post:
      operationId: rancher_clusters_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-clusters
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/rancher-clusters/{uuid}/unlink/:
    post:
      operationId: rancher_clusters_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-clusters
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/rancher-hpas/:
    get:
      operationId: rancher_hpas_list
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: namespace_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: workload_uuid
        schema:
          type: string
          format: uuid
      tags:
      - rancher-hpas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RancherHPA'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: rancher_hpas_create
      tags:
      - rancher-hpas
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherHPARequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherHPA'
          description: ''
    head:
      operationId: rancher_hpas_count
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: namespace_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      - in: query
        name: workload_uuid
        schema:
          type: string
          format: uuid
      tags:
      - rancher-hpas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-hpas/{uuid}/:
    get:
      operationId: rancher_hpas_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-hpas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherHPA'
          description: ''
    put:
      operationId: rancher_hpas_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-hpas
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherHPARequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherHPA'
          description: ''
    patch:
      operationId: rancher_hpas_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-hpas
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRancherHPARequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherHPA'
          description: ''
    delete:
      operationId: rancher_hpas_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-hpas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/rancher-hpas/{uuid}/pull/:
    post:
      operationId: rancher_hpas_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-hpas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/rancher-hpas/{uuid}/set_erred/:
    post:
      operationId: rancher_hpas_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-hpas
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/rancher-hpas/{uuid}/set_ok/:
    post:
      operationId: rancher_hpas_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-hpas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/rancher-hpas/{uuid}/unlink/:
    post:
      operationId: rancher_hpas_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-hpas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/rancher-hpas/{uuid}/yaml/:
    get:
      operationId: rancher_hpas_yaml_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-hpas
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherHPA'
          description: ''
    put:
      operationId: rancher_hpas_yaml_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-hpas
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherHPARequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherHPA'
          description: ''
  /api/rancher-ingresses/:
    get:
      operationId: rancher_ingresses_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - namespace
            - namespace_name
            - project
            - project_name
            - project_uuid
            - rancher_project
            - rancher_project_name
            - resource_type
            - rules
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: namespace_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: rancher_project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - rancher-ingresses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RancherIngress'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: rancher_ingresses_create
      tags:
      - rancher-ingresses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherIngressRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherIngress'
          description: ''
    head:
      operationId: rancher_ingresses_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: namespace_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: rancher_project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - rancher-ingresses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-ingresses/{uuid}/:
    get:
      operationId: rancher_ingresses_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - namespace
            - namespace_name
            - project
            - project_name
            - project_uuid
            - rancher_project
            - rancher_project_name
            - resource_type
            - rules
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-ingresses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherIngress'
          description: ''
    put:
      operationId: rancher_ingresses_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-ingresses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherIngressRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherIngress'
          description: ''
    patch:
      operationId: rancher_ingresses_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-ingresses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRancherIngressRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherIngress'
          description: ''
    delete:
      operationId: rancher_ingresses_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-ingresses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/rancher-ingresses/{uuid}/pull/:
    post:
      operationId: rancher_ingresses_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-ingresses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/rancher-ingresses/{uuid}/set_erred/:
    post:
      operationId: rancher_ingresses_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-ingresses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/rancher-ingresses/{uuid}/set_ok/:
    post:
      operationId: rancher_ingresses_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-ingresses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/rancher-ingresses/{uuid}/unlink/:
    post:
      operationId: rancher_ingresses_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-ingresses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/rancher-ingresses/{uuid}/yaml/:
    get:
      operationId: rancher_ingresses_yaml_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - namespace
            - namespace_name
            - project
            - project_name
            - project_uuid
            - rancher_project
            - rancher_project_name
            - resource_type
            - rules
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-ingresses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherIngress'
          description: ''
    put:
      operationId: rancher_ingresses_yaml_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-ingresses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherIngressRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherIngress'
          description: ''
  /api/rancher-namespaces/:
    get:
      operationId: rancher_namespaces_list
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -cluster_name
            - -name
            - -project_name
            - cluster_name
            - name
            - project_name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - rancher-namespaces
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RancherNamespace'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: rancher_namespaces_count
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -cluster_name
            - -name
            - -project_name
            - cluster_name
            - name
            - project_name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - rancher-namespaces
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-namespaces/{uuid}/:
    get:
      operationId: rancher_namespaces_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-namespaces
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherNamespace'
          description: ''
  /api/rancher-nodes/:
    get:
      operationId: rancher_nodes_list
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - rancher-nodes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RancherNode'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: rancher_nodes_create
      tags:
      - rancher-nodes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherCreateNodeRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherCreateNode'
          description: ''
    head:
      operationId: rancher_nodes_count
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - rancher-nodes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-nodes/{uuid}/:
    get:
      operationId: rancher_nodes_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-nodes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherNode'
          description: ''
    delete:
      operationId: rancher_nodes_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-nodes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/rancher-nodes/{uuid}/console/:
    get:
      operationId: rancher_nodes_console_retrieve
      description: Returns console URL for the node.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-nodes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsoleUrl'
          description: ''
  /api/rancher-nodes/{uuid}/console_log/:
    get:
      operationId: rancher_nodes_console_log_retrieve
      description: Returns console log for the node.
      parameters:
      - in: query
        name: length
        schema:
          type: integer
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-nodes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: string
          description: ''
        '404':
          description: No response body
  /api/rancher-nodes/{uuid}/link_openstack/:
    post:
      operationId: rancher_nodes_link_openstack
      description: Links node to OpenStack instance.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-nodes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkOpenstackRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/rancher-nodes/{uuid}/pull/:
    post:
      operationId: rancher_nodes_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-nodes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/rancher-nodes/{uuid}/set_erred/:
    post:
      operationId: rancher_nodes_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-nodes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/rancher-nodes/{uuid}/set_ok/:
    post:
      operationId: rancher_nodes_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-nodes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/rancher-nodes/{uuid}/unlink/:
    post:
      operationId: rancher_nodes_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-nodes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/rancher-nodes/{uuid}/unlink_openstack/:
    post:
      operationId: rancher_nodes_unlink_openstack
      description: Unlinks node from OpenStack instance.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-nodes
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/rancher-projects/:
    get:
      operationId: rancher_projects_list
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - rancher-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RancherProject'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: rancher_projects_count
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - rancher-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-projects/{uuid}/:
    get:
      operationId: rancher_projects_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherProject'
          description: ''
  /api/rancher-projects/{uuid}/secrets/:
    get:
      operationId: rancher_projects_secrets_retrieve
      description: Returns project's secrets.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-projects
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherProject'
          description: ''
  /api/rancher-role-templates/:
    get:
      operationId: rancher_role_templates_list
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -name
            - -scope_type
            - name
            - scope_type
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope_type
        schema:
          type: string
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      tags:
      - rancher-role-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoleTemplate'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: rancher_role_templates_count
      parameters:
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -name
            - -scope_type
            - name
            - scope_type
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope_type
        schema:
          type: string
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      tags:
      - rancher-role-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-role-templates/{uuid}/:
    get:
      operationId: rancher_role_templates_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-role-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleTemplate'
          description: ''
  /api/rancher-services/:
    get:
      operationId: rancher_services_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - cluster_ip
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - namespace
            - namespace_name
            - project
            - project_name
            - project_uuid
            - resource_type
            - runtime_state
            - selector
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - target_workloads
            - url
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: namespace_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: rancher_project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - rancher-services
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RancherService'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: rancher_services_create
      tags:
      - rancher-services
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherServiceCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherServiceCreate'
          description: ''
    head:
      operationId: rancher_services_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: namespace_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: rancher_project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - rancher-services
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-services/{uuid}/:
    get:
      operationId: rancher_services_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - cluster_ip
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - namespace
            - namespace_name
            - project
            - project_name
            - project_uuid
            - resource_type
            - runtime_state
            - selector
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - target_workloads
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-services
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherService'
          description: ''
    put:
      operationId: rancher_services_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-services
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherServiceRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherService'
          description: ''
    patch:
      operationId: rancher_services_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-services
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRancherServiceRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherService'
          description: ''
    delete:
      operationId: rancher_services_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-services
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/rancher-services/{uuid}/pull/:
    post:
      operationId: rancher_services_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-services
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/rancher-services/{uuid}/set_erred/:
    post:
      operationId: rancher_services_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-services
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/rancher-services/{uuid}/set_ok/:
    post:
      operationId: rancher_services_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-services
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/rancher-services/{uuid}/unlink/:
    post:
      operationId: rancher_services_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-services
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/rancher-services/{uuid}/yaml/:
    get:
      operationId: rancher_services_yaml_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - cluster_ip
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - namespace
            - namespace_name
            - project
            - project_name
            - project_uuid
            - resource_type
            - runtime_state
            - selector
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - target_workloads
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-services
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherService'
          description: ''
    put:
      operationId: rancher_services_yaml_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-services
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherServiceRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherService'
          description: ''
  /api/rancher-template-versions/{template_uuid}/{version}/:
    get:
      operationId: rancher_template_versions_retrieve
      parameters:
      - in: path
        name: template_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      - in: path
        name: version
        schema:
          type: string
          pattern: ^[0-9.]+$
        required: true
      tags:
      - rancher-template-versions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateVersion'
          description: ''
  /api/rancher-templates/:
    get:
      operationId: rancher_templates_list
      parameters:
      - in: query
        name: catalog_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -catalog_name
            - -name
            - catalog_name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - rancher-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RancherTemplate'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: rancher_templates_count
      parameters:
      - in: query
        name: catalog_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -catalog_name
            - -name
            - catalog_name
            - name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - rancher-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-templates/{uuid}/:
    get:
      operationId: rancher_templates_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherTemplate'
          description: ''
  /api/rancher-users/:
    get:
      operationId: rancher_users_list
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
        description: Cluster UUID
      - in: query
        name: is_active
        schema:
          type: boolean
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: user_full_name
        schema:
          type: string
        description: User full name contains
      - in: query
        name: user_username
        schema:
          type: string
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      tags:
      - rancher-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RancherUser'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: rancher_users_count
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
        description: Cluster UUID
      - in: query
        name: is_active
        schema:
          type: boolean
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: user_full_name
        schema:
          type: string
        description: User full name contains
      - in: query
        name: user_username
        schema:
          type: string
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      tags:
      - rancher-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-users/{uuid}/:
    get:
      operationId: rancher_users_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherUser'
          description: ''
  /api/rancher-workloads/:
    get:
      operationId: rancher_workloads_list
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: namespace_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -cluster_name
            - -name
            - -namespace_name
            - -project_name
            - cluster_name
            - name
            - namespace_name
            - project_name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - rancher-workloads
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RancherWorkload'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: rancher_workloads_create
      tags:
      - rancher-workloads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherWorkloadRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherWorkload'
          description: ''
    head:
      operationId: rancher_workloads_count
      parameters:
      - in: query
        name: cluster_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: namespace_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -cluster_name
            - -name
            - -namespace_name
            - -project_name
            - cluster_name
            - name
            - namespace_name
            - project_name
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - rancher-workloads
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/rancher-workloads/{uuid}/:
    get:
      operationId: rancher_workloads_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-workloads
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherWorkload'
          description: ''
    put:
      operationId: rancher_workloads_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-workloads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherWorkloadRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherWorkload'
          description: ''
    patch:
      operationId: rancher_workloads_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-workloads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRancherWorkloadRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherWorkload'
          description: ''
    delete:
      operationId: rancher_workloads_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-workloads
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/rancher-workloads/{uuid}/redeploy/:
    post:
      operationId: rancher_workloads_redeploy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-workloads
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/rancher-workloads/{uuid}/yaml/:
    get:
      operationId: rancher_workloads_yaml_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-workloads
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherWorkload'
          description: ''
    put:
      operationId: rancher_workloads_yaml_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - rancher-workloads
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RancherWorkloadRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RancherWorkload'
          description: ''
  /api/remote-eduteams/:
    post:
      operationId: remote_eduteams
      description: Allows to pull user details from remote eduTEAMS instance.
      tags:
      - remote-eduteams
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoteEduteamsRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteEduteamsUUID'
          description: ''
  /api/remote-waldur-api/cancel_termination/{uuid}:
    post:
      operationId: remote_waldur_api_cancel_termination
      description: Cancel termination order
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/remote-waldur-api/import_offering/:
    post:
      operationId: remote_waldur_api_import_offering
      description: Create local offering from remote
      tags:
      - remote-waldur-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoteOfferingCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteOfferingCreateResponse'
          description: ''
  /api/remote-waldur-api/pull_offering_details/{uuid}/:
    post:
      operationId: remote_waldur_api_pull_offering_details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/remote-waldur-api/pull_offering_invoices/{uuid}/:
    post:
      operationId: remote_waldur_api_pull_offering_invoices
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/remote-waldur-api/pull_offering_orders/{uuid}/:
    post:
      operationId: remote_waldur_api_pull_offering_orders
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/remote-waldur-api/pull_offering_resources/{uuid}/:
    post:
      operationId: remote_waldur_api_pull_offering_resources
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/remote-waldur-api/pull_offering_robot_accounts/{uuid}/:
    post:
      operationId: remote_waldur_api_pull_offering_robot_accounts
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/remote-waldur-api/pull_offering_usage/{uuid}/:
    post:
      operationId: remote_waldur_api_pull_offering_usage
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/remote-waldur-api/pull_offering_users/{uuid}/:
    post:
      operationId: remote_waldur_api_pull_offering_users
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/remote-waldur-api/pull_order/{uuid}:
    post:
      operationId: remote_waldur_api_pull_order
      description: Schedule order pull task
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/remote-waldur-api/pull_resource_robot_accounts/{uuid}/:
    post:
      operationId: remote_waldur_api_pull_resource_robot_accounts
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/remote-waldur-api/push_project_data/{uuid}/:
    post:
      operationId: remote_waldur_api_push_project_data
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/remote-waldur-api/remote_categories/:
    post:
      operationId: remote_waldur_api_remote_categories
      description: List remote marketplace categories
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - remote-waldur-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoteCredentialsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MarketplaceCategory'
                description: ''
          description: ''
  /api/remote-waldur-api/remote_customers/:
    post:
      operationId: remote_waldur_api_remote_customers
      description: List remote customers owned by current user
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - remote-waldur-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoteCredentialsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RemoteCustomer'
                description: ''
          description: ''
  /api/remote-waldur-api/remote_resource_order_status/{resource_uuid}/:
    get:
      operationId: remote_waldur_api_remote_resource_order_status_retrieve
      description: Get remote order details
      parameters:
      - in: path
        name: resource_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteResourceOrder'
          description: ''
  /api/remote-waldur-api/remote_resource_status/{resource_uuid}/:
    get:
      operationId: remote_waldur_api_remote_resource_status_retrieve
      description: Get remote resource sync status
      parameters:
      - in: path
        name: resource_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteResourceSyncStatus'
          description: ''
  /api/remote-waldur-api/remote_resource_team_status/{resource_uuid}/:
    get:
      operationId: remote_waldur_api_remote_resource_team_status_list
      description: Get remote resource team members
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: resource_uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RemoteResourceTeamMember'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/remote-waldur-api/shared_offerings/:
    post:
      operationId: remote_waldur_api_shared_offerings
      description: List remote importable offerings for particular customer
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - remote-waldur-api
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoteCredentialsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RemoteOffering'
                description: ''
          description: ''
  /api/remote-waldur-api/sync_resource/{uuid}/:
    post:
      operationId: remote_waldur_api_sync_resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/remote-waldur-api/sync_resource_project_permissions/{uuid}/:
    post:
      operationId: remote_waldur_api_sync_resource_project_permissions
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          pattern: ^[a-f0-9]+$
        required: true
      tags:
      - remote-waldur-api
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/reviewer-bids/:
    get:
      operationId: reviewer_bids_list
      parameters:
      - in: query
        name: bid
        schema:
          type: array
          items:
            type: string
            enum:
            - conflict
            - eager
            - not_willing
            - willing
        description: |+
          Reviewer's preference for reviewing this proposal

        explode: true
        style: form
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -bid
            - -modified_at
            - -submitted_at
            - bid
            - modified_at
            - submitted_at
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: proposal_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      tags:
      - reviewer-bids
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReviewerBid'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: reviewer_bids_create
      tags:
      - reviewer-bids
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerBidRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerBid'
          description: ''
    head:
      operationId: reviewer_bids_count
      parameters:
      - in: query
        name: bid
        schema:
          type: array
          items:
            type: string
            enum:
            - conflict
            - eager
            - not_willing
            - willing
        description: |+
          Reviewer's preference for reviewing this proposal

        explode: true
        style: form
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -bid
            - -modified_at
            - -submitted_at
            - bid
            - modified_at
            - submitted_at
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: proposal_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      tags:
      - reviewer-bids
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/reviewer-bids/{uuid}/:
    get:
      operationId: reviewer_bids_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-bids
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerBid'
          description: ''
    put:
      operationId: reviewer_bids_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-bids
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerBidRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerBid'
          description: ''
    patch:
      operationId: reviewer_bids_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-bids
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedReviewerBidRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerBid'
          description: ''
    delete:
      operationId: reviewer_bids_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-bids
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/reviewer-bids/bulk-submit/:
    post:
      operationId: reviewer_bids_bulk_submit
      description: Submit multiple bids at once.
      tags:
      - reviewer-bids
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerBulkBidRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  submitted:
                    type: integer
          description: ''
  /api/reviewer-bids/my-bids/:
    get:
      operationId: reviewer_bids_my_bids_list
      description: Get my bids for a specific call.
      parameters:
      - in: query
        name: bid
        schema:
          type: array
          items:
            type: string
            enum:
            - conflict
            - eager
            - not_willing
            - willing
        description: |+
          Reviewer's preference for reviewing this proposal

        explode: true
        style: form
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -bid
            - -modified_at
            - -submitted_at
            - bid
            - modified_at
            - submitted_at
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: proposal_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      tags:
      - reviewer-bids
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReviewerBid'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: reviewer_bids_my_bids_count
      description: Get number of items in the collection matching the request parameters.
      parameters:
      - in: query
        name: bid
        schema:
          type: array
          items:
            type: string
            enum:
            - conflict
            - eager
            - not_willing
            - willing
        description: |+
          Reviewer's preference for reviewing this proposal

        explode: true
        style: form
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -bid
            - -modified_at
            - -submitted_at
            - bid
            - modified_at
            - submitted_at
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: proposal_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      tags:
      - reviewer-bids
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/reviewer-bids/submit/:
    post:
      operationId: reviewer_bids_submit
      description: Submit a bid on a proposal.
      tags:
      - reviewer-bids
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerBidSubmitRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerBid'
          description: ''
  /api/reviewer-invitations/{token}/:
    get:
      operationId: reviewer_invitations_retrieve
      description: Get invitation details by token.
      parameters:
      - in: path
        name: token
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]+$
        required: true
      tags:
      - reviewer-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicInvitation'
          description: ''
  /api/reviewer-invitations/{token}/accept/:
    post:
      operationId: reviewer_invitations_accept
      description: Accept a reviewer invitation.
      parameters:
      - in: path
        name: token
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]+$
        required: true
      tags:
      - reviewer-invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvitationAcceptRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationAcceptResponse'
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationAcceptError'
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationAuthError'
          description: ''
  /api/reviewer-invitations/{token}/decline/:
    post:
      operationId: reviewer_invitations_decline
      description: Decline a reviewer invitation.
      parameters:
      - in: path
        name: token
        schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]+$
        required: true
      tags:
      - reviewer-invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvitationDeclineRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationDeclineResponse'
          description: ''
  /api/reviewer-profiles/:
    get:
      operationId: reviewer_profiles_list
      parameters:
      - in: query
        name: expertise_category_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: expertise_keyword
        schema:
          type: string
      - in: query
        name: has_orcid
        schema:
          type: boolean
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -user_email
            - -user_name
            - created
            - user_email
            - user_name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: orcid_id
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user_email
        schema:
          type: string
      - in: query
        name: user_name
        schema:
          type: string
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReviewerProfile'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: reviewer_profiles_create
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerProfileRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerProfile'
          description: ''
    head:
      operationId: reviewer_profiles_count
      parameters:
      - in: query
        name: expertise_category_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: expertise_keyword
        schema:
          type: string
      - in: query
        name: has_orcid
        schema:
          type: boolean
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -user_email
            - -user_name
            - created
            - user_email
            - user_name
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: orcid_id
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user_email
        schema:
          type: string
      - in: query
        name: user_name
        schema:
          type: string
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/reviewer-profiles/{reviewer_profile_uuid}/affiliations/:
    get:
      operationId: nested_reviewer_profile_affiliations_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReviewerAffiliation'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: nested_reviewer_profile_affiliations_create
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerAffiliationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerAffiliation'
          description: ''
  /api/reviewer-profiles/{reviewer_profile_uuid}/affiliations/{uuid}/:
    get:
      operationId: nested_reviewer_profile_affiliations_retrieve
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerAffiliation'
          description: ''
    put:
      operationId: nested_reviewer_profile_affiliations_update
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerAffiliationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerAffiliation'
          description: ''
    patch:
      operationId: nested_reviewer_profile_affiliations_partial_update
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedReviewerAffiliationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerAffiliation'
          description: ''
    delete:
      operationId: nested_reviewer_profile_affiliations_destroy
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/reviewer-profiles/{reviewer_profile_uuid}/expertise/:
    get:
      operationId: nested_reviewer_profile_expertise_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReviewerExpertise'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: nested_reviewer_profile_expertise_create
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerExpertiseRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerExpertise'
          description: ''
  /api/reviewer-profiles/{reviewer_profile_uuid}/expertise/{uuid}/:
    get:
      operationId: nested_reviewer_profile_expertise_retrieve
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerExpertise'
          description: ''
    put:
      operationId: nested_reviewer_profile_expertise_update
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerExpertiseRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerExpertise'
          description: ''
    patch:
      operationId: nested_reviewer_profile_expertise_partial_update
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedReviewerExpertiseRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerExpertise'
          description: ''
    delete:
      operationId: nested_reviewer_profile_expertise_destroy
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/reviewer-profiles/{reviewer_profile_uuid}/publications/:
    get:
      operationId: nested_reviewer_profile_publications_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReviewerPublication'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: nested_reviewer_profile_publications_create
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerPublicationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerPublication'
          description: ''
  /api/reviewer-profiles/{reviewer_profile_uuid}/publications/{uuid}/:
    get:
      operationId: nested_reviewer_profile_publications_retrieve
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerPublication'
          description: ''
    put:
      operationId: nested_reviewer_profile_publications_update
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerPublicationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerPublication'
          description: ''
    patch:
      operationId: nested_reviewer_profile_publications_partial_update
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedReviewerPublicationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerPublication'
          description: ''
    delete:
      operationId: nested_reviewer_profile_publications_destroy
      parameters:
      - in: path
        name: reviewer_profile_uuid
        schema:
          type: string
        description: UUID of the parent reviewer profile
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/reviewer-profiles/{uuid}/:
    get:
      operationId: reviewer_profiles_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerProfile'
          description: ''
    put:
      operationId: reviewer_profiles_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerProfileRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerProfile'
          description: ''
    patch:
      operationId: reviewer_profiles_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedReviewerProfileRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerProfile'
          description: ''
    delete:
      operationId: reviewer_profiles_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/reviewer-profiles/{uuid}/affiliations/:
    get:
      operationId: reviewer_profiles_affiliations_list
      description: List affiliations for a reviewer profile.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReviewerAffiliation'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: reviewer_profiles_affiliations_create
      description: Create affiliation for a reviewer profile.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerAffiliationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerAffiliation'
          description: ''
  /api/reviewer-profiles/{uuid}/connect-orcid/:
    get:
      operationId: reviewer_profiles_connect_orcid_retrieve
      description: Get ORCID OAuth authorization URL.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  authorization_url:
                    type: string
          description: ''
  /api/reviewer-profiles/{uuid}/connect-orcid/callback/:
    post:
      operationId: reviewer_profiles_connect_orcid_callback
      description: Complete ORCID OAuth connection with authorization code.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrcidCallbackRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerProfile'
          description: ''
  /api/reviewer-profiles/{uuid}/disconnect-orcid/:
    post:
      operationId: reviewer_profiles_disconnect_orcid
      description: Disconnect ORCID from profile.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerProfileRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrcidDisconnectResponse'
          description: ''
  /api/reviewer-profiles/{uuid}/expertise/:
    get:
      operationId: reviewer_profiles_expertise_list
      description: List expertise keywords for a reviewer profile.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReviewerExpertise'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: reviewer_profiles_expertise_create
      description: Create expertise entry for a reviewer profile.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerExpertiseRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerExpertise'
          description: ''
  /api/reviewer-profiles/{uuid}/import-publications/:
    post:
      operationId: reviewer_profiles_import_publications
      description: Import publications from ORCID or other sources.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportPublicationsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  imported_count:
                    type: integer
          description: ''
  /api/reviewer-profiles/{uuid}/publications/:
    get:
      operationId: reviewer_profiles_publications_list
      description: List publications for a reviewer profile.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReviewerPublication'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: reviewer_profiles_publications_create
      description: Create publication for a reviewer profile.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerPublicationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerPublication'
          description: ''
  /api/reviewer-profiles/{uuid}/sync-orcid/:
    post:
      operationId: reviewer_profiles_sync_orcid
      description: Sync profile data from ORCID.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerProfileRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrcidSyncResponse'
          description: ''
  /api/reviewer-profiles/me/:
    get:
      operationId: reviewer_profiles_me_retrieve
      description: Get or create reviewer profile for the current user.
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerProfile'
          description: ''
    post:
      operationId: reviewer_profiles_me
      description: Get or create reviewer profile for the current user.
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerProfileCreateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerProfile'
          description: ''
    patch:
      operationId: reviewer_profiles_me_partial_update
      description: Get or create reviewer profile for the current user.
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedReviewerProfileCreateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerProfile'
          description: ''
    head:
      operationId: reviewer_profiles_me_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - reviewer-profiles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/reviewer-profiles/publish/:
    post:
      operationId: reviewer_profiles_publish
      description: 'Publish reviewer profile for discovery by call managers. Warning:
        Publishing makes your full profile visible to call managers globally.'
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerProfileRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  is_published:
                    type: boolean
                  published_at:
                    type: string
                    format: date-time
                  warning:
                    type: string
          description: ''
  /api/reviewer-profiles/unpublish/:
    post:
      operationId: reviewer_profiles_unpublish
      description: Unpublish reviewer profile to remove it from discovery.
      tags:
      - reviewer-profiles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerProfileRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  is_published:
                    type: boolean
                  detail:
                    type: string
          description: ''
  /api/reviewer-suggestions/:
    get:
      operationId: reviewer_suggestions_list
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: min_affinity_score
        schema:
          type: number
          format: float
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -affinity_score
            - -created
            - -reviewed_at
            - -status
            - affinity_score
            - created
            - reviewed_at
            - status
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: status
        schema:
          type: array
          items:
            type: string
            enum:
            - confirmed
            - invited
            - pending
            - rejected
        explode: true
        style: form
      tags:
      - reviewer-suggestions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReviewerSuggestion'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: reviewer_suggestions_count
      parameters:
      - in: query
        name: call_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: min_affinity_score
        schema:
          type: number
          format: float
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -affinity_score
            - -created
            - -reviewed_at
            - -status
            - affinity_score
            - created
            - reviewed_at
            - status
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: reviewer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: status
        schema:
          type: array
          items:
            type: string
            enum:
            - confirmed
            - invited
            - pending
            - rejected
        explode: true
        style: form
      tags:
      - reviewer-suggestions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/reviewer-suggestions/{uuid}/:
    get:
      operationId: reviewer_suggestions_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-suggestions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerSuggestion'
          description: ''
    delete:
      operationId: reviewer_suggestions_destroy
      description: Delete a reviewer suggestion.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-suggestions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
      x-permissions:
      - permission: PROPOSAL.MANAGE_REVIEW
        scopes:
        - call.manager
  /api/reviewer-suggestions/{uuid}/confirm/:
    post:
      operationId: reviewer_suggestions_confirm
      description: Confirm a reviewer suggestion. The reviewer will be invited to
        the call.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-suggestions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerSuggestionRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerSuggestion'
          description: ''
  /api/reviewer-suggestions/{uuid}/reject/:
    post:
      operationId: reviewer_suggestions_reject
      description: Reject a reviewer suggestion.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - reviewer-suggestions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SuggestionRejectRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewerSuggestion'
          description: ''
  /api/roles/:
    get:
      operationId: roles_list
      description: Get a list of all available roles.
      summary: List roles
      parameters:
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - content_type
            - description
            - description_ar
            - description_cs
            - description_da
            - description_de
            - description_en
            - description_es
            - description_et
            - description_fr
            - description_it
            - description_lt
            - description_lv
            - description_nb
            - description_ru
            - description_sv
            - is_active
            - is_system_role
            - name
            - permissions
            - users_count
            - uuid
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - roles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoleDetails'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: roles_create
      description: Allows staff users to create a new custom role with a specific
        set of permissions.
      summary: Create a new role
      tags:
      - roles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleModifyRequest'
            examples:
              CreateAProject-levelReviewerRole:
                value:
                  name: PROJECT.REVIEWER
                  description: Can view project.
                  content_type: project
                  permissions:
                  - PROJECT.LIST
                summary: Create a project-level reviewer role
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleDetails'
              examples:
                SuccessfulRoleCreationResponse:
                  value:
                    uuid: d8c2d5852d434937985392d24249b6d3
                    name: PROJECT.REVIEWER
                    description: Can view project.
                    permissions:
                    - PROJECT.LIST
                    is_system_role: false
                    is_active: true
                    users_count: 0
                    content_type: project
                  summary: Successful role creation response
          description: ''
    head:
      operationId: roles_count
      description: Get number of items in the collection matching the request parameters.
      summary: List roles
      parameters:
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - roles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/roles/{uuid}/:
    get:
      operationId: roles_retrieve
      description: Retrieve the details of a specific role by its UUID.
      summary: Get role details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - content_type
            - description
            - description_ar
            - description_cs
            - description_da
            - description_de
            - description_en
            - description_es
            - description_et
            - description_fr
            - description_it
            - description_lt
            - description_lv
            - description_nb
            - description_ru
            - description_sv
            - is_active
            - is_system_role
            - name
            - permissions
            - users_count
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - roles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleDetails'
          description: ''
    put:
      operationId: roles_update
      description: Allows staff users to update an existing role's name, description,
        content type, and permissions. The name of a system role cannot be changed.
      summary: Update a role
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - roles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleModifyRequest'
            examples:
              AddAPermissionToARole:
                value:
                  name: PROJECT.REVIEWER
                  description: Can view project and update metadata.
                  content_type: project
                  permissions:
                  - PROJECT.LIST
                  - PROJECT.UPDATE_METADATA
                summary: Add a permission to a role
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleDetails'
              examples:
                SuccessfulRoleUpdateResponse:
                  value:
                    uuid: d8c2d5852d434937985392d24249b6d3
                    name: PROJECT.REVIEWER
                    description: Can view project and update metadata.
                    permissions:
                    - PROJECT.LIST
                    - PROJECT.UPDATE_METADATA
                    is_system_role: false
                    is_active: true
                    users_count: 5
                    content_type: project
                  summary: Successful role update response
          description: ''
    patch:
      operationId: roles_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - roles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRoleDetailsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleDetails'
          description: ''
    delete:
      operationId: roles_destroy
      description: Allows staff users to delete a custom role. System roles and roles
        that are currently in use cannot be deleted.
      summary: Delete a role
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - roles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/roles/{uuid}/disable/:
    post:
      operationId: roles_disable
      description: Allows staff users to disable a role, preventing it from being
        assigned further. Existing assignments are not affected.
      summary: Disable a role
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - roles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: Role disabled successfully.
  /api/roles/{uuid}/enable/:
    post:
      operationId: roles_enable
      description: Allows staff users to enable a role, making it available for assignment.
      summary: Enable a role
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - roles
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: Role enabled successfully.
  /api/roles/{uuid}/update_descriptions/:
    put:
      operationId: roles_update_descriptions_update
      description: Allows staff users to update the multilingual descriptions of a
        role.
      summary: Update role descriptions
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - roles
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleDescriptionRequest'
            examples:
              UpdateEnglishAndEstonianDescriptions:
                value:
                  description_en: New English description
                  description_et: Uus kirjeldus eesti keeles
                summary: Update English and Estonian descriptions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoleDescription'
              examples:
                UpdateEnglishAndEstonianDescriptions:
                  value:
                    description_en: New English description
                    description_et: Uus kirjeldus eesti keeles
                  summary: Update English and Estonian descriptions
          description: ''
  /api/service-settings/:
    get:
      operationId: service_settings_list
      parameters:
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - customer
            - customer_name
            - customer_native_name
            - error_message
            - name
            - options
            - scope
            - scope_uuid
            - shared
            - state
            - terms_of_services
            - type
            - url
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: shared
        schema:
          type: boolean
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: type
        schema:
          type: string
        description: Type
      tags:
      - service-settings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceSettings'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: service_settings_count
      parameters:
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: shared
        schema:
          type: boolean
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: type
        schema:
          type: string
        description: Type
      tags:
      - service-settings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/service-settings/{uuid}/:
    get:
      operationId: service_settings_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - customer
            - customer_name
            - customer_native_name
            - error_message
            - name
            - options
            - scope
            - scope_uuid
            - shared
            - state
            - terms_of_services
            - type
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - service-settings
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceSettings'
          description: ''
  /api/slurm-allocation-user-usage/:
    get:
      operationId: slurm_allocation_user_usage_list
      parameters:
      - in: query
        name: allocation
        schema:
          type: string
      - in: query
        name: allocation_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: month
        schema:
          type: integer
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user
        schema:
          type: string
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: year
        schema:
          type: integer
      tags:
      - slurm-allocation-user-usage
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SlurmAllocationUserUsage'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: slurm_allocation_user_usage_count
      parameters:
      - in: query
        name: allocation
        schema:
          type: string
      - in: query
        name: allocation_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: month
        schema:
          type: integer
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user
        schema:
          type: string
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: year
        schema:
          type: integer
      tags:
      - slurm-allocation-user-usage
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/slurm-allocation-user-usage/{id}/:
    get:
      operationId: slurm_allocation_user_usage_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this allocation user usage.
        required: true
      tags:
      - slurm-allocation-user-usage
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmAllocationUserUsage'
          description: ''
  /api/slurm-allocations/:
    get:
      operationId: slurm_allocations_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - cpu_limit
            - cpu_usage
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - gateway
            - gpu_limit
            - gpu_usage
            - is_active
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - ram_limit
            - ram_usage
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - username
            - uuid
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - slurm-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SlurmAllocation'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: slurm_allocations_create
      tags:
      - slurm-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SlurmAllocationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmAllocation'
          description: ''
    head:
      operationId: slurm_allocations_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - slurm-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/slurm-allocations/{uuid}/:
    get:
      operationId: slurm_allocations_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - cpu_limit
            - cpu_usage
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - gateway
            - gpu_limit
            - gpu_usage
            - is_active
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - ram_limit
            - ram_usage
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - username
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmAllocation'
          description: ''
    put:
      operationId: slurm_allocations_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SlurmAllocationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmAllocation'
          description: ''
    patch:
      operationId: slurm_allocations_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedSlurmAllocationRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmAllocation'
          description: ''
    delete:
      operationId: slurm_allocations_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/slurm-allocations/{uuid}/pull/:
    post:
      operationId: slurm_allocations_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/slurm-allocations/{uuid}/set_erred/:
    post:
      operationId: slurm_allocations_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/slurm-allocations/{uuid}/set_limits/:
    post:
      operationId: slurm_allocations_set_limits
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-allocations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SlurmAllocationSetLimitsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmAllocationSetLimits'
          description: ''
  /api/slurm-allocations/{uuid}/set_ok/:
    post:
      operationId: slurm_allocations_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/slurm-allocations/{uuid}/unlink/:
    post:
      operationId: slurm_allocations_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-allocations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/slurm-associations/:
    get:
      operationId: slurm_associations_list
      parameters:
      - in: query
        name: allocation
        schema:
          type: string
      - in: query
        name: allocation_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - slurm-associations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SlurmAssociation'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: slurm_associations_count
      parameters:
      - in: query
        name: allocation
        schema:
          type: string
      - in: query
        name: allocation_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - slurm-associations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/slurm-associations/{uuid}/:
    get:
      operationId: slurm_associations_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-associations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlurmAssociation'
          description: ''
  /api/slurm-jobs/:
    get:
      operationId: slurm_jobs_list
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - file
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - report
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - user
            - user_username
            - user_uuid
            - uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - slurm-jobs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FirecrestJob'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: slurm_jobs_create
      tags:
      - slurm-jobs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirecrestJobRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FirecrestJobRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FirecrestJobRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirecrestJob'
          description: ''
    head:
      operationId: slurm_jobs_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - slurm-jobs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/slurm-jobs/{uuid}/:
    get:
      operationId: slurm_jobs_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - file
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - report
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - user
            - user_username
            - user_uuid
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-jobs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirecrestJob'
          description: ''
    put:
      operationId: slurm_jobs_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-jobs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirecrestJobRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FirecrestJobRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FirecrestJobRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirecrestJob'
          description: ''
    patch:
      operationId: slurm_jobs_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-jobs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedFirecrestJobRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FirecrestJob'
          description: ''
    delete:
      operationId: slurm_jobs_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-jobs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/slurm-jobs/{uuid}/pull/:
    post:
      operationId: slurm_jobs_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-jobs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/slurm-jobs/{uuid}/set_erred/:
    post:
      operationId: slurm_jobs_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-jobs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/slurm-jobs/{uuid}/set_ok/:
    post:
      operationId: slurm_jobs_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-jobs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/slurm-jobs/{uuid}/unlink/:
    post:
      operationId: slurm_jobs_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - slurm-jobs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/stats/celery/:
    get:
      operationId: stats_celery_retrieve
      description: |-
        Provides a comprehensive snapshot of all Celery workers' status.

        This endpoint returns detailed information about:
        - **active**: Tasks currently being executed by workers
        - **scheduled**: Tasks scheduled for future execution (with ETA)
        - **reserved**: Tasks received by workers but not yet started
        - **revoked**: Task IDs that have been cancelled/revoked
        - **query_task**: Results of task queries (if any)
        - **stats**: Detailed worker statistics including uptime, pool info, and broker connection

        Each field is a dictionary where keys are worker names (e.g., 'celery@hostname').
        If no workers are available, fields will be `null`.

        Requires support user permissions.
      summary: Get Celery worker statistics
      tags:
      - stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CeleryStatsResponse'
              examples:
                CeleryStatsWithActiveWorkers:
                  value:
                    active:
                      celery@worker1:
                      - id: e3a95109-acd5-4f5a-b4c4-65f2f4e5d123
                        name: waldur_core.tasks.send_email
                        args:
                        - user@example.com
                        kwargs:
                          subject: Welcome
                        type: waldur_core.tasks.send_email
                        hostname: celery@worker1
                        time_start: 1703952000.123456
                        acknowledged: true
                        worker_pid: 12345
                    scheduled:
                      celery@worker1: []
                    reserved:
                      celery@worker1: []
                    revoked:
                      celery@worker1: []
                    query_task: null
                    stats:
                      celery@worker1:
                        broker:
                          hostname: redis
                          port: 6379
                          transport: redis
                          virtual_host: '0'
                        clock: '12345'
                        uptime: 86400
                        pid: 1234
                        pool:
                          max_concurrency: 4
                          processes:
                          - 12345
                          - 12346
                          - 12347
                          - 12348
                        prefetch_count: 16
                        total:
                          waldur_core.tasks.send_email: 150
                          waldur_core.tasks.cleanup: 42
                  summary: Response when Celery workers are running
                  description: Example showing active workers with tasks in various
                    states.
                NoWorkersAvailable:
                  value:
                    active: null
                    scheduled: null
                    reserved: null
                    revoked: null
                    query_task: null
                    stats: null
                  summary: Response when no Celery workers are running
                  description: All fields are null when workers are offline or unreachable.
          description: ''
  /api/stats/database/:
    get:
      operationId: stats_database_retrieve
      description: |-
        Retrieves comprehensive statistics about the PostgreSQL database including:
        - **Table statistics**: Top 10 largest tables by size
        - **Connection statistics**: Active, idle, and waiting connections with utilization
        - **Database size**: Total size, data size, and index size
        - **Cache performance**: Buffer cache and index hit ratios (should be >99%)
        - **Transaction statistics**: Commits, rollbacks, deadlocks
        - **Lock statistics**: Current locks and waiting queries
        - **Maintenance statistics**: Dead tuples, vacuum needs, oldest transaction age
        - **Active queries**: Currently running queries with duration
        - **Query performance**: Sequential vs index scan ratios
        - **Replication status**: WAL size and replication lag (if applicable)

        This information is useful for monitoring, debugging, and performance tuning.
        Requires support user permissions.
      summary: Get comprehensive database statistics
      tags:
      - stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatabaseStatsResponse'
          description: ''
  /api/stats/query/:
    post:
      operationId: stats_query
      description: Execute a given SQL query against a read-only database replica.
        This is a powerful tool for diagnostics and reporting, but should be used
        with caution. Requires support user permissions.
      summary: Execute read-only SQL query
      tags:
      - stats
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryRequest'
            examples:
              ListAllCustomers:
                value:
                  query: SELECT uuid, name, country FROM structure_customer LIMIT
                    10;
                summary: Example of a query to retrieve all customers.
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items: {}
              examples:
                SuccessfulResponse:
                  value:
                  - - a1b2c3d4-e5f6-a7b8-c9d0-e1f2a3b4c5d6
                    - Customer A
                    - US
                  - - b2c3d4e5-f6a7-b8c9-d0e1-f2a3b4c5d6a7
                    - Customer B
                    - DE
                  summary: Example response for a successful query.
          description: ''
        '400':
          description: No response body
  /api/stats/table-growth/:
    get:
      operationId: stats_table_growth_retrieve
      description: |-
        Retrieves historical table growth statistics for detecting abnormal patterns.

        This endpoint returns:
        - **date**: Current date of the statistics
        - **weekly_threshold_percent**: Configured alert threshold for weekly growth
        - **monthly_threshold_percent**: Configured alert threshold for monthly growth
        - **tables**: List of tables with their growth statistics, sorted by growth rate

        Each table entry includes:
        - Current size and row estimates
        - Size and row estimates from 7 days ago
        - Size and row estimates from 30 days ago
        - Weekly and monthly growth percentages

        Use this data to identify tables that may be experiencing abnormal growth,
        which could indicate bugs like the version-based get_or_create issue.

        Query parameters:
        - **table_name** (optional): Filter to a specific table name
        - **days** (optional, default 30): Number of days of history to include

        Requires support user permissions.
      summary: Get table growth statistics
      tags:
      - stats
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TableGrowthStatsResponse'
          description: ''
  /api/support-attachments/:
    get:
      operationId: support_attachments_list
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - created
            - destroy_is_available
            - file
            - file_name
            - file_size
            - issue
            - issue_key
            - mime_type
            - url
            - uuid
      - in: query
        name: issue
        schema:
          type: string
      - in: query
        name: issue_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support-attachments
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Attachment'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: support_attachments_create
      tags:
      - support-attachments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachmentRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AttachmentRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AttachmentRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: ''
    head:
      operationId: support_attachments_count
      parameters:
      - in: query
        name: issue
        schema:
          type: string
      - in: query
        name: issue_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support-attachments
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/support-attachments/{uuid}/:
    get:
      operationId: support_attachments_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - backend_id
            - created
            - destroy_is_available
            - file
            - file_name
            - file_size
            - issue
            - issue_key
            - mime_type
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-attachments
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attachment'
          description: ''
    delete:
      operationId: support_attachments_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-attachments
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/support-comments/:
    get:
      operationId: support_comments_list
      parameters:
      - in: query
        name: author_name
        schema:
          type: string
      - in: query
        name: author_user
        schema:
          type: string
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: is_public
        schema:
          type: boolean
      - in: query
        name: issue
        schema:
          type: string
      - in: query
        name: issue_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -modified
            - created
            - modified
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: remote_id_is_set
        schema:
          type: boolean
        description: Remote ID is set.
      tags:
      - support-comments
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Comment'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: support_comments_count
      parameters:
      - in: query
        name: author_name
        schema:
          type: string
      - in: query
        name: author_user
        schema:
          type: string
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: is_public
        schema:
          type: boolean
      - in: query
        name: issue
        schema:
          type: string
      - in: query
        name: issue_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -modified
            - created
            - modified
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: remote_id_is_set
        schema:
          type: boolean
        description: Remote ID is set.
      tags:
      - support-comments
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/support-comments/{uuid}/:
    get:
      operationId: support_comments_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-comments
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          description: ''
    put:
      operationId: support_comments_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-comments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          description: ''
    patch:
      operationId: support_comments_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-comments
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCommentRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          description: ''
    delete:
      operationId: support_comments_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-comments
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/support-feedback-average-report/:
    get:
      operationId: support_feedback_average_report_retrieve
      tags:
      - support-feedback-average-report
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/support-feedback-report/:
    get:
      operationId: support_feedback_report_retrieve
      tags:
      - support-feedback-report
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/support-feedbacks/:
    get:
      operationId: support_feedbacks_list
      parameters:
      - in: query
        name: created_after
        schema:
          type: string
          format: date-time
      - in: query
        name: created_before
        schema:
          type: string
          format: date-time
      - in: query
        name: evaluation
        schema:
          type: integer
      - in: query
        name: issue
        schema:
          type: string
      - in: query
        name: issue_key
        schema:
          type: string
      - in: query
        name: issue_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user
        schema:
          type: string
      - in: query
        name: user_full_name
        schema:
          type: string
        description: User full name contains
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      tags:
      - support-feedbacks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Feedback'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: support_feedbacks_create
      tags:
      - support-feedbacks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFeedbackRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateFeedback'
          description: ''
    head:
      operationId: support_feedbacks_count
      parameters:
      - in: query
        name: created_after
        schema:
          type: string
          format: date-time
      - in: query
        name: created_before
        schema:
          type: string
          format: date-time
      - in: query
        name: evaluation
        schema:
          type: integer
      - in: query
        name: issue
        schema:
          type: string
      - in: query
        name: issue_key
        schema:
          type: string
      - in: query
        name: issue_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user
        schema:
          type: string
      - in: query
        name: user_full_name
        schema:
          type: string
        description: User full name contains
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
      tags:
      - support-feedbacks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/support-feedbacks/{uuid}/:
    get:
      operationId: support_feedbacks_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-feedbacks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Feedback'
          description: ''
  /api/support-issue-statuses/:
    get:
      operationId: support_issue_statuses_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support-issue-statuses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IssueStatus'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: support_issue_statuses_create
      tags:
      - support-issue-statuses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueStatusCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueStatusCreate'
          description: ''
    head:
      operationId: support_issue_statuses_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support-issue-statuses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/support-issue-statuses/{uuid}/:
    get:
      operationId: support_issue_statuses_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-issue-statuses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueStatus'
          description: ''
    put:
      operationId: support_issue_statuses_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-issue-statuses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueStatusCreateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueStatusCreate'
          description: ''
    patch:
      operationId: support_issue_statuses_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-issue-statuses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedIssueStatusRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueStatus'
          description: ''
    delete:
      operationId: support_issue_statuses_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-issue-statuses
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/support-issues/:
    get:
      operationId: support_issues_list
      parameters:
      - in: query
        name: assignee
        schema:
          type: string
      - in: query
        name: assignee_name
        schema:
          type: string
      - in: query
        name: caller
        schema:
          type: string
      - in: query
        name: caller_full_name
        schema:
          type: string
        description: Caller full name contains
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: key
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -assignee_name
            - -caller_first_name
            - -caller_last_name
            - -created
            - -customer_name
            - -key
            - -modified
            - -priority
            - -project_name
            - -remote_id
            - -reporter_name
            - -status
            - -summary
            - -type
            - assignee_name
            - caller_first_name
            - caller_last_name
            - created
            - customer_name
            - key
            - modified
            - priority
            - project_name
            - remote_id
            - reporter_name
            - status
            - summary
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: query
        schema:
          type: string
        description: Summary or key contains
      - in: query
        name: remote_id
        schema:
          type: string
      - in: query
        name: reporter
        schema:
          type: string
      - in: query
        name: reporter_name
        schema:
          type: string
      - in: query
        name: resolution_year_month
        schema:
          type: string
      - in: query
        name: resource_external_ip
        schema:
          type: string
        description: Resource external IP
      - in: query
        name: resource_internal_ip
        schema:
          type: string
        description: Resource internal IP
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: status
        schema:
          type: string
      - in: query
        name: summary
        schema:
          type: string
      - in: query
        name: type
        schema:
          type: string
      tags:
      - support-issues
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Issue'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: support_issues_create
      tags:
      - support-issues
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue'
          description: ''
    head:
      operationId: support_issues_count
      parameters:
      - in: query
        name: assignee
        schema:
          type: string
      - in: query
        name: assignee_name
        schema:
          type: string
      - in: query
        name: caller
        schema:
          type: string
      - in: query
        name: caller_full_name
        schema:
          type: string
        description: Caller full name contains
      - in: query
        name: customer
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: key
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -assignee_name
            - -caller_first_name
            - -caller_last_name
            - -created
            - -customer_name
            - -key
            - -modified
            - -priority
            - -project_name
            - -remote_id
            - -reporter_name
            - -status
            - -summary
            - -type
            - assignee_name
            - caller_first_name
            - caller_last_name
            - created
            - customer_name
            - key
            - modified
            - priority
            - project_name
            - remote_id
            - reporter_name
            - status
            - summary
            - type
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: query
        schema:
          type: string
        description: Summary or key contains
      - in: query
        name: remote_id
        schema:
          type: string
      - in: query
        name: reporter
        schema:
          type: string
      - in: query
        name: reporter_name
        schema:
          type: string
      - in: query
        name: resolution_year_month
        schema:
          type: string
      - in: query
        name: resource_external_ip
        schema:
          type: string
        description: Resource external IP
      - in: query
        name: resource_internal_ip
        schema:
          type: string
        description: Resource internal IP
      - in: query
        name: resource_uuid
        schema:
          type: string
          format: uuid
        description: Resource UUID
      - in: query
        name: status
        schema:
          type: string
      - in: query
        name: summary
        schema:
          type: string
      - in: query
        name: type
        schema:
          type: string
      tags:
      - support-issues
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/support-issues/{uuid}/:
    get:
      operationId: support_issues_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-issues
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue'
          description: ''
    put:
      operationId: support_issues_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-issues
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue'
          description: ''
    patch:
      operationId: support_issues_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-issues
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedIssueRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue'
          description: ''
    delete:
      operationId: support_issues_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-issues
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/support-issues/{uuid}/comment/:
    post:
      operationId: support_issues_comment
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-issues
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          description: ''
  /api/support-issues/{uuid}/sync/:
    post:
      operationId: support_issues_sync
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-issues
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Issue'
          description: ''
  /api/support-jira-webhook/:
    post:
      operationId: support_jira_webhook
      tags:
      - support-jira-webhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebHookReceiverRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebHookReceiver'
          description: ''
  /api/support-priorities/:
    get:
      operationId: support_priorities_list
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support-priorities
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Priority'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: support_priorities_count
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support-priorities
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/support-priorities/{uuid}/:
    get:
      operationId: support_priorities_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-priorities
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Priority'
          description: ''
  /api/support-request-types/:
    get:
      operationId: support_request_types_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support-request-types
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequestType'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: support_request_types_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support-request-types
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/support-request-types-admin/:
    get:
      operationId: support_request_types_admin_list
      parameters:
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support-request-types-admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RequestTypeAdmin'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: support_request_types_admin_create
      tags:
      - support-request-types-admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTypeAdminRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTypeAdmin'
          description: ''
    head:
      operationId: support_request_types_admin_count
      parameters:
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support-request-types-admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/support-request-types-admin/{uuid}/:
    get:
      operationId: support_request_types_admin_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-request-types-admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTypeAdmin'
          description: ''
    put:
      operationId: support_request_types_admin_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-request-types-admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTypeAdminRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTypeAdmin'
          description: ''
    patch:
      operationId: support_request_types_admin_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-request-types-admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedRequestTypeAdminRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTypeAdmin'
          description: ''
    delete:
      operationId: support_request_types_admin_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-request-types-admin
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/support-request-types-admin/{uuid}/activate/:
    post:
      operationId: support_request_types_admin_activate
      description: Activate a request type so it appears in issue creation.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-request-types-admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTypeAdminRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTypeAdmin'
          description: ''
  /api/support-request-types-admin/{uuid}/deactivate/:
    post:
      operationId: support_request_types_admin_deactivate
      description: Deactivate a request type so it no longer appears in issue creation.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-request-types-admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTypeAdminRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTypeAdmin'
          description: ''
  /api/support-request-types-admin/reorder/:
    post:
      operationId: support_request_types_admin_reorder
      description: Bulk update order for multiple request types.
      tags:
      - support-request-types-admin
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestTypeAdminRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTypeAdmin'
          description: ''
  /api/support-request-types/{uuid}/:
    get:
      operationId: support_request_types_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-request-types
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestType'
          description: ''
  /api/support-smax-webhook/:
    post:
      operationId: support_smax_webhook
      tags:
      - support-smax-webhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmaxWebHookReceiverRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmaxWebHookReceiver'
          description: ''
  /api/support-statistics/:
    get:
      operationId: support_statistics_retrieve
      tags:
      - support-statistics
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupportStats'
          description: ''
  /api/support-templates/:
    get:
      operationId: support_templates_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Template'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: support_templates_create
      tags:
      - support-templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
          description: ''
    head:
      operationId: support_templates_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/support-templates/{uuid}/:
    get:
      operationId: support_templates_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
          description: ''
    put:
      operationId: support_templates_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
          description: ''
    patch:
      operationId: support_templates_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedTemplateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
          description: ''
    delete:
      operationId: support_templates_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/support-templates/{uuid}/create_attachments/:
    post:
      operationId: support_templates_create_attachments
      description: This view attaches documents to template.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAttachmentsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          description: No response body
        '400':
          description: No response body
  /api/support-templates/{uuid}/delete_attachments/:
    post:
      operationId: support_templates_delete_attachments
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteAttachmentsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/support-users/:
    get:
      operationId: support_users_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user
        schema:
          type: integer
      tags:
      - support-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SupportUser'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: support_users_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: user
        schema:
          type: integer
      tags:
      - support-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/support-users/{uuid}/:
    get:
      operationId: support_users_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - support-users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupportUser'
          description: ''
  /api/support-zammad-webhook/:
    post:
      operationId: support_zammad_webhook
      tags:
      - support-zammad-webhook
      responses:
        '200':
          description: No response body
  /api/support/settings/atlassian/:
    get:
      operationId: support_settings_atlassian_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
    post:
      operationId: support_settings_atlassian_create
      tags:
      - support
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          description: No response body
  /api/support/settings/atlassian/{id}/:
    get:
      operationId: support_settings_atlassian_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this issue.
        required: true
      tags:
      - support
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
    put:
      operationId: support_settings_atlassian_update
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this issue.
        required: true
      tags:
      - support
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
    patch:
      operationId: support_settings_atlassian_partial_update
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this issue.
        required: true
      tags:
      - support
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
    delete:
      operationId: support_settings_atlassian_destroy
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this issue.
        required: true
      tags:
      - support
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/support/settings/atlassian/current_settings/:
    get:
      operationId: support_settings_atlassian_current_settings_retrieve
      description: Get current Atlassian settings (masked secrets).
      tags:
      - support
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/support/settings/atlassian/discover_custom_fields/:
    post:
      operationId: support_settings_atlassian_discover_custom_fields
      description: Discover available custom fields.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverCustomFieldsRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AtlassianCustomFieldResponse'
                description: ''
          description: ''
  /api/support/settings/atlassian/discover_priorities/:
    post:
      operationId: support_settings_atlassian_discover_priorities
      description: Discover available priorities.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverPrioritiesRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AtlassianPriorityResponse'
                description: ''
          description: ''
  /api/support/settings/atlassian/discover_projects/:
    post:
      operationId: support_settings_atlassian_discover_projects
      description: Discover available Service Desk projects.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverProjectsRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AtlassianProjectResponse'
                description: ''
          description: ''
  /api/support/settings/atlassian/discover_request_types/:
    post:
      operationId: support_settings_atlassian_discover_request_types
      description: Discover request types for a selected project.
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - support
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverRequestTypesRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AtlassianRequestTypeResponse'
                description: ''
          description: ''
  /api/support/settings/atlassian/preview_settings/:
    post:
      operationId: support_settings_atlassian_preview_settings
      description: Generate preview of settings to be saved.
      tags:
      - support
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AtlassianSettingsPreviewRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/support/settings/atlassian/save_settings/:
    post:
      operationId: support_settings_atlassian_save_settings
      description: Save selected settings to constance.
      tags:
      - support
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AtlassianSettingsSaveRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/support/settings/atlassian/validate_credentials/:
    post:
      operationId: support_settings_atlassian_validate_credentials
      description: Validate Atlassian credentials without saving them.
      tags:
      - support
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AtlassianCredentialsRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/sync-issues/:
    get:
      operationId: sync_issues_retrieve
      description: This view triggers synchronization of issues from backend.
      tags:
      - sync-issues
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          description: No response body
        '403':
          description: No response body
    post:
      operationId: sync_issues
      description: This view triggers synchronization of issues from backend.
      tags:
      - sync-issues
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          description: No response body
        '403':
          description: No response body
  /api/system-logs/:
    get:
      operationId: system_logs_list
      parameters:
      - in: query
        name: created_from
        schema:
          type: number
      - in: query
        name: created_to
        schema:
          type: number
      - in: query
        name: instance
        schema:
          type: string
      - in: query
        name: level
        schema:
          type: string
          enum:
          - CRITICAL
          - ERROR
          - INFO
          - WARNING
      - in: query
        name: level_gte
        schema:
          type: integer
        description: 'Min level: 20=INFO, 30=WARNING, 40=ERROR, 50=CRITICAL'
      - in: query
        name: logger_name
        schema:
          type: string
      - in: query
        name: message
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -instance
            - -level_number
            - created
            - instance
            - level_number
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: source
        schema:
          type: string
          enum:
          - api
          - beat
          - worker
      tags:
      - system-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SystemLog'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: system_logs_count
      parameters:
      - in: query
        name: created_from
        schema:
          type: number
      - in: query
        name: created_to
        schema:
          type: number
      - in: query
        name: instance
        schema:
          type: string
      - in: query
        name: level
        schema:
          type: string
          enum:
          - CRITICAL
          - ERROR
          - INFO
          - WARNING
      - in: query
        name: level_gte
        schema:
          type: integer
        description: 'Min level: 20=INFO, 30=WARNING, 40=ERROR, 50=CRITICAL'
      - in: query
        name: logger_name
        schema:
          type: string
      - in: query
        name: message
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -instance
            - -level_number
            - created
            - instance
            - level_number
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: source
        schema:
          type: string
          enum:
          - api
          - beat
          - worker
      tags:
      - system-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/system-logs/{id}/:
    get:
      operationId: system_logs_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this system log.
        required: true
      tags:
      - system-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemLog'
          description: ''
  /api/system-logs/instances/:
    get:
      operationId: system_logs_instances_list
      description: List all known instances (pods/containers) with their last activity.
      summary: List system log instances
      parameters:
      - in: query
        name: created_from
        schema:
          type: number
      - in: query
        name: created_to
        schema:
          type: number
      - in: query
        name: instance
        schema:
          type: string
      - in: query
        name: level
        schema:
          type: string
          enum:
          - CRITICAL
          - ERROR
          - INFO
          - WARNING
      - in: query
        name: level_gte
        schema:
          type: integer
        description: 'Min level: 20=INFO, 30=WARNING, 40=ERROR, 50=CRITICAL'
      - in: query
        name: logger_name
        schema:
          type: string
      - in: query
        name: message
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -instance
            - -level_number
            - created
            - instance
            - level_number
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: source
        schema:
          type: string
          enum:
          - api
          - beat
          - worker
      tags:
      - system-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SystemLogInstance'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: system_logs_instances_count
      description: Get number of items in the collection matching the request parameters.
      summary: List system log instances
      parameters:
      - in: query
        name: created_from
        schema:
          type: number
      - in: query
        name: created_to
        schema:
          type: number
      - in: query
        name: instance
        schema:
          type: string
      - in: query
        name: level
        schema:
          type: string
          enum:
          - CRITICAL
          - ERROR
          - INFO
          - WARNING
      - in: query
        name: level_gte
        schema:
          type: integer
        description: 'Min level: 20=INFO, 30=WARNING, 40=ERROR, 50=CRITICAL'
      - in: query
        name: logger_name
        schema:
          type: string
      - in: query
        name: message
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -instance
            - -level_number
            - created
            - instance
            - level_number
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: source
        schema:
          type: string
          enum:
          - api
          - beat
          - worker
      tags:
      - system-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/system-logs/stats/:
    get:
      operationId: system_logs_stats_retrieve
      description: Return log count statistics per source and instance, plus total
        table size.
      summary: Get system log statistics
      tags:
      - system-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemLogStatsResponse'
          description: ''
    head:
      operationId: system_logs_stats_count
      description: Get number of items in the collection matching the request parameters.
      summary: Get system log statistics
      tags:
      - system-logs
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-action-executions/:
    get:
      operationId: user_action_executions_list
      parameters:
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - user-action-executions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserActionExecution'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: user_action_executions_count
      parameters:
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - user-action-executions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/user-action-executions/{id}/:
    get:
      operationId: user_action_executions_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user action execution.
        required: true
      tags:
      - user-action-executions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserActionExecution'
          description: ''
  /api/user-action-providers/:
    get:
      operationId: user_action_providers_list
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - user-action-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserActionProvider'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: user_action_providers_count
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - user-action-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/user-action-providers/{id}/:
    get:
      operationId: user_action_providers_retrieve
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this user action provider.
        required: true
      tags:
      - user-action-providers
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserActionProvider'
          description: ''
  /api/user-actions/:
    get:
      operationId: user_actions_list
      parameters:
      - in: query
        name: action_type
        schema:
          type: string
      - in: query
        name: created_after
        schema:
          type: string
          format: date-time
      - in: query
        name: created_before
        schema:
          type: string
          format: date-time
      - in: query
        name: due_within_days
        schema:
          type: number
      - in: query
        name: include_silenced
        schema:
          type: boolean
      - in: query
        name: is_silenced
        schema:
          type: boolean
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: overdue
        schema:
          type: boolean
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: urgency
        schema:
          type: string
          enum:
          - high
          - low
          - medium
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: Filter by user UUID (staff only).
      tags:
      - user-actions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserAction'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: user_actions_count
      parameters:
      - in: query
        name: action_type
        schema:
          type: string
      - in: query
        name: created_after
        schema:
          type: string
          format: date-time
      - in: query
        name: created_before
        schema:
          type: string
          format: date-time
      - in: query
        name: due_within_days
        schema:
          type: number
      - in: query
        name: include_silenced
        schema:
          type: boolean
      - in: query
        name: is_silenced
        schema:
          type: boolean
      - name: o
        required: false
        in: query
        description: Which field to use when ordering the results.
        schema:
          type: string
      - in: query
        name: overdue
        schema:
          type: boolean
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: urgency
        schema:
          type: string
          enum:
          - high
          - low
          - medium
      - in: query
        name: user_uuid
        schema:
          type: string
          format: uuid
        description: Filter by user UUID (staff only).
      tags:
      - user-actions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/user-actions/{uuid}/:
    get:
      operationId: user_actions_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-actions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserAction'
          description: ''
  /api/user-actions/{uuid}/execute_action/:
    post:
      operationId: user_actions_execute_action
      description: Execute a corrective action
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-actions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExecuteActionRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecuteActionResponse'
          description: ''
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecuteActionErrorResponse'
          description: ''
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecuteActionErrorResponse'
          description: ''
  /api/user-actions/{uuid}/silence/:
    post:
      operationId: user_actions_silence
      description: Silence an action temporarily or permanently
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-actions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SilenceActionRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SilenceActionResponse'
          description: ''
  /api/user-actions/{uuid}/unsilence/:
    post:
      operationId: user_actions_unsilence
      description: Remove silence from an action
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-actions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnsilenceActionResponse'
          description: ''
  /api/user-actions/bulk_silence/:
    post:
      operationId: user_actions_bulk_silence
      description: Bulk silence actions by filters
      tags:
      - user-actions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SilenceActionRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkSilenceResponse'
          description: ''
  /api/user-actions/summary/:
    get:
      operationId: user_actions_summary_retrieve
      description: Get action summary counts
      tags:
      - user-actions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserActionSummary'
          description: ''
    head:
      operationId: user_actions_summary_count
      description: Get number of items in the collection matching the request parameters.
      tags:
      - user-actions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-actions/update_actions/:
    post:
      operationId: user_actions_update_actions
      description: Trigger update of user actions
      tags:
      - user-actions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateActionsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateActionsResponse'
          description: ''
  /api/user-agreements/:
    get:
      operationId: user_agreements_list
      description: Retrieve a list of user agreements (Terms of Service and Privacy
        Policy). Supports filtering by agreement type and language with fallback behavior.
      summary: List user agreements
      parameters:
      - in: query
        name: agreement_type
        schema:
          type: string
          enum:
          - PP
          - TOS
      - in: query
        name: language
        schema:
          type: string
        description: ISO 639-1 language code (e.g., 'en', 'de', 'et'). Returns requested
          language or falls back to default version if unavailable.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - user-agreements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserAgreement'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: user_agreements_create
      tags:
      - user-agreements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserAgreementRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserAgreement'
          description: ''
    head:
      operationId: user_agreements_count
      description: Get number of items in the collection matching the request parameters.
      summary: List user agreements
      parameters:
      - in: query
        name: agreement_type
        schema:
          type: string
          enum:
          - PP
          - TOS
      - in: query
        name: language
        schema:
          type: string
        description: ISO 639-1 language code (e.g., 'en', 'de', 'et'). Returns requested
          language or falls back to default version if unavailable.
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      tags:
      - user-agreements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-agreements/{uuid}/:
    get:
      operationId: user_agreements_retrieve
      description: Fetch the details of a specific user agreement by its UUID.
      summary: Retrieve user agreement
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-agreements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserAgreement'
          description: ''
    put:
      operationId: user_agreements_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-agreements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserAgreementRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserAgreement'
          description: ''
    patch:
      operationId: user_agreements_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-agreements
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserAgreementRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserAgreement'
          description: ''
    delete:
      operationId: user_agreements_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-agreements
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/user-group-invitations/:
    get:
      operationId: user_group_invitations_list
      description: Retrieve a list of group invitations. Unauthenticated users can
        only see public invitations.
      summary: List group invitations
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: is_public
        schema:
          type: boolean
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role_name
        schema:
          type: string
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: scope_type
        schema:
          type: string
      tags:
      - user-group-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GroupInvitation'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: user_group_invitations_create
      description: Create a new group invitation, which acts as a template for users
        to request permissions.
      summary: Create group invitation
      tags:
      - user-group-invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroupInvitationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupInvitation'
          description: ''
    head:
      operationId: user_group_invitations_count
      description: Get number of items in the collection matching the request parameters.
      summary: List group invitations
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: is_active
        schema:
          type: boolean
      - in: query
        name: is_public
        schema:
          type: boolean
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - created
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role_name
        schema:
          type: string
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: scope_type
        schema:
          type: string
      tags:
      - user-group-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-group-invitations/{uuid}/:
    get:
      operationId: user_group_invitations_retrieve
      description: Retrieve details of a specific group invitation. Unauthenticated
        users can only see public invitations.
      summary: Retrieve group invitation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-group-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupInvitation'
          description: ''
    put:
      operationId: user_group_invitations_update
      description: Update an active group invitation. Only active invitations can
        be edited.
      summary: Update a group invitation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-group-invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroupInvitationUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupInvitationUpdate'
          description: ''
    patch:
      operationId: user_group_invitations_partial_update
      description: Partially update an active group invitation. Only active invitations
        can be edited.
      summary: Partially update a group invitation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-group-invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedGroupInvitationUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupInvitationUpdate'
          description: ''
    delete:
      operationId: user_group_invitations_destroy
      description: Deletes an inactive group invitation. Only invitations that have
        been canceled (is_active=False) can be deleted.
      summary: Delete a group invitation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-group-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/user-group-invitations/{uuid}/cancel/:
    post:
      operationId: user_group_invitations_cancel
      description: Cancels an active group invitation, preventing new permission requests
        from being created.
      summary: Cancel a group invitation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-group-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-group-invitations/{uuid}/projects/:
    get:
      operationId: user_group_invitations_projects_list
      description: For a group invitation scoped to a customer, this endpoint lists
        all projects within that customer.
      summary: List projects for a customer-scoped group invitation
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-group-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NestedProject'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/user-group-invitations/{uuid}/submit_request/:
    post:
      operationId: user_group_invitations_submit_request
      description: Creates a permission request based on a group invitation for the
        currently authenticated user. If the invitation has auto_approve enabled and
        the user matches the required patterns, the request is automatically approved.
      summary: Submit a permission request
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-group-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitRequestResponse'
          description: ''
  /api/user-invitations/:
    get:
      operationId: user_invitations_list
      description: Retrieve a list of user invitations visible to the current user.
      summary: List user invitations
      parameters:
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: email
        schema:
          type: string
      - in: query
        name: email_exact
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -created_by
            - -email
            - -state
            - created
            - created_by
            - email
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role_name
        schema:
          type: string
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: scope_description
        schema:
          type: string
      - in: query
        name: scope_name
        schema:
          type: string
      - in: query
        name: scope_type
        schema:
          type: string
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - accepted
            - canceled
            - expired
            - pending
            - project
            - rejected
            - requested
        explode: true
        style: form
      tags:
      - user-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Invitation'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: user_invitations_create
      description: Create a new user invitation to grant a role in a specific scope
        (e.g., organization or project).
      summary: Create user invitation
      tags:
      - user-invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvitationRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invitation'
          description: ''
    head:
      operationId: user_invitations_count
      description: Get number of items in the collection matching the request parameters.
      summary: List user invitations
      parameters:
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: email
        schema:
          type: string
      - in: query
        name: email_exact
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -created_by
            - -email
            - -state
            - created
            - created_by
            - email
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role_name
        schema:
          type: string
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: scope_description
        schema:
          type: string
      - in: query
        name: scope_name
        schema:
          type: string
      - in: query
        name: scope_type
        schema:
          type: string
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - accepted
            - canceled
            - expired
            - pending
            - project
            - rejected
            - requested
        explode: true
        style: form
      tags:
      - user-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-invitations/{uuid}/:
    get:
      operationId: user_invitations_retrieve
      description: Retrieve details of a specific user invitation.
      summary: Retrieve user invitation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invitation'
          description: ''
    put:
      operationId: user_invitations_update
      description: Update an existing user invitation. Only pending invitations can
        be edited. Allows changing email and role within the same scope.
      summary: Update user invitation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvitationUpdateRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationUpdate'
          description: ''
    patch:
      operationId: user_invitations_partial_update
      description: Partially update an existing user invitation. Only pending invitations
        can be edited. Allows changing email and role within the same scope.
      summary: Partially update user invitation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedInvitationUpdateRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationUpdate'
          description: ''
    delete:
      operationId: user_invitations_destroy
      description: Delete a user invitation. Only users with invitation management
        permissions can delete invitations.
      summary: Delete user invitation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/user-invitations/{uuid}/accept/:
    post:
      operationId: user_invitations_accept
      description: Accepts an invitation for the currently authenticated user. This
        grants the user the specified role in the invitation's scope.
      summary: Accept an invitation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-invitations/{uuid}/cancel/:
    post:
      operationId: user_invitations_cancel
      description: Cancels a pending or planned (pending_project) invitation.
      summary: Cancel an invitation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                description: Invitation has been successfully canceled.
          description: ''
  /api/user-invitations/{uuid}/check/:
    post:
      operationId: user_invitations_check
      description: Checks if an invitation is pending and returns its email and whether
        a civil number is required for acceptance. This endpoint is public and does
        not require authentication.
      summary: Check invitation validity
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationCheck'
          description: ''
  /api/user-invitations/{uuid}/delete/:
    post:
      operationId: user_invitations_delete
      description: Deletes an invitation. This action is restricted to staff users.
      summary: Delete an invitation (staff only)
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-invitations/{uuid}/details/:
    get:
      operationId: user_invitations_details_retrieve
      description: Retrieves public-facing details of an invitation. This is used
        to show information to a user before they accept it.
      summary: Get public invitation details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VisibleInvitationDetails'
          description: ''
  /api/user-invitations/{uuid}/send/:
    post:
      operationId: user_invitations_send
      description: Resends an email for a pending, expired, or canceled invitation.
        If the invitation was expired or canceled, its state is reset to 'pending'
        and its creation time is updated.
      summary: Resend an invitation
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-invitations
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-invitations/approve/:
    post:
      operationId: user_invitations_approve
      description: "\n        For user's convenience invitation approval is performed\
        \ without authentication.\n        User UUID and invitation UUID is encoded\
        \ into cryptographically signed token.\n        "
      summary: Approve a requested invitation
      tags:
      - user-invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-invitations/check-duplicates/:
    post:
      operationId: user_invitations_check_duplicates
      description: Returns pending invitations that already exist for the same email
        and role within the given scope.
      summary: Check for duplicate invitations
      tags:
      - user-invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvitationDuplicateCheckRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvitationDuplicateCheckResponse'
          description: ''
  /api/user-invitations/reject/:
    post:
      operationId: user_invitations_reject
      description: "\n        For user's convenience invitation reject action is performed\
        \ without authentication.\n        User UUID and invitation UUID is encoded\
        \ into cryptographically signed token.\n        "
      summary: Reject a requested invitation
      tags:
      - user-invitations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-permission-requests/:
    get:
      operationId: user_permission_requests_list
      description: Retrieve a list of permission requests visible to the user.
      summary: List permission requests
      parameters:
      - in: query
        name: created_by
        schema:
          type: string
          format: uuid
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: invitation
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -state
            - created
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - approved
            - canceled
            - draft
            - pending
            - rejected
        explode: true
        style: form
      tags:
      - user-permission-requests
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PermissionRequest'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: user_permission_requests_count
      description: Get number of items in the collection matching the request parameters.
      summary: List permission requests
      parameters:
      - in: query
        name: created_by
        schema:
          type: string
          format: uuid
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
      - in: query
        name: invitation
        schema:
          type: string
          format: uuid
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -state
            - created
            - state
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - approved
            - canceled
            - draft
            - pending
            - rejected
        explode: true
        style: form
      tags:
      - user-permission-requests
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-permission-requests/{uuid}/:
    get:
      operationId: user_permission_requests_retrieve
      description: Retrieve details of a specific permission request.
      summary: Retrieve permission request
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-permission-requests
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionRequest'
          description: ''
  /api/user-permission-requests/{uuid}/approve/:
    post:
      operationId: user_permission_requests_approve
      description: Approves a pending permission request, granting the requesting
        user the permissions defined in the associated group invitation.
      summary: Approve a permission request
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-permission-requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewCommentRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-permission-requests/{uuid}/cancel_request/:
    post:
      operationId: user_permission_requests_cancel_request
      description: Cancels a pending or draft permission request. This can be done
        by the user who created the request or by a staff member.
      summary: Cancel a permission request
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-permission-requests
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancelRequestResponse'
          description: ''
  /api/user-permission-requests/{uuid}/reject/:
    post:
      operationId: user_permission_requests_reject
      description: Rejects a pending permission request.
      summary: Reject a permission request
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-permission-requests
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewCommentRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-permissions/:
    get:
      operationId: user_permissions_list
      description: Get a list of all permissions for the current user. Staff and support
        users can view all user permissions. The list can be filtered by user, scope,
        role, etc.
      summary: List user permissions
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: expiration_time
        schema:
          type: string
          format: date-time
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name contains
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: native_name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -email
            - -expiration_time
            - -full_name
            - -native_name
            - -role
            - -username
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role_name
        schema:
          type: string
        description: Role name contains
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
        description: Role UUID
      - in: query
        name: scope_name
        schema:
          type: string
        description: Scope name
      - in: query
        name: scope_type
        schema:
          type: string
        description: Scope type
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: user
        schema:
          type: string
          format: uuid
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug contains
      - in: query
        name: user_url
        schema:
          type: string
      - in: query
        name: username
        schema:
          type: string
      tags:
      - user-permissions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Permission'
                description: ''
              examples:
                ExampleUserPermissionListResponse:
                  value:
                  - - user_uuid: 8f20242b638743b18a485f81ac685e13
                      user_name: Alice Smith
                      user_slug: alice-smith
                      created: '2023-10-26T10:00:00Z'
                      expiration_time: '2024-12-31T23:59:59Z'
                      created_by_full_name: Bob Johnson
                      created_by_username: bob
                      role_name: PROJECT.ADMIN
                      role_description: Project administrator with full control over
                        the project.
                      role_uuid: d8c2d5852d434937985392d24249b6d3
                      scope_type: project
                      scope_uuid: c81f33f1b4094a319e1fe1a3d5ca76a5
                      scope_name: Cloud Storage Project
                      customer_uuid: b7e4501a1c6a4f91807d79b932408c62
                      customer_name: MegaCorp
                  summary: Example user permission list response
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: user_permissions_count
      description: Get number of items in the collection matching the request parameters.
      summary: List user permissions
      parameters:
      - in: query
        name: created
        schema:
          type: string
          format: date-time
        description: Created after
      - in: query
        name: expiration_time
        schema:
          type: string
          format: date-time
      - in: query
        name: full_name
        schema:
          type: string
        description: User full name contains
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Modified after
      - in: query
        name: native_name
        schema:
          type: string
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -created
            - -email
            - -expiration_time
            - -full_name
            - -native_name
            - -role
            - -username
            - created
            - email
            - expiration_time
            - full_name
            - native_name
            - role
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: role_name
        schema:
          type: string
        description: Role name contains
      - in: query
        name: role_uuid
        schema:
          type: string
          format: uuid
        description: Role UUID
      - in: query
        name: scope_name
        schema:
          type: string
        description: Scope name
      - in: query
        name: scope_type
        schema:
          type: string
        description: Scope type
      - in: query
        name: scope_uuid
        schema:
          type: string
        description: Scope UUID
      - in: query
        name: user
        schema:
          type: string
          format: uuid
      - in: query
        name: user_slug
        schema:
          type: string
        description: User slug contains
      - in: query
        name: user_url
        schema:
          type: string
      - in: query
        name: username
        schema:
          type: string
      tags:
      - user-permissions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/user-permissions/{uuid}/:
    get:
      operationId: user_permissions_retrieve
      description: Retrieve the details of a specific user permission grant by its
        UUID.
      summary: Get permission details
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - user-permissions
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Permission'
              examples:
                ExampleUserPermissionDetailResponse:
                  value:
                    user_uuid: 8f20242b638743b18a485f81ac685e13
                    user_name: Alice Smith
                    user_slug: alice-smith
                    created: '2023-10-26T10:00:00Z'
                    expiration_time: '2024-12-31T23:59:59Z'
                    created_by_full_name: Bob Johnson
                    created_by_username: bob
                    role_name: PROJECT.ADMIN
                    role_description: Project administrator with full control over
                      the project.
                    role_uuid: d8c2d5852d434937985392d24249b6d3
                    scope_type: project
                    scope_uuid: c81f33f1b4094a319e1fe1a3d5ca76a5
                    scope_name: Cloud Storage Project
                    customer_uuid: b7e4501a1c6a4f91807d79b932408c62
                    customer_name: MegaCorp
                  summary: Example user permission detail response
          description: ''
  /api/users/:
    get:
      operationId: users_list
      parameters:
      - in: query
        name: agreement_date
        schema:
          type: string
          format: date-time
        description: Agreement date after
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_joined
        schema:
          type: string
          format: date-time
        description: Date joined after
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: email
        schema:
          type: string
        description: Email
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - active_isds
            - affiliations
            - agree_with_policy
            - agreement_date
            - attribute_sources
            - birth_date
            - civil_number
            - country_of_residence
            - date_joined
            - description
            - eduperson_assurance
            - email
            - first_name
            - full_name
            - gender
            - has_active_session
            - identity_provider_fields
            - identity_provider_label
            - identity_provider_management_url
            - identity_provider_name
            - identity_source
            - image
            - ip_address
            - is_active
            - is_identity_manager
            - is_staff
            - is_support
            - job_title
            - last_name
            - managed_isds
            - nationalities
            - nationality
            - native_name
            - notifications_enabled
            - organization
            - organization_country
            - organization_registry_code
            - organization_type
            - permissions
            - personal_title
            - phone_number
            - place_of_birth
            - preferred_language
            - registration_method
            - requested_email
            - slug
            - token
            - token_expires_at
            - token_lifetime
            - url
            - username
            - uuid
      - in: query
        name: full_name
        schema:
          type: string
        description: Full name
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: is_staff
        schema:
          type: boolean
        description: Is staff
      - in: query
        name: is_support
        schema:
          type: boolean
        description: Is support
      - in: query
        name: job_title
        schema:
          type: string
        description: Job title
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Date modified after
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -description
            - -email
            - -full_name
            - -is_active
            - -is_staff
            - -is_support
            - -job_title
            - -native_name
            - -organization
            - -phone_number
            - -registration_method
            - -username
            - description
            - email
            - full_name
            - is_active
            - is_staff
            - is_support
            - job_title
            - native_name
            - organization
            - phone_number
            - registration_method
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: string
        description: Organization
      - in: query
        name: organization_roles
        schema:
          type: string
        description: Organization roles
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: phone_number
        schema:
          type: string
      - in: query
        name: project_roles
        schema:
          type: string
        description: Project roles
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Filter by first name, last name, civil number, username or email
      - in: query
        name: registration_method
        schema:
          type: string
      - in: query
        name: user_keyword
        schema:
          type: string
        description: User keyword
      - in: query
        name: username
        schema:
          type: string
        description: Username (exact)
      - in: query
        name: username_list
        schema:
          type: string
        description: Comma-separated usernames
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: users_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
    head:
      operationId: users_count
      parameters:
      - in: query
        name: agreement_date
        schema:
          type: string
          format: date-time
        description: Agreement date after
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_joined
        schema:
          type: string
          format: date-time
        description: Date joined after
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: email
        schema:
          type: string
        description: Email
      - in: query
        name: full_name
        schema:
          type: string
        description: Full name
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: is_staff
        schema:
          type: boolean
        description: Is staff
      - in: query
        name: is_support
        schema:
          type: boolean
        description: Is support
      - in: query
        name: job_title
        schema:
          type: string
        description: Job title
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Date modified after
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -description
            - -email
            - -full_name
            - -is_active
            - -is_staff
            - -is_support
            - -job_title
            - -native_name
            - -organization
            - -phone_number
            - -registration_method
            - -username
            - description
            - email
            - full_name
            - is_active
            - is_staff
            - is_support
            - job_title
            - native_name
            - organization
            - phone_number
            - registration_method
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: string
        description: Organization
      - in: query
        name: organization_roles
        schema:
          type: string
        description: Organization roles
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: phone_number
        schema:
          type: string
      - in: query
        name: project_roles
        schema:
          type: string
        description: Project roles
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Filter by first name, last name, civil number, username or email
      - in: query
        name: registration_method
        schema:
          type: string
      - in: query
        name: user_keyword
        schema:
          type: string
        description: User keyword
      - in: query
        name: username
        schema:
          type: string
        description: Username (exact)
      - in: query
        name: username_list
        schema:
          type: string
        description: Comma-separated usernames
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/users/{uuid}/:
    get:
      operationId: users_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - active_isds
            - affiliations
            - agree_with_policy
            - agreement_date
            - attribute_sources
            - birth_date
            - civil_number
            - country_of_residence
            - date_joined
            - description
            - eduperson_assurance
            - email
            - first_name
            - full_name
            - gender
            - has_active_session
            - identity_provider_fields
            - identity_provider_label
            - identity_provider_management_url
            - identity_provider_name
            - identity_source
            - image
            - ip_address
            - is_active
            - is_identity_manager
            - is_staff
            - is_support
            - job_title
            - last_name
            - managed_isds
            - nationalities
            - nationality
            - native_name
            - notifications_enabled
            - organization
            - organization_country
            - organization_registry_code
            - organization_type
            - permissions
            - personal_title
            - phone_number
            - place_of_birth
            - preferred_language
            - registration_method
            - requested_email
            - slug
            - token
            - token_expires_at
            - token_lifetime
            - url
            - username
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
    put:
      operationId: users_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserRequestMultipart'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
    patch:
      operationId: users_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUserRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUserRequestForm'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUserRequestMultipart'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
    delete:
      operationId: users_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/users/{uuid}/cancel_change_email/:
    post:
      operationId: users_cancel_change_email
      description: Cancel email update request
      summary: Cancel email change request
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/users/{uuid}/change_email/:
    post:
      operationId: users_change_email
      description: Allows to change email for user.
      summary: Request email change
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserEmailChangeRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/users/{uuid}/change_password/:
    post:
      operationId: users_change_password
      description: Allows staff user to change password for any user.
      summary: Change user password
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PasswordChangeRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/users/{uuid}/data_access/:
    get:
      operationId: users_data_access_retrieve
      description: Shows who has access to the user's profile data. Includes administrative
        access (staff/support), organizational access (same customer/project), and
        service provider access (via consent). Regular users see counts for admin
        access; staff/support see individual records.
      summary: Get user data access visibility
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDataAccess'
          description: ''
  /api/users/{uuid}/data_access_history/:
    get:
      operationId: users_data_access_history_list
      description: Shows historical log of who has accessed the user's profile data.
        Regular users see anonymized accessor categories. Staff/support see full details
        including accessor identity, IP, and context.
      summary: Get user data access history
      parameters:
      - in: query
        name: accessor_type
        schema:
          type: string
        description: Filter by accessor type (staff, support, organization_member,
          self)
      - in: query
        name: agreement_date
        schema:
          type: string
          format: date-time
        description: Agreement date after
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_joined
        schema:
          type: string
          format: date-time
        description: Date joined after
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: email
        schema:
          type: string
        description: Email
      - in: query
        name: end_date
        schema:
          type: string
          format: date
        description: Filter logs until this date (inclusive)
      - in: query
        name: full_name
        schema:
          type: string
        description: Full name
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: is_staff
        schema:
          type: boolean
        description: Is staff
      - in: query
        name: is_support
        schema:
          type: boolean
        description: Is support
      - in: query
        name: job_title
        schema:
          type: string
        description: Job title
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Date modified after
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -description
            - -email
            - -full_name
            - -is_active
            - -is_staff
            - -is_support
            - -job_title
            - -native_name
            - -organization
            - -phone_number
            - -registration_method
            - -username
            - description
            - email
            - full_name
            - is_active
            - is_staff
            - is_support
            - job_title
            - native_name
            - organization
            - phone_number
            - registration_method
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: string
        description: Organization
      - in: query
        name: organization_roles
        schema:
          type: string
        description: Organization roles
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: phone_number
        schema:
          type: string
      - in: query
        name: project_roles
        schema:
          type: string
        description: Project roles
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Filter by first name, last name, civil number, username or email
      - in: query
        name: registration_method
        schema:
          type: string
      - in: query
        name: start_date
        schema:
          type: string
          format: date
        description: Filter logs from this date (inclusive)
      - in: query
        name: user_keyword
        schema:
          type: string
        description: User keyword
      - in: query
        name: username
        schema:
          type: string
        description: Username (exact)
      - in: query
        name: username_list
        schema:
          type: string
        description: Comma-separated usernames
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserDataAccessLog'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/users/{uuid}/history/:
    get:
      operationId: users_history_list
      description: Returns the version history for this object. Only accessible by
        staff and support users.
      summary: Get version history
      parameters:
      - in: query
        name: agreement_date
        schema:
          type: string
          format: date-time
        description: Agreement date after
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: created_after
        schema:
          type: string
        description: Filter versions created after this timestamp (ISO 8601)
      - in: query
        name: created_before
        schema:
          type: string
        description: Filter versions created before this timestamp (ISO 8601)
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_joined
        schema:
          type: string
          format: date-time
        description: Date joined after
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: email
        schema:
          type: string
        description: Email
      - in: query
        name: full_name
        schema:
          type: string
        description: Full name
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: is_staff
        schema:
          type: boolean
        description: Is staff
      - in: query
        name: is_support
        schema:
          type: boolean
        description: Is support
      - in: query
        name: job_title
        schema:
          type: string
        description: Job title
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Date modified after
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -description
            - -email
            - -full_name
            - -is_active
            - -is_staff
            - -is_support
            - -job_title
            - -native_name
            - -organization
            - -phone_number
            - -registration_method
            - -username
            - description
            - email
            - full_name
            - is_active
            - is_staff
            - is_support
            - job_title
            - native_name
            - organization
            - phone_number
            - registration_method
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: string
        description: Organization
      - in: query
        name: organization_roles
        schema:
          type: string
        description: Organization roles
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: phone_number
        schema:
          type: string
      - in: query
        name: project_roles
        schema:
          type: string
        description: Project roles
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Filter by first name, last name, civil number, username or email
      - in: query
        name: registration_method
        schema:
          type: string
      - in: query
        name: user_keyword
        schema:
          type: string
        description: User keyword
      - in: query
        name: username
        schema:
          type: string
        description: Username (exact)
      - in: query
        name: username_list
        schema:
          type: string
        description: Comma-separated usernames
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VersionHistory'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
  /api/users/{uuid}/history/at/:
    get:
      operationId: users_history_at_retrieve
      description: Returns the state of the object as it was at the specified timestamp.
        Only accessible by staff and support users.
      summary: Get object state at a specific timestamp
      parameters:
      - in: query
        name: timestamp
        schema:
          type: string
        description: ISO 8601 timestamp to query the object state at
        required: true
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionHistory'
          description: ''
        '400':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
        '404':
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: ''
  /api/users/{uuid}/identity_bridge_status/:
    get:
      operationId: users_identity_bridge_status_retrieve
      description: 'Returns diagnostic information about a user''s identity bridge
        state: active ISDs, per-attribute source tracking with staleness detection,
        and effective bridge-writable fields. Staff only.'
      summary: Get identity bridge status for a user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentityBridgeUserStatus'
          description: ''
  /api/users/{uuid}/pull_remote_user/:
    post:
      operationId: users_pull_remote_user
      summary: Synchronize user details from eduTEAMS
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/users/{uuid}/refresh_token/:
    post:
      operationId: users_refresh_token
      summary: Refresh user auth token
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserAuthToken'
          description: ''
  /api/users/{uuid}/send_notification/:
    post:
      operationId: users_send_notification
      description: Staff-only action to send a pending actions digest notification
        to a specific user.
      summary: Send action notification to a specific user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendNotificationResponse'
          description: ''
  /api/users/{uuid}/token/:
    get:
      operationId: users_token_retrieve
      summary: Get user auth token
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserAuthToken'
          description: ''
  /api/users/{uuid}/update_actions/:
    post:
      operationId: users_update_actions
      description: Staff-only action to trigger recalculation of user actions for
        a specific user.
      summary: Recalculate user actions for a specific user
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateActionsRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateActionsResponse'
          description: ''
  /api/users/confirm_email/:
    post:
      operationId: users_confirm_email
      description: Confirm email update using code
      summary: Confirm email change
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfirmEmailRequestRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/users/me/:
    get:
      operationId: users_me_retrieve
      description: Get current user details, including authentication token and profile
        completeness status.
      summary: Get current user details
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - active_isds
            - affiliations
            - agree_with_policy
            - agreement_date
            - attribute_sources
            - birth_date
            - civil_number
            - country_of_residence
            - date_joined
            - description
            - eduperson_assurance
            - email
            - first_name
            - full_name
            - gender
            - has_active_session
            - identity_provider_fields
            - identity_provider_label
            - identity_provider_management_url
            - identity_provider_name
            - identity_source
            - image
            - ip_address
            - is_active
            - is_identity_manager
            - is_staff
            - is_support
            - job_title
            - last_name
            - managed_isds
            - nationalities
            - nationality
            - native_name
            - notifications_enabled
            - organization
            - organization_country
            - organization_registry_code
            - organization_type
            - permissions
            - personal_title
            - phone_number
            - place_of_birth
            - preferred_language
            - registration_method
            - requested_email
            - slug
            - token
            - token_expires_at
            - token_lifetime
            - url
            - username
            - uuid
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
    head:
      operationId: users_me_count
      description: Get number of items in the collection matching the request parameters.
      summary: Get current user details
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/users/profile_completeness/:
    get:
      operationId: users_profile_completeness_retrieve
      description: Check if user profile is complete with all mandatory attributes.
      summary: Check profile completeness
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileCompleteness'
          description: ''
    head:
      operationId: users_profile_completeness_count
      description: Get number of items in the collection matching the request parameters.
      summary: Check profile completeness
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/users/scim_sync_all/:
    post:
      operationId: users_scim_sync_all
      description: Staff-only action to queue SCIM synchronization for all users.
      summary: Trigger SCIM synchronization for all users
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScimSyncAllResponse'
          description: ''
  /api/users/user_active_status_count/:
    get:
      operationId: users_user_active_status_count_list
      description: Returns aggregated counts of users by active/inactive status. Staff
        or support only.
      summary: Get user counts by active status
      parameters:
      - in: query
        name: agreement_date
        schema:
          type: string
          format: date-time
        description: Agreement date after
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_joined
        schema:
          type: string
          format: date-time
        description: Date joined after
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: email
        schema:
          type: string
        description: Email
      - in: query
        name: full_name
        schema:
          type: string
        description: Full name
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: is_staff
        schema:
          type: boolean
        description: Is staff
      - in: query
        name: is_support
        schema:
          type: boolean
        description: Is support
      - in: query
        name: job_title
        schema:
          type: string
        description: Job title
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Date modified after
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -description
            - -email
            - -full_name
            - -is_active
            - -is_staff
            - -is_support
            - -job_title
            - -native_name
            - -organization
            - -phone_number
            - -registration_method
            - -username
            - description
            - email
            - full_name
            - is_active
            - is_staff
            - is_support
            - job_title
            - native_name
            - organization
            - phone_number
            - registration_method
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: string
        description: Organization
      - in: query
        name: organization_roles
        schema:
          type: string
        description: Organization roles
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: phone_number
        schema:
          type: string
      - in: query
        name: project_roles
        schema:
          type: string
        description: Project roles
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Filter by first name, last name, civil number, username or email
      - in: query
        name: registration_method
        schema:
          type: string
      - in: query
        name: user_keyword
        schema:
          type: string
        description: User keyword
      - in: query
        name: username
        schema:
          type: string
        description: Username (exact)
      - in: query
        name: username_list
        schema:
          type: string
        description: Comma-separated usernames
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserActiveStatusCount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: users_user_active_status_count_count
      description: Get number of items in the collection matching the request parameters.
      summary: Get user counts by active status
      parameters:
      - in: query
        name: agreement_date
        schema:
          type: string
          format: date-time
        description: Agreement date after
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_joined
        schema:
          type: string
          format: date-time
        description: Date joined after
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: email
        schema:
          type: string
        description: Email
      - in: query
        name: full_name
        schema:
          type: string
        description: Full name
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: is_staff
        schema:
          type: boolean
        description: Is staff
      - in: query
        name: is_support
        schema:
          type: boolean
        description: Is support
      - in: query
        name: job_title
        schema:
          type: string
        description: Job title
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Date modified after
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -description
            - -email
            - -full_name
            - -is_active
            - -is_staff
            - -is_support
            - -job_title
            - -native_name
            - -organization
            - -phone_number
            - -registration_method
            - -username
            - description
            - email
            - full_name
            - is_active
            - is_staff
            - is_support
            - job_title
            - native_name
            - organization
            - phone_number
            - registration_method
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: string
        description: Organization
      - in: query
        name: organization_roles
        schema:
          type: string
        description: Organization roles
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: phone_number
        schema:
          type: string
      - in: query
        name: project_roles
        schema:
          type: string
        description: Project roles
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Filter by first name, last name, civil number, username or email
      - in: query
        name: registration_method
        schema:
          type: string
      - in: query
        name: user_keyword
        schema:
          type: string
        description: User keyword
      - in: query
        name: username
        schema:
          type: string
        description: Username (exact)
      - in: query
        name: username_list
        schema:
          type: string
        description: Comma-separated usernames
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/users/user_language_count/:
    get:
      operationId: users_user_language_count_list
      description: Returns aggregated counts of users by preferred language. Staff
        or support only.
      summary: Get user counts by preferred language
      parameters:
      - in: query
        name: agreement_date
        schema:
          type: string
          format: date-time
        description: Agreement date after
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_joined
        schema:
          type: string
          format: date-time
        description: Date joined after
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: email
        schema:
          type: string
        description: Email
      - in: query
        name: full_name
        schema:
          type: string
        description: Full name
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: is_staff
        schema:
          type: boolean
        description: Is staff
      - in: query
        name: is_support
        schema:
          type: boolean
        description: Is support
      - in: query
        name: job_title
        schema:
          type: string
        description: Job title
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Date modified after
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -description
            - -email
            - -full_name
            - -is_active
            - -is_staff
            - -is_support
            - -job_title
            - -native_name
            - -organization
            - -phone_number
            - -registration_method
            - -username
            - description
            - email
            - full_name
            - is_active
            - is_staff
            - is_support
            - job_title
            - native_name
            - organization
            - phone_number
            - registration_method
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: string
        description: Organization
      - in: query
        name: organization_roles
        schema:
          type: string
        description: Organization roles
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: phone_number
        schema:
          type: string
      - in: query
        name: project_roles
        schema:
          type: string
        description: Project roles
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Filter by first name, last name, civil number, username or email
      - in: query
        name: registration_method
        schema:
          type: string
      - in: query
        name: user_keyword
        schema:
          type: string
        description: User keyword
      - in: query
        name: username
        schema:
          type: string
        description: Username (exact)
      - in: query
        name: username_list
        schema:
          type: string
        description: Comma-separated usernames
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserLanguageCount'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: users_user_language_count_count
      description: Get number of items in the collection matching the request parameters.
      summary: Get user counts by preferred language
      parameters:
      - in: query
        name: agreement_date
        schema:
          type: string
          format: date-time
        description: Agreement date after
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_joined
        schema:
          type: string
          format: date-time
        description: Date joined after
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: email
        schema:
          type: string
        description: Email
      - in: query
        name: full_name
        schema:
          type: string
        description: Full name
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: is_staff
        schema:
          type: boolean
        description: Is staff
      - in: query
        name: is_support
        schema:
          type: boolean
        description: Is support
      - in: query
        name: job_title
        schema:
          type: string
        description: Job title
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Date modified after
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -description
            - -email
            - -full_name
            - -is_active
            - -is_staff
            - -is_support
            - -job_title
            - -native_name
            - -organization
            - -phone_number
            - -registration_method
            - -username
            - description
            - email
            - full_name
            - is_active
            - is_staff
            - is_support
            - job_title
            - native_name
            - organization
            - phone_number
            - registration_method
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: string
        description: Organization
      - in: query
        name: organization_roles
        schema:
          type: string
        description: Organization roles
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: phone_number
        schema:
          type: string
      - in: query
        name: project_roles
        schema:
          type: string
        description: Project roles
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Filter by first name, last name, civil number, username or email
      - in: query
        name: registration_method
        schema:
          type: string
      - in: query
        name: user_keyword
        schema:
          type: string
        description: User keyword
      - in: query
        name: username
        schema:
          type: string
        description: Username (exact)
      - in: query
        name: username_list
        schema:
          type: string
        description: Comma-separated usernames
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/users/user_registration_trend/:
    get:
      operationId: users_user_registration_trend_list
      description: Returns user registration counts aggregated by month. Staff or
        support only.
      summary: Get user registration trends by month
      parameters:
      - in: query
        name: agreement_date
        schema:
          type: string
          format: date-time
        description: Agreement date after
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_joined
        schema:
          type: string
          format: date-time
        description: Date joined after
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: email
        schema:
          type: string
        description: Email
      - in: query
        name: full_name
        schema:
          type: string
        description: Full name
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: is_staff
        schema:
          type: boolean
        description: Is staff
      - in: query
        name: is_support
        schema:
          type: boolean
        description: Is support
      - in: query
        name: job_title
        schema:
          type: string
        description: Job title
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Date modified after
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -description
            - -email
            - -full_name
            - -is_active
            - -is_staff
            - -is_support
            - -job_title
            - -native_name
            - -organization
            - -phone_number
            - -registration_method
            - -username
            - description
            - email
            - full_name
            - is_active
            - is_staff
            - is_support
            - job_title
            - native_name
            - organization
            - phone_number
            - registration_method
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: string
        description: Organization
      - in: query
        name: organization_roles
        schema:
          type: string
        description: Organization roles
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: phone_number
        schema:
          type: string
      - in: query
        name: project_roles
        schema:
          type: string
        description: Project roles
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Filter by first name, last name, civil number, username or email
      - in: query
        name: registration_method
        schema:
          type: string
      - in: query
        name: user_keyword
        schema:
          type: string
        description: User keyword
      - in: query
        name: username
        schema:
          type: string
        description: Username (exact)
      - in: query
        name: username_list
        schema:
          type: string
        description: Comma-separated usernames
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserRegistrationTrend'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: users_user_registration_trend_count
      description: Get number of items in the collection matching the request parameters.
      summary: Get user registration trends by month
      parameters:
      - in: query
        name: agreement_date
        schema:
          type: string
          format: date-time
        description: Agreement date after
      - in: query
        name: civil_number
        schema:
          type: string
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: date_joined
        schema:
          type: string
          format: date-time
        description: Date joined after
      - in: query
        name: description
        schema:
          type: string
      - in: query
        name: email
        schema:
          type: string
        description: Email
      - in: query
        name: full_name
        schema:
          type: string
        description: Full name
      - in: query
        name: is_active
        schema:
          type: boolean
        description: Is active
      - in: query
        name: is_staff
        schema:
          type: boolean
        description: Is staff
      - in: query
        name: is_support
        schema:
          type: boolean
        description: Is support
      - in: query
        name: job_title
        schema:
          type: string
        description: Job title
      - in: query
        name: modified
        schema:
          type: string
          format: date-time
        description: Date modified after
      - in: query
        name: native_name
        schema:
          type: string
        description: Native name
      - in: query
        name: o
        schema:
          type: array
          items:
            type: string
            enum:
            - -description
            - -email
            - -full_name
            - -is_active
            - -is_staff
            - -is_support
            - -job_title
            - -native_name
            - -organization
            - -phone_number
            - -registration_method
            - -username
            - description
            - email
            - full_name
            - is_active
            - is_staff
            - is_support
            - job_title
            - native_name
            - organization
            - phone_number
            - registration_method
            - username
        description: |+
          Ordering

        explode: false
        style: form
      - in: query
        name: organization
        schema:
          type: string
        description: Organization
      - in: query
        name: organization_roles
        schema:
          type: string
        description: Organization roles
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: phone_number
        schema:
          type: string
      - in: query
        name: project_roles
        schema:
          type: string
        description: Project roles
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: query
        schema:
          type: string
        description: Filter by first name, last name, civil number, username or email
      - in: query
        name: registration_method
        schema:
          type: string
      - in: query
        name: user_keyword
        schema:
          type: string
        description: User keyword
      - in: query
        name: username
        schema:
          type: string
        description: Username (exact)
      - in: query
        name: username_list
        schema:
          type: string
        description: Comma-separated usernames
      tags:
      - users
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/version/:
    get:
      operationId: version_retrieve
      description: Retrieves the current installed version of the application and
        the latest available version from GitHub (if available). Requires staff or
        support user permissions.
      summary: Get application version
      tags:
      - version
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Version'
          description: ''
  /api/vmware-clusters/:
    get:
      operationId: vmware_clusters_list
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - vmware-clusters
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VmwareCluster'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: vmware_clusters_count
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - vmware-clusters
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/vmware-clusters/{uuid}/:
    get:
      operationId: vmware_clusters_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-clusters
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwareCluster'
          description: ''
  /api/vmware-datastores/:
    get:
      operationId: vmware_datastores_list
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - vmware-datastores
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VmwareDatastore'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: vmware_datastores_count
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - vmware-datastores
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/vmware-datastores/{uuid}/:
    get:
      operationId: vmware_datastores_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-datastores
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwareDatastore'
          description: ''
  /api/vmware-disks/:
    get:
      operationId: vmware_disks_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - state
            - url
            - uuid
            - vm
            - vm_name
            - vm_uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      - in: query
        name: vm
        schema:
          type: string
      - in: query
        name: vm_uuid
        schema:
          type: string
          format: uuid
      tags:
      - vmware-disks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VmwareDisk'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: vmware_disks_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      - in: query
        name: vm
        schema:
          type: string
      - in: query
        name: vm_uuid
        schema:
          type: string
          format: uuid
      tags:
      - vmware-disks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/vmware-disks/{uuid}/:
    get:
      operationId: vmware_disks_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - project
            - project_name
            - project_uuid
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - size
            - state
            - url
            - uuid
            - vm
            - vm_name
            - vm_uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-disks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwareDisk'
          description: ''
    delete:
      operationId: vmware_disks_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-disks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/vmware-disks/{uuid}/extend/:
    post:
      operationId: vmware_disks_extend
      description: Increase disk capacity
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-disks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VmwareDiskExtendRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwareDiskExtend'
          description: ''
  /api/vmware-disks/{uuid}/pull/:
    post:
      operationId: vmware_disks_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-disks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/vmware-disks/{uuid}/set_erred/:
    post:
      operationId: vmware_disks_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-disks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/vmware-disks/{uuid}/set_ok/:
    post:
      operationId: vmware_disks_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-disks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/vmware-disks/{uuid}/unlink/:
    post:
      operationId: vmware_disks_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-disks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/vmware-folders/:
    get:
      operationId: vmware_folders_list
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - vmware-folders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VmwareFolder'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: vmware_folders_count
      parameters:
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - vmware-folders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/vmware-folders/{uuid}/:
    get:
      operationId: vmware_folders_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-folders
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwareFolder'
          description: ''
  /api/vmware-limits/{uuid}/:
    get:
      operationId: vmware_limits_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-limits
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwareLimit'
          description: ''
  /api/vmware-networks/:
    get:
      operationId: vmware_networks_list
      parameters:
      - in: query
        name: customer_pair_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - vmware-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VmwareNetwork'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: vmware_networks_count
      parameters:
      - in: query
        name: customer_pair_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - vmware-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/vmware-networks/{uuid}/:
    get:
      operationId: vmware_networks_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-networks
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwareNetwork'
          description: ''
  /api/vmware-ports/:
    get:
      operationId: vmware_ports_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - mac_address
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - network
            - network_name
            - project
            - project_name
            - project_uuid
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
            - vm
            - vm_name
            - vm_uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: network
        schema:
          type: string
      - in: query
        name: network_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      - in: query
        name: vm
        schema:
          type: string
      - in: query
        name: vm_uuid
        schema:
          type: string
          format: uuid
      tags:
      - vmware-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VmwarePort'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: vmware_ports_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - in: query
        name: network
        schema:
          type: string
      - in: query
        name: network_uuid
        schema:
          type: string
          format: uuid
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      - in: query
        name: vm
        schema:
          type: string
      - in: query
        name: vm_uuid
        schema:
          type: string
          format: uuid
      tags:
      - vmware-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/vmware-ports/{uuid}/:
    get:
      operationId: vmware_ports_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - description
            - error_message
            - error_traceback
            - is_limit_based
            - is_usage_based
            - mac_address
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - network
            - network_name
            - project
            - project_name
            - project_uuid
            - resource_type
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - url
            - uuid
            - vm
            - vm_name
            - vm_uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwarePort'
          description: ''
    delete:
      operationId: vmware_ports_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/vmware-ports/{uuid}/pull/:
    post:
      operationId: vmware_ports_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/vmware-ports/{uuid}/set_erred/:
    post:
      operationId: vmware_ports_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-ports
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/vmware-ports/{uuid}/set_ok/:
    post:
      operationId: vmware_ports_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/vmware-ports/{uuid}/unlink/:
    post:
      operationId: vmware_ports_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-ports
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/vmware-templates/:
    get:
      operationId: vmware_templates_list
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - vmware-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VmwareTemplate'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    head:
      operationId: vmware_templates_count
      parameters:
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: settings
        schema:
          type: string
        description: Settings URL
      - in: query
        name: settings_uuid
        schema:
          type: string
          format: uuid
        description: Settings UUID
      tags:
      - vmware-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/vmware-templates/{uuid}/:
    get:
      operationId: vmware_templates_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-templates
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwareTemplate'
          description: ''
  /api/vmware-virtual-machine/:
    get:
      operationId: vmware_virtual_machine_list
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - cluster
            - cluster_name
            - cores
            - cores_per_socket
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - datastore
            - datastore_name
            - description
            - disk
            - disks
            - error_message
            - error_traceback
            - folder
            - folder_name
            - guest_os
            - guest_os_name
            - guest_power_state
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - networks
            - ports
            - project
            - project_name
            - project_uuid
            - ram
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - template
            - template_name
            - tools_installed
            - tools_state
            - url
            - uuid
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: runtime_state
        schema:
          type: string
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VmwareVirtualMachine'
                description: ''
          description: ''
          headers:
            x-result-count:
              $ref: '#/components/headers/XResultCount'
    post:
      operationId: vmware_virtual_machine_create
      tags:
      - vmware-virtual-machine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VmwareVirtualMachineRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwareVirtualMachine'
          description: ''
    head:
      operationId: vmware_virtual_machine_count
      parameters:
      - in: query
        name: backend_id
        schema:
          type: string
        description: Backend ID
      - in: query
        name: can_manage
        schema:
          type: boolean
        description: Can manage
      - in: query
        name: customer
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: customer_abbreviation
        schema:
          type: string
        description: Customer abbreviation
      - in: query
        name: customer_name
        schema:
          type: string
        description: Customer name
      - in: query
        name: customer_native_name
        schema:
          type: string
        description: Customer native name
      - in: query
        name: customer_uuid
        schema:
          type: string
          format: uuid
        description: Customer UUID
      - in: query
        name: description
        schema:
          type: string
        description: Description
      - in: query
        name: external_ip
        schema:
          type: string
        description: External IP
      - in: query
        name: name
        schema:
          type: string
        description: Name
      - in: query
        name: name_exact
        schema:
          type: string
        description: Name (exact)
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PageSize'
      - in: query
        name: project
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: project_name
        schema:
          type: string
        description: Project name
      - in: query
        name: project_uuid
        schema:
          type: string
          format: uuid
        description: Project UUID
      - in: query
        name: runtime_state
        schema:
          type: string
      - in: query
        name: service_settings_name
        schema:
          type: string
        description: Service settings name
      - in: query
        name: service_settings_uuid
        schema:
          type: string
          format: uuid
        description: Service settings UUID
      - in: query
        name: state
        schema:
          type: array
          items:
            type: string
            enum:
            - CREATING
            - CREATION_SCHEDULED
            - DELETING
            - DELETION_SCHEDULED
            - ERRED
            - OK
            - UPDATE_SCHEDULED
            - UPDATING
        description: |+
          State

        explode: true
        style: form
      - in: query
        name: uuid
        schema:
          type: string
          format: uuid
        description: UUID
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
      description: Get number of items in the collection matching the request parameters.
  /api/vmware-virtual-machine/{uuid}/:
    get:
      operationId: vmware_virtual_machine_retrieve
      parameters:
      - in: query
        name: field
        schema:
          type: array
          items:
            type: string
            enum:
            - access_url
            - backend_id
            - cluster
            - cluster_name
            - cores
            - cores_per_socket
            - created
            - customer
            - customer_abbreviation
            - customer_name
            - customer_native_name
            - customer_uuid
            - datastore
            - datastore_name
            - description
            - disk
            - disks
            - error_message
            - error_traceback
            - folder
            - folder_name
            - guest_os
            - guest_os_name
            - guest_power_state
            - is_limit_based
            - is_usage_based
            - marketplace_category_name
            - marketplace_category_uuid
            - marketplace_offering_name
            - marketplace_offering_plugin_options
            - marketplace_offering_uuid
            - marketplace_plan_uuid
            - marketplace_resource_state
            - marketplace_resource_uuid
            - modified
            - name
            - networks
            - ports
            - project
            - project_name
            - project_uuid
            - ram
            - resource_type
            - runtime_state
            - service_name
            - service_settings
            - service_settings_error_message
            - service_settings_state
            - service_settings_uuid
            - state
            - template
            - template_name
            - tools_installed
            - tools_state
            - url
            - uuid
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwareVirtualMachine'
          description: ''
    put:
      operationId: vmware_virtual_machine_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VmwareVirtualMachineRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwareVirtualMachine'
          description: ''
    patch:
      operationId: vmware_virtual_machine_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedVmwareVirtualMachineRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwareVirtualMachine'
          description: ''
    delete:
      operationId: vmware_virtual_machine_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/vmware-virtual-machine/{uuid}/console/:
    get:
      operationId: vmware_virtual_machine_console_retrieve
      description: This endpoint provides access to Virtual Machine Remote Console
        aka VMRC.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsoleUrl'
          description: ''
  /api/vmware-virtual-machine/{uuid}/create_disk/:
    post:
      operationId: vmware_virtual_machine_create_disk
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VmwareDiskRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwareDisk'
          description: ''
  /api/vmware-virtual-machine/{uuid}/create_port/:
    post:
      operationId: vmware_virtual_machine_create_port
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VmwarePortRequest'
        required: true
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VmwarePort'
          description: ''
  /api/vmware-virtual-machine/{uuid}/pull/:
    post:
      operationId: vmware_virtual_machine_pull
      description: Schedule an asynchronous pull operation to synchronize resource
        state from the backend. Returns 202 if the pull was scheduled successfully,
        or 409 if the pull operation is not implemented for this resource type.
      summary: Synchronize resource state
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullResponse'
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullConflictResponse'
          description: ''
  /api/vmware-virtual-machine/{uuid}/reboot_guest/:
    post:
      operationId: vmware_virtual_machine_reboot_guest
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/vmware-virtual-machine/{uuid}/reset/:
    post:
      operationId: vmware_virtual_machine_reset
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/vmware-virtual-machine/{uuid}/set_erred/:
    post:
      operationId: vmware_virtual_machine_set_erred
      description: Manually transition the resource to ERRED state. This is useful
        for resources stuck in transitional states (CREATING, UPDATING, DELETING)
        that cannot be synced via pull. Staff-only operation.
      summary: Mark resource as ERRED
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetErredRequest'
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetErredResponse'
          description: ''
  /api/vmware-virtual-machine/{uuid}/set_ok/:
    post:
      operationId: vmware_virtual_machine_set_ok
      description: Manually transition the resource to OK state and clear error fields.
        Staff-only operation.
      summary: Mark resource as OK
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOkResponse'
          description: ''
  /api/vmware-virtual-machine/{uuid}/shutdown_guest/:
    post:
      operationId: vmware_virtual_machine_shutdown_guest
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/vmware-virtual-machine/{uuid}/start/:
    post:
      operationId: vmware_virtual_machine_start
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/vmware-virtual-machine/{uuid}/stop/:
    post:
      operationId: vmware_virtual_machine_stop
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/vmware-virtual-machine/{uuid}/suspend/:
    post:
      operationId: vmware_virtual_machine_suspend
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          description: No response body
  /api/vmware-virtual-machine/{uuid}/unlink/:
    post:
      operationId: vmware_virtual_machine_unlink
      description: |-
        Delete resource from the database without scheduling operations on backend
                and without checking current state of the resource. It is intended to be used
                for removing resource stuck in transitioning state.
      summary: Unlink resource
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '204':
          description: No response body
  /api/vmware-virtual-machine/{uuid}/web_console/:
    get:
      operationId: vmware_virtual_machine_web_console_retrieve
      description: This endpoint provides access to HTML Console aka WMKS.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - vmware-virtual-machine
      security:
      - tokenAuth: []
      - waldurOIDCAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsoleUrl'
          description: ''
components:
  schemas:
    AccessSubnet:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        inet:
          type: string
        description:
          type: string
          maxLength: 4096
        customer:
          type: string
          format: uri
      required:
      - customer
      - inet
      - uuid
    AccessSubnetRequest:
      type: object
      description: ''
      properties:
        inet:
          type: string
          minLength: 1
        description:
          type: string
          maxLength: 4096
        customer:
          type: string
          format: uri
      required:
      - customer
      - inet
    AccessTypeEnum:
      enum:
      - staff
      - support
      - staff_and_support
      type: string
      description: ''
    AccessorTypeEnum:
      enum:
      - staff
      - support
      - organization_member
      - service_provider
      - self
      type: string
      description: ''
    AccessorUser:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        username:
          type: string
        full_name:
          type: string
      required:
      - full_name
      - username
      - uuid
    AccountNameGenerationPolicyEnum:
      enum:
      - project_slug
      description: ''
    ActiveQueriesStats:
      type: object
      description: ''
      properties:
        count:
          type: integer
          readOnly: true
          description: Number of currently active queries
        longest_duration_seconds:
          type: number
          format: double
          readOnly: true
          description: Duration of the longest running query in seconds
        waiting_on_locks:
          type: integer
          readOnly: true
          description: Number of queries waiting on locks
        queries:
          type: array
          items:
            $ref: '#/components/schemas/ActiveQuery'
          readOnly: true
          description: List of active queries
      required:
      - count
      - longest_duration_seconds
      - queries
      - waiting_on_locks
    ActiveQuery:
      type: object
      description: ''
      properties:
        pid:
          type: integer
          readOnly: true
          description: Process ID
        duration_seconds:
          type: number
          format: double
          readOnly: true
          description: Query duration in seconds
        state:
          type: string
          readOnly: true
          description: Query state
        wait_event_type:
          type: string
          readOnly: true
          nullable: true
          description: Type of event the query is waiting for
        query_preview:
          type: string
          readOnly: true
          description: First 100 characters of the query
      required:
      - duration_seconds
      - pid
      - query_preview
      - state
      - wait_event_type
    AdminAnnouncement:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        description:
          type: string
          maxLength: 4096
        active_from:
          type: string
          format: date-time
        active_to:
          type: string
          format: date-time
        is_active:
          type: boolean
          readOnly: true
        type:
          $ref: '#/components/schemas/AdminAnnouncementTypeEnum'
        created:
          type: string
          format: date-time
          readOnly: true
        maintenance_uuid:
          type: string
          readOnly: true
        maintenance_name:
          type: string
          readOnly: true
        maintenance_type:
          type: string
          readOnly: true
        maintenance_state:
          type: string
          readOnly: true
        maintenance_scheduled_start:
          type: string
          format: date-time
          readOnly: true
        maintenance_scheduled_end:
          type: string
          format: date-time
          readOnly: true
        maintenance_service_provider:
          type: string
          readOnly: true
        maintenance_affected_offerings:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              name:
                type: string
              impact_level:
                type: string
              impact_level_display:
                type: string
              impact_description:
                type: string
          readOnly: true
        maintenance_external_reference_url:
          type: string
          readOnly: true
      required: []
    AdminAnnouncementRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        active_from:
          type: string
          format: date-time
        active_to:
          type: string
          format: date-time
        type:
          $ref: '#/components/schemas/AdminAnnouncementTypeEnum'
      required:
      - active_from
      - active_to
    AdminAnnouncementTypeEnum:
      enum:
      - information
      - warning
      - danger
      type: string
      description: ''
    AdminUser:
      type: object
      description: ''
      properties:
        user_uuid:
          type: string
          format: uuid
        username:
          type: string
        full_name:
          type: string
        access_type:
          $ref: '#/components/schemas/AccessTypeEnum'
      required:
      - access_type
      - full_name
      - user_uuid
      - username
    AdministrativeAccess:
      type: object
      description: ''
      properties:
        description:
          type: string
        staff_count:
          type: integer
        support_count:
          type: integer
        users:
          type: array
          items:
            $ref: '#/components/schemas/AdminUser'
      required:
      - description
    AffiliationTypeEnum:
      enum:
      - employment
      - education
      - visiting
      - honorary
      - consulting
      type: string
      description: ''
    AffinityMatrixEntry:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        reviewer_uuid:
          type: string
          format: uuid
        reviewer_name:
          type: string
        proposal_uuid:
          type: string
          format: uuid
        proposal_name:
          type: string
        affinity_score:
          type: number
          format: double
        keyword_score:
          type: number
          format: double
          nullable: true
        text_score:
          type: number
          format: double
          nullable: true
        has_conflict:
          type: boolean
        coi_type:
          type: string
          nullable: true
        coi_severity:
          type: string
          nullable: true
        coi_status:
          type: string
          nullable: true
        source:
          type: string
      required:
      - affinity_score
      - coi_severity
      - coi_status
      - coi_type
      - has_conflict
      - keyword_score
      - proposal_name
      - proposal_uuid
      - reviewer_name
      - reviewer_uuid
      - source
      - text_score
      - uuid
    AffinityMatrixResponse:
      type: object
      description: ''
      properties:
        count:
          type: integer
        results:
          type: array
          items:
            $ref: '#/components/schemas/AffinityMatrixEntry'
      required:
      - count
      - results
    AffinityMethodEnum:
      enum:
      - keyword
      - tfidf
      - combined
      type: string
      description: ''
    AgentConnectionInfo:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
          description: Agent identity UUID
        name:
          type: string
          readOnly: true
          description: Agent name
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
          description: Associated offering UUID
        offering_name:
          type: string
          readOnly: true
          description: Associated offering name
        version:
          type: string
          readOnly: true
          nullable: true
          description: Agent version
        last_restarted:
          type: string
          format: date-time
          readOnly: true
          description: When the agent was last restarted
        services:
          type: array
          items:
            $ref: '#/components/schemas/AgentServiceStatus'
          readOnly: true
          description: Services running within this agent
        event_subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/AgentEventSubscriptionWithConnection'
          readOnly: true
          description: Event subscriptions with connection status
        queues:
          type: array
          items:
            $ref: '#/components/schemas/AgentQueueInfo'
          readOnly: true
          description: RabbitMQ queues for this agent's offering
      required:
      - event_subscriptions
      - last_restarted
      - name
      - offering_name
      - offering_uuid
      - queues
      - services
      - uuid
      - version
    AgentConnectionStatsResponse:
      type: object
      description: ''
      properties:
        agents:
          type: array
          items:
            $ref: '#/components/schemas/AgentConnectionInfo'
          readOnly: true
          description: List of agents with connection status
        summary:
          allOf:
          - $ref: '#/components/schemas/AgentConnectionSummary'
          readOnly: true
          description: Summary statistics
      required:
      - agents
      - summary
    AgentConnectionSummary:
      type: object
      description: ''
      properties:
        total_agents:
          type: integer
          readOnly: true
          description: Total number of registered agents
        connected_agents:
          type: integer
          readOnly: true
          description: Number of agents with active RMQ connections
        disconnected_agents:
          type: integer
          readOnly: true
          description: Number of agents without active connections
        total_queued_messages:
          type: integer
          readOnly: true
          description: Total messages across all agent queues
      required:
      - connected_agents
      - disconnected_agents
      - total_agents
      - total_queued_messages
    AgentEventSubscriptionCreateRequest:
      type: object
      properties:
        observable_object_type:
          allOf:
          - $ref: '#/components/schemas/ObservableObjectTypeEnum'
          description: The type of object to observe for events
        description:
          type: string
          minLength: 1
          description: Optional description for the event subscription
          maxLength: 500
      required:
      - observable_object_type
      description: ''
    AgentEventSubscriptionWithConnection:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
          description: Event subscription UUID
        created:
          type: string
          format: date-time
          readOnly: true
          description: When the subscription was created
        observable_objects:
          readOnly: true
          description: List of observable object configurations
        rmq_connection:
          allOf:
          - $ref: '#/components/schemas/AgentRmqConnection'
          readOnly: true
          nullable: true
          description: RabbitMQ connection status for this subscription
      required:
      - created
      - observable_objects
      - rmq_connection
      - uuid
    AgentIdentity:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        offering:
          type: string
          format: uuid
          description: UUID of an offering with type 'Marketplace.Slurm'. Only site-agent
            offerings are accepted.
        name:
          type: string
          maxLength: 150
        version:
          type: string
          nullable: true
          maxLength: 100
        dependencies: {}
        config_file_path:
          type: string
          nullable: true
          description: 'Example: ''/etc/waldur/agent.yaml'''
          maxLength: 150
        config_file_content:
          type: string
          nullable: true
        last_restarted:
          type: string
          format: date-time
          title: Last restarted at
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        services:
          type: array
          items:
            $ref: '#/components/schemas/NestedAgentService'
          readOnly: true
      required:
      - created
      - modified
      - name
      - offering
      - services
      - url
      - uuid
      description: ''
    AgentIdentityRequest:
      type: object
      properties:
        offering:
          type: string
          format: uuid
          description: UUID of an offering with type 'Marketplace.Slurm'. Only site-agent
            offerings are accepted.
        name:
          type: string
          minLength: 1
          maxLength: 150
        version:
          type: string
          nullable: true
          maxLength: 100
        dependencies: {}
        config_file_path:
          type: string
          nullable: true
          description: 'Example: ''/etc/waldur/agent.yaml'''
          maxLength: 150
        config_file_content:
          type: string
          nullable: true
        last_restarted:
          type: string
          format: date-time
          title: Last restarted at
      required:
      - name
      - offering
      description: ''
    AgentProcessor:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        service:
          type: string
          format: uuid
        service_name:
          type: string
          readOnly: true
        name:
          type: string
          maxLength: 150
        last_run:
          type: string
          format: date-time
          nullable: true
        backend_type:
          type: string
          description: Type of the backend, for example SLURM.
          maxLength: 100
        backend_version:
          type: string
          nullable: true
          maxLength: 100
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - backend_type
      - created
      - modified
      - name
      - service
      - service_name
      - url
      - uuid
      description: ''
    AgentProcessorCreateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        backend_type:
          type: string
          minLength: 1
          description: Type of the backend, for example SLURM.
          maxLength: 100
        backend_version:
          type: string
          nullable: true
          maxLength: 100
      required:
      - backend_type
      - name
      description: ''
    AgentQueueInfo:
      type: object
      description: ''
      properties:
        name:
          type: string
          readOnly: true
          description: Queue name
        messages:
          type: integer
          readOnly: true
          description: Number of messages in queue
        consumers:
          type: integer
          readOnly: true
          description: Number of active consumers
        object_type:
          type: string
          readOnly: true
          nullable: true
          description: Parsed object type from queue name
      required:
      - consumers
      - messages
      - name
      - object_type
    AgentRmqConnection:
      type: object
      description: ''
      properties:
        connected:
          type: boolean
          readOnly: true
          description: Whether the agent has an active connection
        source_ip:
          type: string
          readOnly: true
          nullable: true
          description: Client IP address of active connection
        connected_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Connection establishment timestamp
        state:
          type: string
          readOnly: true
          nullable: true
          description: 'Connection state: ''running'', ''blocked'', ''blocking'''
        recv_oct:
          type: integer
          readOnly: true
          nullable: true
          description: Bytes received on this connection
        send_oct:
          type: integer
          readOnly: true
          nullable: true
          description: Bytes sent on this connection
      required:
      - connected
      - connected_at
      - recv_oct
      - send_oct
      - source_ip
      - state
    AgentService:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        identity:
          type: string
          format: uuid
        identity_name:
          type: string
          readOnly: true
        name:
          type: string
          maxLength: 150
        mode:
          type: string
          nullable: true
          maxLength: 100
        state:
          allOf:
          - $ref: '#/components/schemas/AgentServiceState'
          readOnly: true
        statistics: {}
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        processors:
          type: array
          items:
            $ref: '#/components/schemas/NestedAgentProcessor'
          readOnly: true
      required:
      - created
      - identity
      - identity_name
      - modified
      - name
      - processors
      - state
      - url
      - uuid
      description: ''
    AgentServiceCreateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        mode:
          type: string
          nullable: true
          maxLength: 100
      required:
      - name
      description: ''
    AgentServiceState:
      enum:
      - Active
      - Idle
      - Error
      type: string
      description: ''
    AgentServiceStatisticsRequest:
      type: object
      properties:
        statistics:
          description: Statistics data to be stored for the service
      required:
      - statistics
      description: ''
    AgentServiceStatus:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
          description: Service UUID
        name:
          type: string
          readOnly: true
          description: Service name
        state:
          type: string
          readOnly: true
          description: 'Service state: ACTIVE, IDLE, or ERROR'
        modified:
          type: string
          format: date-time
          readOnly: true
          description: Last modification timestamp
      required:
      - modified
      - name
      - state
      - uuid
    AgentStatsResponse:
      type: object
      properties:
        identities:
          type: object
          additionalProperties: {}
          description: Statistics about agent identities
        services:
          type: object
          additionalProperties: {}
          description: Statistics about agent services
        processors:
          type: object
          additionalProperties: {}
          description: Statistics about agent processors
      required:
      - identities
      - processors
      - services
      description: ''
    AgentTaskStatsResponse:
      type: object
      properties:
        active_tasks:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Currently running agent-related tasks
        scheduled_tasks:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Scheduled agent-related tasks
        reserved_tasks:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Reserved agent-related tasks
        error:
          type: string
          description: Error message if task inspection failed
      required:
      - active_tasks
      - reserved_tasks
      - scheduled_tasks
      description: ''
    AgentTypeEnum:
      enum:
      - Order processing
      - Usage reporting
      - Glauth sync
      - Resource sync
      - Event processing
      - unknown
      type: string
      description: ''
    AggregatedUsageTrend:
      type: object
      description: ''
      properties:
        period:
          type: string
          description: Period in YYYY-MM format
        year:
          type: integer
          description: Year
        month:
          type: integer
          description: Month (1-12)
        total_usage:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Total usage across all components
        resource_count:
          type: integer
          description: Number of distinct resources with usage
        component_count:
          type: integer
          description: Number of component usage records
      required:
      - component_count
      - month
      - period
      - resource_count
      - total_usage
      - year
    AgreementTypeEnum:
      enum:
      - TOS
      - PP
      type: string
      description: ''
    Allocation:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        node_limit:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
        groupname:
          type: string
          nullable: true
          maxLength: 64
        node_usage:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          readOnly: true
        is_active:
          type: boolean
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    AllocationRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        node_limit:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
        groupname:
          type: string
          nullable: true
          maxLength: 64
      required:
      - name
      - project
      - service_settings
    AllocationSetLimits:
      type: object
      properties:
        node_limit:
          type: integer
          minimum: -1
      required:
      - node_limit
      description: ''
    AllocationSetLimitsRequest:
      type: object
      properties:
        node_limit:
          type: integer
          minimum: -1
      required:
      - node_limit
      description: ''
    AllocationTimeEnum:
      enum:
      - on_decision
      - fixed_date
      type: string
      description: ''
    AllocationUserUsage:
      type: object
      properties:
        node_usage:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
        month:
          type: integer
          maximum: 12
          minimum: 1
        year:
          type: integer
          maximum: 32767
          minimum: 0
        allocation:
          type: string
          format: uri
        user:
          type: string
          format: uri
          nullable: true
        username:
          type: string
          maxLength: 64
        full_name:
          type: string
          readOnly: true
      required:
      - allocation
      - full_name
      - month
      - username
      - year
      description: ''
    AmountRangeEnum:
      enum:
      - none
      - under_5k
      - 5k_10k
      - 10k_50k
      - over_50k
      type: string
      description: ''
    Answer:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        question_description:
          type: string
          readOnly: true
        question_type:
          type: string
          readOnly: true
        question_required:
          type: boolean
          readOnly: true
        answer_data:
          description: Flexible answer storage for different question types
        requires_review:
          type: boolean
          readOnly: true
          description: Internal flag - this answer requires additional review
        user:
          type: integer
          readOnly: true
        user_name:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - created
      - modified
      - question_description
      - question_required
      - question_type
      - requires_review
      - user
      - user_name
      - uuid
    AnswerSubmitRequest:
      type: object
      description: ''
      properties:
        question_uuid:
          type: string
          format: uuid
        answer_data:
          nullable: true
      required:
      - answer_data
      - question_uuid
    AnswerSubmitResponse:
      type: object
      description: ''
      properties:
        detail:
          type: string
        completion:
          $ref: '#/components/schemas/ChecklistCompletion'
      required:
      - completion
      - detail
    ArrowBillingLine:
      type: object
      description: ''
      properties:
        vendor_name:
          type: string
        subscription_reference:
          type: string
        license_reference:
          type: string
          description: Arrow license reference. Used to fetch consumption data.
        offer_sku:
          type: string
        classification:
          type: string
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          nullable: true
        sell_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
        buy_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
      required:
      - buy_price
      - classification
      - license_reference
      - offer_sku
      - quantity
      - sell_price
      - subscription_reference
      - vendor_name
    ArrowBillingSync:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        customer_mapping:
          type: string
          format: uri
          readOnly: true
        customer_mapping_uuid:
          type: string
          format: uuid
          readOnly: true
        arrow_reference:
          type: string
          description: Arrow customer ID (e.g., 'XSP661245')
          readOnly: true
        waldur_customer_name:
          type: string
          readOnly: true
        statement_reference:
          type: string
          readOnly: true
          description: Arrow statement ID
        report_period:
          type: string
          readOnly: true
          description: Report period in YYYY-MM format
        arrow_state:
          type: string
          readOnly: true
          description: Arrow billing state (pending/validated)
        state:
          allOf:
          - $ref: '#/components/schemas/ArrowBillingSyncStateEnum'
          readOnly: true
          description: Waldur sync state
        state_display:
          type: string
          readOnly: true
        buy_total:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
          description: Total buy amount
        sell_total:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
          description: Total sell amount
        currency:
          type: string
          readOnly: true
          description: Currency code
        invoice_uuid:
          type: string
          format: uuid
          readOnly: true
        error_message:
          type: string
          readOnly: true
          description: Error message if sync failed
        synced_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When billing was last synced
        validated_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When Arrow validated the billing
        reconciled_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When reconciliation was applied
        items:
          type: array
          items:
            $ref: '#/components/schemas/ArrowBillingSyncItem'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - arrow_reference
      - arrow_state
      - buy_total
      - created
      - currency
      - customer_mapping
      - customer_mapping_uuid
      - error_message
      - invoice_uuid
      - items
      - modified
      - reconciled_at
      - report_period
      - sell_total
      - state
      - state_display
      - statement_reference
      - synced_at
      - url
      - uuid
      - validated_at
      - waldur_customer_name
    ArrowBillingSyncItem:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        arrow_line_reference:
          type: string
          readOnly: true
          description: Arrow line ID
        invoice_item_uuid:
          type: string
          format: uuid
          readOnly: true
        original_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
          description: Original price for reconciliation tracking
        compensation_item_uuid:
          type: string
          format: uuid
          readOnly: true
        vendor_name:
          type: string
          readOnly: true
          description: Vendor name (e.g., Microsoft)
        subscription_reference:
          type: string
          readOnly: true
          description: Arrow subscription reference
        classification:
          type: string
          readOnly: true
          description: Classification (IAAS/SAAS)
        description:
          type: string
          readOnly: true
          description: Line item description
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
          description: Quantity
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - arrow_line_reference
      - classification
      - compensation_item_uuid
      - created
      - description
      - invoice_item_uuid
      - original_price
      - quantity
      - subscription_reference
      - uuid
      - vendor_name
    ArrowBillingSyncItemDetail:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        billing_sync:
          type: string
          format: uri
          readOnly: true
        billing_sync_uuid:
          type: string
          format: uuid
          readOnly: true
        report_period:
          type: string
          description: Report period in YYYY-MM format
          readOnly: true
        arrow_line_reference:
          type: string
          readOnly: true
          description: Arrow line ID
        invoice_item_uuid:
          type: string
          format: uuid
          readOnly: true
        original_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
          description: Original price for reconciliation tracking
        compensation_item_uuid:
          type: string
          format: uuid
          readOnly: true
        has_compensation:
          type: boolean
          readOnly: true
        vendor_name:
          type: string
          readOnly: true
          description: Vendor name (e.g., Microsoft)
        subscription_reference:
          type: string
          readOnly: true
          description: Arrow subscription reference
        classification:
          type: string
          readOnly: true
          description: Classification (IAAS/SAAS)
        description:
          type: string
          readOnly: true
          description: Line item description
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
          description: Quantity
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - arrow_line_reference
      - billing_sync
      - billing_sync_uuid
      - classification
      - compensation_item_uuid
      - created
      - description
      - has_compensation
      - invoice_item_uuid
      - original_price
      - quantity
      - report_period
      - subscription_reference
      - url
      - uuid
      - vendor_name
    ArrowBillingSyncStateEnum:
      enum:
      - 1
      - 2
      - 3
      - 4
      type: integer
      description: ''
    ArrowConsumptionLine:
      type: object
      description: ''
      properties:
        license_reference:
          type: string
          description: Arrow license reference (same as resource backend_id).
        resource_name:
          type: string
          nullable: true
        resource_uuid:
          type: string
          nullable: true
          description: UUID of the Waldur resource.
        period:
          type: string
        sell_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
        buy_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
        error:
          type: string
          nullable: true
          description: Error message if fetch failed.
      required:
      - buy_price
      - license_reference
      - period
      - resource_name
      - resource_uuid
      - sell_price
    ArrowConsumptionRecord:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        resource:
          type: string
          format: uri
          readOnly: true
        resource_uuid:
          type: string
          format: uuid
          readOnly: true
        resource_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        license_reference:
          type: string
          readOnly: true
          description: Arrow license reference (e.g., 'XSP12345')
        billing_period:
          type: string
          format: date
          readOnly: true
          description: First day of the billing month
        consumed_sell:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
          description: Consumed sell amount from Consumption API
        consumed_buy:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
          description: Consumed buy amount from Consumption API
        final_sell:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
          nullable: true
          description: Final sell amount from billing export
        final_buy:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
          nullable: true
          description: Final buy amount from billing export
        invoice_item_uuid:
          type: string
          format: uuid
          readOnly: true
        compensation_item_uuid:
          type: string
          format: uuid
          readOnly: true
        last_sync_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When consumption was last synced from API
        finalized_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When billing export data arrived
        reconciled_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When reconciliation was applied
        is_finalized:
          type: boolean
          readOnly: true
        is_reconciled:
          type: boolean
          readOnly: true
        adjustment_amount:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          readOnly: true
          nullable: true
        raw_data:
          readOnly: true
          description: Raw consumption data for debugging
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - adjustment_amount
      - billing_period
      - compensation_item_uuid
      - consumed_buy
      - consumed_sell
      - created
      - customer_name
      - customer_uuid
      - final_buy
      - final_sell
      - finalized_at
      - invoice_item_uuid
      - is_finalized
      - is_reconciled
      - last_sync_at
      - license_reference
      - modified
      - project_name
      - project_uuid
      - raw_data
      - reconciled_at
      - resource
      - resource_name
      - resource_uuid
      - url
      - uuid
    ArrowCredentialsRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          description: Arrow API base URL
        api_key:
          type: string
          minLength: 1
          description: Arrow API Key
      required:
      - api_key
      - api_url
    ArrowCredentialsValidationResponse:
      type: object
      description: ''
      properties:
        valid:
          type: boolean
        message:
          type: string
        error:
          type: string
        partner_info:
          type: object
          additionalProperties: {}
      required:
      - valid
    ArrowCustomerDiscovery:
      type: object
      description: ''
      properties:
        reference:
          type: string
        companyName:
          type: string
        email:
          type: string
        city:
          type: string
        countryCode:
          type: string
      required:
      - companyName
      - reference
    ArrowCustomerMapping:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        settings:
          type: string
          format: uri
        settings_uuid:
          type: string
          format: uuid
          readOnly: true
        arrow_reference:
          type: string
          description: Arrow customer ID (e.g., 'XSP661245')
          maxLength: 255
        arrow_company_name:
          type: string
          description: Arrow company name
          maxLength: 500
        waldur_customer:
          type: string
          format: uri
        waldur_customer_uuid:
          type: string
          format: uuid
          readOnly: true
        waldur_customer_name:
          type: string
          readOnly: true
        is_active:
          type: boolean
          description: Whether this mapping is active
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - arrow_reference
      - created
      - modified
      - settings
      - settings_uuid
      - url
      - uuid
      - waldur_customer
      - waldur_customer_name
      - waldur_customer_uuid
    ArrowCustomerMappingCreate:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        settings:
          type: string
          format: uuid
        settings_uuid:
          type: string
          format: uuid
          readOnly: true
        arrow_reference:
          type: string
          description: Arrow customer ID (e.g., 'XSP661245')
          maxLength: 255
        arrow_company_name:
          type: string
          description: Arrow company name
          maxLength: 500
        waldur_customer:
          type: string
          format: uuid
        waldur_customer_uuid:
          type: string
          format: uuid
          readOnly: true
        waldur_customer_name:
          type: string
          readOnly: true
        is_active:
          type: boolean
          description: Whether this mapping is active
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - arrow_reference
      - created
      - modified
      - settings
      - settings_uuid
      - url
      - uuid
      - waldur_customer
      - waldur_customer_name
      - waldur_customer_uuid
    ArrowCustomerMappingCreateRequest:
      type: object
      description: ''
      properties:
        settings:
          type: string
          format: uuid
        arrow_reference:
          type: string
          minLength: 1
          description: Arrow customer ID (e.g., 'XSP661245')
          maxLength: 255
        arrow_company_name:
          type: string
          description: Arrow company name
          maxLength: 500
        waldur_customer:
          type: string
          format: uuid
        is_active:
          type: boolean
          description: Whether this mapping is active
      required:
      - arrow_reference
      - settings
      - waldur_customer
    ArrowCustomerMappingRequest:
      type: object
      description: ''
      properties:
        settings:
          type: string
          format: uri
        arrow_reference:
          type: string
          minLength: 1
          description: Arrow customer ID (e.g., 'XSP661245')
          maxLength: 255
        arrow_company_name:
          type: string
          description: Arrow company name
          maxLength: 500
        waldur_customer:
          type: string
          format: uri
        is_active:
          type: boolean
          description: Whether this mapping is active
      required:
      - arrow_reference
      - settings
      - waldur_customer
    ArrowLicense:
      type: object
      description: ''
      properties:
        license_reference:
          type: string
          description: Arrow license reference (e.g., XSP12345). Use this as resource
            backend_id.
        vendor_name:
          type: string
        offer_name:
          type: string
        offer_sku:
          type: string
        friendly_name:
          type: string
      required:
      - friendly_name
      - license_reference
      - offer_name
      - offer_sku
      - vendor_name
    ArrowSettings:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        api_url:
          type: string
          format: uri
          description: Arrow API base URL
          maxLength: 255
        api_key:
          type: string
          description: Arrow API Key (leave empty on update to keep current)
        export_type_reference:
          type: string
          description: Billing export template reference
          maxLength: 255
        classification_filter:
          type: string
          description: Filter for IaaS/SaaS classification
          maxLength: 50
        is_active:
          type: boolean
          description: Whether this settings record is active
        sync_enabled:
          type: boolean
          description: Whether automatic billing sync is enabled
        partner_reference:
          type: string
          readOnly: true
          description: Arrow partner reference (discovered from API)
        partner_name:
          type: string
          readOnly: true
          description: Arrow partner name (discovered from API)
        invoice_price_source:
          allOf:
          - $ref: '#/components/schemas/InvoicePriceSourceEnum'
          description: 'Which price to use for invoice items: sell or buy'
        invoice_item_prefix:
          type: string
          description: Prefix for invoice item names (e.g. 'Arrow consumption')
          maxLength: 100
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - api_url
      - created
      - modified
      - partner_name
      - partner_reference
      - url
      - uuid
    ArrowSettingsCreate:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        api_url:
          type: string
          format: uri
          description: Arrow API base URL
          maxLength: 255
        export_type_reference:
          type: string
          description: Billing export template reference
          maxLength: 255
        classification_filter:
          type: string
          description: Filter for IaaS/SaaS classification
          maxLength: 50
        is_active:
          type: boolean
          description: Whether this settings record is active
        sync_enabled:
          type: boolean
          description: Whether automatic billing sync is enabled
        partner_reference:
          type: string
          readOnly: true
          description: Arrow partner reference (discovered from API)
        partner_name:
          type: string
          readOnly: true
          description: Arrow partner name (discovered from API)
        invoice_price_source:
          allOf:
          - $ref: '#/components/schemas/InvoicePriceSourceEnum'
          description: 'Which price to use for invoice items: sell or buy'
        invoice_item_prefix:
          type: string
          description: Prefix for invoice item names (e.g. 'Arrow consumption')
          maxLength: 100
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - api_url
      - created
      - modified
      - partner_name
      - partner_reference
      - url
      - uuid
    ArrowSettingsCreateRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          description: Arrow API base URL
          maxLength: 255
        api_key:
          type: string
          writeOnly: true
          minLength: 1
          description: Arrow API Key (required for creation)
        export_type_reference:
          type: string
          description: Billing export template reference
          maxLength: 255
        classification_filter:
          type: string
          minLength: 1
          description: Filter for IaaS/SaaS classification
          maxLength: 50
        is_active:
          type: boolean
          description: Whether this settings record is active
        sync_enabled:
          type: boolean
          description: Whether automatic billing sync is enabled
        invoice_price_source:
          allOf:
          - $ref: '#/components/schemas/InvoicePriceSourceEnum'
          description: 'Which price to use for invoice items: sell or buy'
        invoice_item_prefix:
          type: string
          description: Prefix for invoice item names (e.g. 'Arrow consumption')
          maxLength: 100
      required:
      - api_key
      - api_url
    ArrowSettingsRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          description: Arrow API base URL
          maxLength: 255
        api_key:
          type: string
          minLength: 1
          description: Arrow API Key (leave empty on update to keep current)
        export_type_reference:
          type: string
          description: Billing export template reference
          maxLength: 255
        classification_filter:
          type: string
          minLength: 1
          description: Filter for IaaS/SaaS classification
          maxLength: 50
        is_active:
          type: boolean
          description: Whether this settings record is active
        sync_enabled:
          type: boolean
          description: Whether automatic billing sync is enabled
        invoice_price_source:
          allOf:
          - $ref: '#/components/schemas/InvoicePriceSourceEnum'
          description: 'Which price to use for invoice items: sell or buy'
        invoice_item_prefix:
          type: string
          description: Prefix for invoice item names (e.g. 'Arrow consumption')
          maxLength: 100
      required:
      - api_url
    ArrowVendorOfferingMapping:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        settings:
          type: string
          format: uri
        settings_uuid:
          type: string
          format: uuid
          readOnly: true
        arrow_vendor_name:
          type: string
          description: Arrow vendor name (e.g., 'Microsoft', 'Amazon Web Services')
          maxLength: 255
        offering:
          type: string
          format: uuid
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        offering_type:
          type: string
          readOnly: true
        plan:
          type: string
          format: uuid
          nullable: true
        plan_uuid:
          type: string
          format: uuid
          readOnly: true
        plan_name:
          type: string
          readOnly: true
        is_active:
          type: boolean
          description: Whether this mapping is active
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - arrow_vendor_name
      - created
      - modified
      - offering
      - offering_name
      - offering_type
      - offering_uuid
      - plan_name
      - plan_uuid
      - settings
      - settings_uuid
      - url
      - uuid
    ArrowVendorOfferingMappingCreate:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        settings:
          type: string
          format: uuid
        settings_uuid:
          type: string
          format: uuid
          readOnly: true
        arrow_vendor_name:
          type: string
          description: Arrow vendor name (e.g., 'Microsoft', 'Amazon Web Services')
          maxLength: 255
        offering:
          type: string
          format: uuid
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        offering_type:
          type: string
          readOnly: true
        plan:
          type: string
          format: uuid
          nullable: true
        plan_uuid:
          type: string
          format: uuid
          readOnly: true
        plan_name:
          type: string
          readOnly: true
        is_active:
          type: boolean
          description: Whether this mapping is active
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - arrow_vendor_name
      - created
      - modified
      - offering
      - offering_name
      - offering_type
      - offering_uuid
      - plan_name
      - plan_uuid
      - settings
      - settings_uuid
      - url
      - uuid
    ArrowVendorOfferingMappingCreateRequest:
      type: object
      description: ''
      properties:
        settings:
          type: string
          format: uuid
        arrow_vendor_name:
          type: string
          minLength: 1
          description: Arrow vendor name (e.g., 'Microsoft', 'Amazon Web Services')
          maxLength: 255
        offering:
          type: string
          format: uuid
        plan:
          type: string
          format: uuid
          nullable: true
        is_active:
          type: boolean
          description: Whether this mapping is active
      required:
      - arrow_vendor_name
      - offering
      - settings
    ArrowVendorOfferingMappingRequest:
      type: object
      description: ''
      properties:
        settings:
          type: string
          format: uri
        arrow_vendor_name:
          type: string
          minLength: 1
          description: Arrow vendor name (e.g., 'Microsoft', 'Amazon Web Services')
          maxLength: 255
        offering:
          type: string
          format: uuid
        plan:
          type: string
          format: uuid
          nullable: true
        is_active:
          type: boolean
          description: Whether this mapping is active
      required:
      - arrow_vendor_name
      - offering
      - settings
    AssignmentBatch:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        call:
          type: string
          format: uri
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        reviewer_pool_entry:
          type: string
          format: uri
          readOnly: true
        reviewer_pool_entry_uuid:
          type: string
          format: uuid
          readOnly: true
        reviewer_name:
          type: string
          nullable: true
          description: Get reviewer name from pool entry.
          readOnly: true
        reviewer_email:
          type: string
          nullable: true
          description: Get reviewer email from pool entry.
          readOnly: true
        reviewer_uuid:
          type: string
          nullable: true
          description: Get reviewer profile UUID if available.
          readOnly: true
        status:
          allOf:
          - $ref: '#/components/schemas/AssignmentBatchStatus'
          readOnly: true
        status_display:
          type: string
          readOnly: true
        sent_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When the invitation was sent to the reviewer.
        expires_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When the invitation expires.
        responded_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When the reviewer completed their response.
        source:
          allOf:
          - $ref: '#/components/schemas/AssignmentSource'
          readOnly: true
        source_display:
          type: string
          readOnly: true
        created_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
          description: User who created/approved this batch.
        created_by_name:
          type: string
          readOnly: true
        manager_notes:
          type: string
          description: Optional notes from call manager to reviewer.
        items:
          type: array
          items:
            $ref: '#/components/schemas/AssignmentItem'
          readOnly: true
        items_count:
          type: integer
          description: Total count of items in batch.
          readOnly: true
        items_pending_count:
          type: integer
          description: Count of pending items.
          readOnly: true
        items_accepted_count:
          type: integer
          description: Count of accepted items.
          readOnly: true
        items_declined_count:
          type: integer
          description: Count of declined items.
          readOnly: true
        is_expired:
          type: boolean
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - call
      - call_name
      - call_uuid
      - created
      - created_by
      - created_by_name
      - expires_at
      - is_expired
      - items
      - items_accepted_count
      - items_count
      - items_declined_count
      - items_pending_count
      - responded_at
      - reviewer_email
      - reviewer_name
      - reviewer_pool_entry
      - reviewer_pool_entry_uuid
      - reviewer_uuid
      - sent_at
      - source
      - source_display
      - status
      - status_display
      - url
      - uuid
    AssignmentBatchList:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        call:
          type: string
          format: uri
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        reviewer_pool_entry:
          type: string
          format: uri
          readOnly: true
        reviewer_pool_entry_uuid:
          type: string
          format: uuid
          readOnly: true
        reviewer_name:
          type: string
          nullable: true
          description: Get reviewer name from pool entry.
          readOnly: true
        reviewer_email:
          type: string
          nullable: true
          description: Get reviewer email from pool entry.
          readOnly: true
        reviewer_uuid:
          type: string
          nullable: true
          description: Get reviewer profile UUID if available.
          readOnly: true
        status:
          allOf:
          - $ref: '#/components/schemas/AssignmentBatchStatus'
          readOnly: true
        status_display:
          type: string
          readOnly: true
        sent_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When the invitation was sent to the reviewer.
        expires_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When the invitation expires.
        responded_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When the reviewer completed their response.
        source:
          allOf:
          - $ref: '#/components/schemas/AssignmentSource'
          readOnly: true
        source_display:
          type: string
          readOnly: true
        created_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
          description: User who created/approved this batch.
        created_by_name:
          type: string
          readOnly: true
        manager_notes:
          type: string
          description: Optional notes from call manager to reviewer.
        items_count:
          type: integer
          description: Total count of items in batch.
          readOnly: true
        items_pending_count:
          type: integer
          description: Count of pending items.
          readOnly: true
        items_accepted_count:
          type: integer
          description: Count of accepted items.
          readOnly: true
        items_declined_count:
          type: integer
          description: Count of declined items.
          readOnly: true
        is_expired:
          type: boolean
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - call
      - call_name
      - call_uuid
      - created
      - created_by
      - created_by_name
      - expires_at
      - is_expired
      - items_accepted_count
      - items_count
      - items_declined_count
      - items_pending_count
      - responded_at
      - reviewer_email
      - reviewer_name
      - reviewer_pool_entry
      - reviewer_pool_entry_uuid
      - reviewer_uuid
      - sent_at
      - source
      - source_display
      - status
      - status_display
      - url
      - uuid
    AssignmentBatchRequest:
      type: object
      description: ''
      properties:
        manager_notes:
          type: string
          description: Optional notes from call manager to reviewer.
    AssignmentBatchStatus:
      enum:
      - draft
      - sent
      - responded
      - expired
      - cancelled
      type: string
      description: ''
    AssignmentItem:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        batch:
          type: string
          format: uri
          readOnly: true
        proposal:
          type: string
          format: uri
          readOnly: true
        proposal_uuid:
          type: string
          format: uuid
          readOnly: true
        proposal_name:
          type: string
          readOnly: true
        proposal_slug:
          type: string
          readOnly: true
        status:
          allOf:
          - $ref: '#/components/schemas/AssignmentItemStatus'
          readOnly: true
        status_display:
          type: string
          readOnly: true
        affinity_score:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: Affinity score used for assignment (0-1).
        has_coi:
          type: boolean
          readOnly: true
          description: Whether COI was detected during pre-check.
        coi_count:
          type: integer
          description: Count of COI records blocking this assignment.
          readOnly: true
        responded_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        decline_reason:
          type: string
          description: Reason provided by reviewer for declining.
        review:
          type: string
          format: uri
          readOnly: true
          nullable: true
          description: The Review record created when this assignment was accepted.
        review_uuid:
          type: string
          format: uuid
          readOnly: true
        reassign_count:
          type: integer
          readOnly: true
          description: Number of times this proposal has been reassigned.
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - affinity_score
      - batch
      - coi_count
      - created
      - has_coi
      - proposal
      - proposal_name
      - proposal_slug
      - proposal_uuid
      - reassign_count
      - responded_at
      - review
      - review_uuid
      - status
      - status_display
      - url
      - uuid
    AssignmentItemDeclineRequest:
      type: object
      description: ''
      properties:
        reason:
          type: string
          description: Reason for declining this assignment
    AssignmentItemRequest:
      type: object
      description: ''
      properties:
        decline_reason:
          type: string
          description: Reason provided by reviewer for declining.
    AssignmentItemResponse:
      type: object
      description: ''
      properties:
        detail:
          type: string
        review_uuid:
          type: string
          format: uuid
          nullable: true
          description: UUID of created review (only on accept)
      required:
      - detail
    AssignmentItemStatus:
      enum:
      - pending
      - accepted
      - declined
      - coi_blocked
      - expired
      - reassigned
      type: string
      description: ''
    AssignmentSource:
      enum:
      - algorithm
      - manual
      type: string
      description: ''
    Association:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        username:
          type: string
          nullable: true
          maxLength: 64
        groupname:
          type: string
          nullable: true
          maxLength: 64
        useridentifier:
          type: string
          nullable: true
          maxLength: 128
        allocation:
          type: string
          format: uri
      required:
      - allocation
      - uuid
      description: ''
    AtlassianCredentialsRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          description: Atlassian API URL (e.g., https://your-domain.atlassian.net)
        auth_method:
          allOf:
          - $ref: '#/components/schemas/AuthMethodEnum'
          description: Authentication method to use
        email:
          type: string
          format: email
        token:
          type: string
          writeOnly: true
        personal_access_token:
          type: string
          writeOnly: true
        username:
          type: string
        password:
          type: string
          writeOnly: true
        verify_ssl:
          type: boolean
          default: true
      required:
      - api_url
      - auth_method
    AtlassianCustomFieldResponse:
      type: object
      description: ''
      properties:
        id:
          type: string
        name:
          type: string
        clause_names:
          type: array
          items:
            type: string
        field_type:
          type: string
        required:
          type: boolean
          default: false
      required:
      - id
      - name
    AtlassianPriorityResponse:
      type: object
      description: ''
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        icon_url:
          type: string
          format: uri
      required:
      - id
      - name
    AtlassianProjectResponse:
      type: object
      description: ''
      properties:
        id:
          type: string
        key:
          type: string
        name:
          type: string
        description:
          type: string
      required:
      - id
      - key
      - name
    AtlassianRequestTypeResponse:
      type: object
      description: ''
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        issue_type_id:
          type: string
      required:
      - id
      - name
    AtlassianSettingsPreviewRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
        auth_method:
          $ref: '#/components/schemas/AuthMethodEnum'
        email:
          type: string
          format: email
        token:
          type: string
          writeOnly: true
        personal_access_token:
          type: string
          writeOnly: true
        username:
          type: string
        password:
          type: string
          writeOnly: true
        verify_ssl:
          type: boolean
          default: true
        project_id:
          type: string
          minLength: 1
        issue_types:
          type: array
          items:
            type: string
            minLength: 1
        support_type_mapping:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          description: Mapping from frontend types to backend request types
        reporter_field:
          type: string
        impact_field:
          type: string
        organisation_field:
          type: string
        project_field:
          type: string
        affected_resource_field:
          type: string
        caller_field:
          type: string
        template_field:
          type: string
        sla_field:
          type: string
        resolution_sla_field:
          type: string
        satisfaction_field:
          type: string
        request_feedback_field:
          type: string
        waldur_backend_id_field:
          type: string
        default_offering_issue_type:
          type: string
          description: Default issue type for marketplace request-based orders
        use_old_api:
          type: boolean
          default: false
        custom_field_mapping_enabled:
          type: boolean
          default: true
      required:
      - api_url
      - auth_method
      - project_id
    AtlassianSettingsSaveRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
        auth_method:
          $ref: '#/components/schemas/AuthMethodEnum'
        email:
          type: string
          format: email
        token:
          type: string
          writeOnly: true
        personal_access_token:
          type: string
          writeOnly: true
        username:
          type: string
        password:
          type: string
          writeOnly: true
        verify_ssl:
          type: boolean
          default: true
        project_id:
          type: string
          minLength: 1
        issue_types:
          type: array
          items:
            type: string
            minLength: 1
        support_type_mapping:
          type: object
          additionalProperties:
            type: string
            minLength: 1
          description: Mapping from frontend types to backend request types
        reporter_field:
          type: string
        impact_field:
          type: string
        organisation_field:
          type: string
        project_field:
          type: string
        affected_resource_field:
          type: string
        caller_field:
          type: string
        template_field:
          type: string
        sla_field:
          type: string
        resolution_sla_field:
          type: string
        satisfaction_field:
          type: string
        request_feedback_field:
          type: string
        waldur_backend_id_field:
          type: string
        default_offering_issue_type:
          type: string
          description: Default issue type for marketplace request-based orders
        use_old_api:
          type: boolean
          default: false
        custom_field_mapping_enabled:
          type: boolean
          default: true
        confirm_save:
          type: boolean
          description: Must be True to confirm saving settings
      required:
      - api_url
      - auth_method
      - confirm_save
      - project_id
    Attachment:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        issue:
          type: string
          format: uri
        issue_key:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        file:
          type: string
          format: uri
        mime_type:
          type: string
          readOnly: true
        file_size:
          type: integer
          readOnly: true
        file_name:
          type: string
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        destroy_is_available:
          type: boolean
          readOnly: true
      required: []
    AttachmentRequest:
      type: object
      description: ''
      properties:
        issue:
          type: string
          format: uri
        file:
          type: string
          format: binary
      required:
      - file
      - issue
    AttributeSourceDetail:
      type: object
      description: ''
      properties:
        source:
          type: string
        timestamp:
          type: string
        age_days:
          type: number
          format: double
        is_stale:
          type: boolean
      required:
      - age_days
      - is_stale
      - source
      - timestamp
    AuthMethodEnum:
      enum:
      - api_token
      - personal_access_token
      - basic
      type: string
      description: ''
    AuthResult:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        token:
          type: string
          readOnly: true
        phone:
          type: string
          maxLength: 30
        message:
          type: string
          readOnly: true
          description: This message will be shown to user.
        state:
          allOf:
          - $ref: '#/components/schemas/AuthResultStateEnum'
          readOnly: true
        error_message:
          type: string
          readOnly: true
        details:
          type: string
          readOnly: true
          description: Cancellation details.
      required:
      - details
      - error_message
      - message
      - phone
      - state
      - token
      - uuid
      description: ''
    AuthResultRequest:
      type: object
      properties:
        phone:
          type: string
          minLength: 1
          maxLength: 30
      required:
      - phone
      description: ''
    AuthResultStateEnum:
      enum:
      - Scheduled
      - Processing
      - OK
      - Canceled
      - Erred
      type: string
      description: ''
    AuthResultUUIDRequest:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID of the authentication result.
      required:
      - uuid
      description: ''
    AuthToken:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        user:
          type: string
          format: uri
        user_first_name:
          type: string
          readOnly: true
        user_last_name:
          type: string
          readOnly: true
        user_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        user_is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
          readOnly: true
        user_token_lifetime:
          type: integer
          maximum: 2147483647
          minimum: 60
          nullable: true
          description: Token lifetime in seconds.
          readOnly: true
      required:
      - created
      - url
      - user
      - user_first_name
      - user_is_active
      - user_last_name
      - user_token_lifetime
      - user_username
      description: ''
    AvailabilityZoneResponse:
      type: object
      description: ''
      properties:
        name:
          type: string
        state:
          type: string
      required:
      - name
      - state
    AvailableArrowCustomersResponse:
      type: object
      description: ''
      properties:
        settings_uuid:
          type: string
          format: uuid
        arrow_customers:
          type: array
          items:
            $ref: '#/components/schemas/ArrowCustomerDiscovery'
        waldur_customers:
          type: array
          items:
            $ref: '#/components/schemas/WaldurCustomerBrief'
        suggestions:
          type: array
          items:
            $ref: '#/components/schemas/CustomerMappingSuggestion'
      required:
      - arrow_customers
      - settings_uuid
      - suggestions
      - waldur_customers
    AvailableChecklist:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        checklist_type:
          type: string
          readOnly: true
        questions_count:
          type: integer
          readOnly: true
        category_name:
          type: string
          readOnly: true
          nullable: true
        category_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
      required:
      - category_name
      - category_uuid
      - checklist_type
      - description
      - name
      - questions_count
      - uuid
      description: ''
    AvailableChecklistsResponse:
      type: object
      properties:
        customer_checklist:
          type: object
          additionalProperties: {}
          nullable: true
        intent_checklist:
          type: object
          additionalProperties: {}
          nullable: true
      required:
      - customer_checklist
      - intent_checklist
      description: ''
    AwsImage:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        region:
          allOf:
          - $ref: '#/components/schemas/AwsRegion'
          readOnly: true
      required:
      - name
      - region
      - url
      - uuid
    AwsInstance:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        start_time:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        cores:
          type: integer
          readOnly: true
          description: Number of cores in a VM
        ram:
          type: integer
          readOnly: true
          description: Memory size in MiB
        disk:
          type: integer
          readOnly: true
          description: Disk size in MiB
        min_ram:
          type: integer
          readOnly: true
          description: Minimum memory size in MiB
        min_disk:
          type: integer
          readOnly: true
          description: Minimum disk size in MiB
        user_data:
          type: string
          description: Additional data that will be added to instance on provisioning
        external_ips:
          type: array
          items:
            type: string
            format: ipv4
          readOnly: true
        internal_ips:
          type: array
          items:
            type: string
            format: ipv4
          readOnly: true
        latitude:
          type: number
          format: double
          readOnly: true
          nullable: true
        longitude:
          type: number
          format: double
          readOnly: true
          nullable: true
        key_name:
          type: string
          readOnly: true
        key_fingerprint:
          type: string
          readOnly: true
        image_name:
          type: string
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    AwsInstanceRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        ssh_public_key:
          type: string
          format: uri
          writeOnly: true
        user_data:
          type: string
          description: Additional data that will be added to instance on provisioning
        region:
          type: string
          format: uri
          writeOnly: true
        image:
          type: string
          format: uri
          writeOnly: true
        size:
          type: string
          format: uri
          writeOnly: true
      required:
      - image
      - name
      - project
      - region
      - service_settings
      - size
    AwsInstanceResize:
      type: object
      description: ''
      properties:
        size:
          type: string
          format: uri
      required:
      - size
    AwsInstanceResizeRequest:
      type: object
      description: ''
      properties:
        size:
          type: string
          format: uri
      required:
      - size
    AwsRegion:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
      required:
      - name
      - url
      - uuid
    AwsSize:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
        cores:
          type: integer
          maximum: 32767
          minimum: 0
          description: Number of cores in a VM
        ram:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Memory size in MiB
        disk:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Disk size in MiB
        regions:
          type: array
          items:
            $ref: '#/components/schemas/AwsRegion'
          readOnly: true
        description:
          type: string
          readOnly: true
      required:
      - cores
      - description
      - disk
      - name
      - ram
      - regions
      - url
      - uuid
    AwsVolume:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        size:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Size of volume in gigabytes
        volume_type:
          $ref: '#/components/schemas/VolumeTypeEnum'
        device:
          type: string
          readOnly: true
          nullable: true
        instance:
          type: string
          format: uri
          readOnly: true
          nullable: true
        runtime_state:
          type: string
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    AwsVolumeAttach:
      type: object
      description: ''
      properties:
        instance:
          type: string
          format: uri
        device:
          type: string
          description: The device name for attachment. For example, use /dev/sd[f-p]
            for Linux instances.
          maxLength: 128
      required:
      - device
      - instance
    AwsVolumeAttachRequest:
      type: object
      description: ''
      properties:
        instance:
          type: string
          format: uri
        device:
          type: string
          minLength: 1
          description: The device name for attachment. For example, use /dev/sd[f-p]
            for Linux instances.
          maxLength: 128
      required:
      - device
      - instance
    AwsVolumeRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        size:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Size of volume in gigabytes
        region:
          type: string
          format: uri
          writeOnly: true
        volume_type:
          $ref: '#/components/schemas/VolumeTypeEnum'
      required:
      - name
      - project
      - region
      - service_settings
      - size
      - volume_type
    AzureImage:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        publisher:
          type: string
          maxLength: 255
        name:
          type: string
          maxLength: 150
        sku:
          type: string
          maxLength: 255
        version:
          type: string
          maxLength: 255
      required:
      - name
      - publisher
      - sku
      - url
      - uuid
      - version
    AzureLocation:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
      required:
      - name
      - url
      - uuid
    AzurePublicIP:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          pattern: ^[a-zA-Z][a-zA-Z0-9._-]+$
          maxLength: 80
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        location:
          type: string
          format: uri
        resource_group:
          type: string
          format: uri
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    AzurePublicIPRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          pattern: ^[a-zA-Z][a-zA-Z0-9._-]+$
          maxLength: 80
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        location:
          type: string
          format: uri
        resource_group:
          type: string
          format: uri
      required:
      - location
      - name
      - project
      - resource_group
      - service_settings
    AzureResourceGroup:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          pattern: ^[-\w._()]+$
          maxLength: 90
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        location:
          type: string
          format: uri
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    AzureSize:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        max_data_disk_count:
          type: integer
          maximum: 2147483647
          minimum: 0
        memory_in_mb:
          type: integer
          maximum: 2147483647
          minimum: 0
        number_of_cores:
          type: integer
          maximum: 2147483647
          minimum: 0
        os_disk_size_in_mb:
          type: integer
          maximum: 2147483647
          minimum: 0
        resource_disk_size_in_mb:
          type: integer
          maximum: 2147483647
          minimum: 0
      required:
      - max_data_disk_count
      - memory_in_mb
      - name
      - number_of_cores
      - os_disk_size_in_mb
      - resource_disk_size_in_mb
      - url
      - uuid
    AzureSqlDatabase:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        server:
          type: string
          format: uri
        charset:
          type: string
          nullable: true
          maxLength: 255
        collation:
          type: string
          nullable: true
          maxLength: 255
        resource_group_name:
          type: string
          readOnly: true
        location_name:
          type: string
          readOnly: true
        server_name:
          type: string
          readOnly: true
        server_uuid:
          type: string
          format: uuid
          readOnly: true
        server_marketplace_uuid:
          type: string
          format: uuid
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    AzureSqlDatabaseCreate:
      type: object
      properties:
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
      required:
      - name
      description: ''
    AzureSqlDatabaseCreateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
      required:
      - name
      description: ''
    AzureSqlDatabaseRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        server:
          type: string
          format: uri
        charset:
          type: string
          nullable: true
          maxLength: 255
        collation:
          type: string
          nullable: true
          maxLength: 255
      required:
      - name
      - project
      - server
      - service_settings
    AzureSqlServer:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          pattern: ^[a-z0-9][a-z0-9-]+[a-z0-9]$
          maxLength: 80
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        resource_group:
          type: string
          format: uri
          readOnly: true
        username:
          type: string
          readOnly: true
        password:
          type: string
          readOnly: true
        storage_mb:
          type: integer
          maximum: 4194304
          minimum: 5120
          nullable: true
        fqdn:
          type: string
          readOnly: true
          nullable: true
        resource_group_name:
          type: string
          readOnly: true
        location_name:
          type: string
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    AzureSqlServerRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          pattern: ^[a-z0-9][a-z0-9-]+[a-z0-9]$
          maxLength: 80
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        location:
          type: string
          format: uri
          writeOnly: true
        storage_mb:
          type: integer
          maximum: 4194304
          minimum: 5120
          nullable: true
      required:
      - location
      - name
      - project
      - service_settings
    AzureVirtualMachine:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          pattern: ^[a-zA-Z][a-zA-Z0-9-]{0,13}[a-zA-Z0-9]$
          maxLength: 15
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        start_time:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        cores:
          type: integer
          readOnly: true
          description: Number of cores in a VM
        ram:
          type: integer
          readOnly: true
          description: Memory size in MiB
        disk:
          type: integer
          readOnly: true
          description: Disk size in MiB
        min_ram:
          type: integer
          readOnly: true
          description: Minimum memory size in MiB
        min_disk:
          type: integer
          readOnly: true
          description: Minimum disk size in MiB
        user_data:
          type: string
          description: Additional data that will be added to instance on provisioning
          maxLength: 87380
        external_ips:
          type: array
          items:
            type: string
            format: ipv4
          readOnly: true
        internal_ips:
          type: array
          items:
            type: string
            format: ipv4
          readOnly: true
        latitude:
          type: number
          format: double
          readOnly: true
          nullable: true
        longitude:
          type: number
          format: double
          readOnly: true
          nullable: true
        key_name:
          type: string
          readOnly: true
        key_fingerprint:
          type: string
          readOnly: true
        image_name:
          type: string
          readOnly: true
        image:
          type: string
          format: uri
        size:
          type: string
          format: uri
        runtime_state:
          type: string
          readOnly: true
        resource_group:
          type: string
          format: uri
          readOnly: true
        username:
          type: string
          readOnly: true
        password:
          type: string
          readOnly: true
        resource_group_name:
          type: string
          readOnly: true
        location_name:
          type: string
          readOnly: true
        size_name:
          type: string
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    AzureVirtualMachineRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          pattern: ^[a-zA-Z][a-zA-Z0-9-]{0,13}[a-zA-Z0-9]$
          maxLength: 15
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        ssh_public_key:
          type: string
          format: uri
          writeOnly: true
          nullable: true
        user_data:
          type: string
          description: Additional data that will be added to instance on provisioning
          maxLength: 87380
        image:
          type: string
          format: uri
        size:
          type: string
          format: uri
        location:
          type: string
          format: uri
          writeOnly: true
      required:
      - image
      - location
      - name
      - project
      - service_settings
      - size
    BackendIdRequest:
      type: object
      properties:
        backend_id:
          type: string
          maxLength: 255
      description: ''
    BackendMetadata:
      type: object
      properties:
        state:
          type: string
          readOnly: true
          description: Backend resource state
        runtime_state:
          type: string
          readOnly: true
          description: Runtime state of the backend resource
        action:
          type: string
          readOnly: true
          description: Current action being performed
        instance_name:
          type: string
          readOnly: true
          nullable: true
          description: Name of the backend instance
      required: []
      description: ''
    BackendResource:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        project:
          type: string
          format: uuid
        project_name:
          type: string
          readOnly: true
        project_url:
          type: string
          format: uri
          readOnly: true
        offering:
          type: string
          format: uuid
        offering_name:
          type: string
          readOnly: true
        offering_url:
          type: string
          format: uri
          readOnly: true
        backend_id:
          type: string
          maxLength: 255
        backend_metadata: {}
      required:
      - created
      - modified
      - name
      - offering
      - offering_name
      - offering_url
      - project
      - project_name
      - project_url
      - url
      - uuid
    BackendResourceImportRequest:
      type: object
      properties:
        plan:
          type: string
          format: uuid
      description: ''
    BackendResourceReq:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        started:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Time when request processing started
        finished:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Time when request processing finished
        state:
          allOf:
          - $ref: '#/components/schemas/BackendResourceReqStateEnum'
          readOnly: true
        offering:
          type: string
          format: uuid
        offering_name:
          type: string
          readOnly: true
        offering_url:
          type: string
          format: uri
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
      required:
      - created
      - error_message
      - error_traceback
      - finished
      - modified
      - offering
      - offering_name
      - offering_url
      - started
      - state
      - url
      - uuid
    BackendResourceReqRequest:
      type: object
      description: ''
      properties:
        offering:
          type: string
          format: uuid
      required:
      - offering
    BackendResourceReqStateEnum:
      enum:
      - Sent
      - Processing
      - Done
      - Erred
      type: string
      description: ''
    BackendResourceRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        project:
          type: string
          format: uuid
        offering:
          type: string
          format: uuid
        backend_id:
          type: string
          maxLength: 255
        backend_metadata: {}
      required:
      - name
      - offering
      - project
    BackendResourceRequestSetErredRequest:
      type: object
      description: ''
      properties:
        error_message:
          type: string
        error_traceback:
          type: string
    BaseComponentUsage:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        description:
          type: string
          maxLength: 4096
        type:
          type: string
          description: Unique internal name of the measured unit, for example floating_ip.
          readOnly: true
        name:
          type: string
          description: Display name for the measured unit, for example, Floating IP.
          readOnly: true
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          readOnly: true
        usage:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
        date:
          type: string
          format: date-time
        recurring:
          type: boolean
          description: Reported value is reused every month until changed.
      required:
      - created
      - date
      - measured_unit
      - name
      - type
      - uuid
    BaseProviderPlan:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
        article_code:
          type: string
          maxLength: 30
        max_amount:
          type: integer
          maximum: 32767
          minimum: 1
          nullable: true
          description: Maximum number of plans that could be active. Plan is disabled
            when maximum amount is reached.
        archived:
          type: boolean
          description: Forbids creation of new resources.
        is_active:
          type: boolean
          readOnly: true
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        unit:
          $ref: '#/components/schemas/BillingUnit'
        init_price:
          type: number
          format: double
          readOnly: true
        switch_price:
          type: number
          format: double
          readOnly: true
        backend_id:
          type: string
          maxLength: 255
        organization_groups:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationGroup'
          readOnly: true
        components:
          type: array
          items:
            $ref: '#/components/schemas/NestedPlanComponent'
          readOnly: true
        prices:
          type: object
          additionalProperties:
            type: number
            format: double
          readOnly: true
        future_prices:
          type: object
          additionalProperties:
            type: number
            format: double
          readOnly: true
        quotas:
          type: object
          additionalProperties:
            type: number
            format: double
          readOnly: true
        resources_count:
          type: integer
          readOnly: true
        plan_type:
          type: string
          readOnly: true
        minimal_price:
          type: number
          format: double
          readOnly: true
      required: []
    BaseProviderPlanRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
        article_code:
          type: string
          maxLength: 30
        max_amount:
          type: integer
          maximum: 32767
          minimum: 1
          nullable: true
          description: Maximum number of plans that could be active. Plan is disabled
            when maximum amount is reached.
        archived:
          type: boolean
          description: Forbids creation of new resources.
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        unit:
          $ref: '#/components/schemas/BillingUnit'
        backend_id:
          type: string
          maxLength: 255
      required:
      - name
    BasePublicPlan:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
        article_code:
          type: string
          maxLength: 30
        max_amount:
          type: integer
          maximum: 32767
          minimum: 1
          nullable: true
          description: Maximum number of plans that could be active. Plan is disabled
            when maximum amount is reached.
        archived:
          type: boolean
          description: Forbids creation of new resources.
        is_active:
          type: boolean
          readOnly: true
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        unit:
          $ref: '#/components/schemas/BillingUnit'
        init_price:
          type: number
          format: double
          readOnly: true
        switch_price:
          type: number
          format: double
          readOnly: true
        backend_id:
          type: string
          maxLength: 255
        organization_groups:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationGroup'
          readOnly: true
        components:
          type: array
          items:
            $ref: '#/components/schemas/NestedPlanComponent'
          readOnly: true
        prices:
          type: object
          additionalProperties:
            type: number
            format: double
          readOnly: true
        future_prices:
          type: object
          additionalProperties:
            type: number
            format: double
          readOnly: true
        quotas:
          type: object
          additionalProperties:
            type: number
            format: double
          readOnly: true
        resources_count:
          type: integer
          readOnly: true
        plan_type:
          type: string
          readOnly: true
        minimal_price:
          type: number
          format: double
          readOnly: true
      required: []
    BasePublicPlanRequest:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
        article_code:
          type: string
          maxLength: 30
        max_amount:
          type: integer
          maximum: 32767
          minimum: 1
          nullable: true
          description: Maximum number of plans that could be active. Plan is disabled
            when maximum amount is reached.
        archived:
          type: boolean
          description: Forbids creation of new resources.
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        unit:
          $ref: '#/components/schemas/BillingUnit'
        backend_id:
          type: string
          maxLength: 255
      required:
      - name
      - url
    BasicCustomer:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
      required:
      - name
      - uuid
      description: ''
    BasicUser:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          pattern: ^[0-9a-z_.@+-]+$
          maxLength: 128
        full_name:
          type: string
          readOnly: true
        native_name:
          type: string
          maxLength: 100
        email:
          type: string
          format: email
          title: Email address
          maxLength: 320
        image:
          type: string
          format: uri
          nullable: true
      required: []
      description: ''
    BidEnum:
      enum:
      - eager
      - willing
      - not_willing
      - conflict
      type: string
      description: ''
    BillingTypeEnum:
      enum:
      - fixed
      - usage
      - limit
      - one
      - few
      type: string
      description: ''
    BillingUnit:
      enum:
      - month
      - quarter
      - half_month
      - day
      - hour
      - quantity
      type: string
      description: ''
    BlankEnum:
      enum:
      - ''
      description: ''
    Booking:
      type: object
      properties:
        created_by_full_name:
          type: string
          nullable: true
          readOnly: true
        start:
          type: string
          format: date-time
        end:
          type: string
          format: date-time
      required:
      - created_by_full_name
      - end
      - start
      description: ''
    BookingResource:
      type: object
      description: ''
      properties:
        offering:
          type: string
          format: uri
        offering_name:
          type: string
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_description:
          type: string
          readOnly: true
        offering_image:
          type: string
          format: uri
          readOnly: true
        offering_thumbnail:
          type: string
          format: uri
          readOnly: true
        offering_type:
          type: string
          readOnly: true
        offering_shared:
          type: boolean
          description: Accessible to all customers.
          readOnly: true
        offering_billable:
          type: boolean
          description: Purchase and usage is invoiced.
          readOnly: true
        offering_plugin_options:
          description: Public data used by specific plugin, such as storage mode for
            OpenStack.
          readOnly: true
        provider_name:
          type: string
          readOnly: true
        provider_uuid:
          type: string
          format: uuid
          readOnly: true
        provider_slug:
          type: string
          readOnly: true
        category_title:
          type: string
          readOnly: true
        category_uuid:
          type: string
          format: uuid
          readOnly: true
        category_icon:
          type: string
          format: uri
          readOnly: true
        plan:
          type: string
          format: uri
        plan_unit:
          allOf:
          - $ref: '#/components/schemas/BillingUnit'
          readOnly: true
          nullable: true
        plan_name:
          type: string
          readOnly: true
          nullable: true
        plan_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        plan_description:
          type: string
          readOnly: true
          nullable: true
        attributes:
          type: object
          additionalProperties: {}
          readOnly: true
        limits:
          type: object
          additionalProperties:
            type: integer
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        scope:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/ResourceState'
          readOnly: true
        resource_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        backend_id:
          type: string
          readOnly: true
        effective_id:
          type: string
          readOnly: true
        resource_type:
          type: string
          nullable: true
          readOnly: true
        project:
          type: string
          format: uri
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_description:
          type: string
          readOnly: true
        project_end_date:
          type: string
          format: date
          nullable: true
          description: The date is inclusive. Once reached, all project resource will
            be scheduled for termination.
          readOnly: true
        project_end_date_requested_by:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        offering_slug:
          type: string
          readOnly: true
        parent_offering_uuid:
          type: string
          format: uuid
          readOnly: true
        parent_offering_name:
          type: string
          readOnly: true
        parent_offering_slug:
          type: string
          readOnly: true
        offering_backend_id:
          type: string
          readOnly: true
        parent_uuid:
          type: string
          format: uuid
          readOnly: true
        parent_name:
          type: string
          readOnly: true
        backend_metadata:
          allOf:
          - $ref: '#/components/schemas/BackendMetadata'
          readOnly: true
        is_usage_based:
          type: boolean
          readOnly: true
        is_limit_based:
          type: boolean
          readOnly: true
        name:
          type: string
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        current_usages:
          type: object
          additionalProperties:
            type: integer
          readOnly: true
        can_terminate:
          type: boolean
          readOnly: true
        report:
          type: array
          items:
            $ref: '#/components/schemas/ReportSection'
          readOnly: true
        end_date:
          type: string
          format: date
          nullable: true
          description: The date is inclusive. Once reached, a resource will be scheduled
            for termination.
        end_date_requested_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        username:
          type: string
          nullable: true
          readOnly: true
        limit_usage:
          type: object
          additionalProperties:
            type: number
            format: double
          readOnly: true
        downscaled:
          type: boolean
        restrict_member_access:
          type: boolean
          readOnly: true
        paused:
          type: boolean
        endpoints:
          type: array
          items:
            $ref: '#/components/schemas/NestedEndpoint'
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        options:
          readOnly: true
          nullable: true
        available_actions:
          type: array
          items:
            type: string
          readOnly: true
        last_sync:
          type: string
          format: date-time
          readOnly: true
        order_in_progress:
          allOf:
          - $ref: '#/components/schemas/OrderDetails'
          readOnly: true
          nullable: true
        creation_order:
          allOf:
          - $ref: '#/components/schemas/OrderDetails'
          readOnly: true
          nullable: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        project_slug:
          type: string
          readOnly: true
        customer_slug:
          type: string
          readOnly: true
        user_requires_reconsent:
          type: boolean
          description: Check if the current user needs to re-consent for this resource's
            offering.
          readOnly: true
        renewal_date:
          type: object
          additionalProperties:
            type: string
            format: date
          nullable: true
          readOnly: true
        offering_state:
          allOf:
          - $ref: '#/components/schemas/OfferingState'
          readOnly: true
        offering_components:
          type: array
          items:
            $ref: '#/components/schemas/OfferingComponent'
          readOnly: true
        created_by:
          type: string
          format: uri
          readOnly: true
        created_by_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        created_by_full_name:
          type: string
          readOnly: true
        consumer_reviewed_by:
          type: string
          format: uri
          readOnly: true
        consumer_reviewed_by_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        consumer_reviewed_by_full_name:
          type: string
          readOnly: true
        slots:
          type: array
          items:
            $ref: '#/components/schemas/BookingSlot'
          readOnly: true
      required: []
    BookingSlot:
      type: object
      properties:
        start:
          type: string
          format: date-time
        end:
          type: string
          format: date-time
        backend_id:
          type: string
          maxLength: 255
      required: []
      description: ''
    BroadcastMessage:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        subject:
          type: string
          maxLength: 1000
        body:
          type: string
        query: {}
        author_full_name:
          type: string
          readOnly: true
        emails:
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/BroadcastMessageStateEnum'
          readOnly: true
        send_at:
          type: string
          format: date
          nullable: true
      required: []
    BroadcastMessageRequest:
      type: object
      description: ''
      properties:
        subject:
          type: string
          minLength: 1
          maxLength: 1000
        body:
          type: string
          minLength: 1
        query: {}
        send_at:
          type: string
          format: date
          nullable: true
      required:
      - body
      - query
      - subject
    BroadcastMessageStateEnum:
      enum:
      - DRAFT
      - SCHEDULED
      - SENT
      type: string
      description: ''
    BulkSilenceResponse:
      type: object
      description: ''
      properties:
        status:
          type: string
        count:
          type: integer
        duration_days:
          type: integer
          nullable: true
      required:
      - count
      - status
    COIDetectionJob:
      type: object
      description: ''
      properties:
        url:
          type: string
          description: Return URL for the job detail endpoint.
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        call:
          type: string
          format: uri
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        job_type:
          allOf:
          - $ref: '#/components/schemas/COIDetectionJobJobTypeEnum'
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/COIDetectionJobStateEnum'
          readOnly: true
        total_pairs:
          type: integer
          readOnly: true
        processed_pairs:
          type: integer
          readOnly: true
        progress_percentage:
          type: number
          format: double
          readOnly: true
        conflicts_found:
          type: integer
          readOnly: true
        started_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        completed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        error_message:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - call
      - call_name
      - call_uuid
      - completed_at
      - conflicts_found
      - created
      - error_message
      - job_type
      - processed_pairs
      - progress_percentage
      - started_at
      - state
      - total_pairs
      - url
      - uuid
    COIDetectionJobJobTypeEnum:
      enum:
      - full_call
      - incremental
      - single_pair
      type: string
      description: ''
    COIDetectionJobStateEnum:
      enum:
      - pending
      - running
      - completed
      - failed
      - cancelled
      type: string
      description: ''
    COIDisclosureFinancialInterest:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        entity_name:
          type: string
          maxLength: 255
        entity_type:
          $ref: '#/components/schemas/EntityTypeEnum'
        relationship_type:
          $ref: '#/components/schemas/RelationshipTypeEnum'
        amount_range:
          $ref: '#/components/schemas/AmountRangeEnum'
        is_ongoing:
          type: boolean
        description:
          type: string
      required:
      - amount_range
      - entity_name
      - entity_type
      - relationship_type
      - uuid
    COIDisclosureFinancialInterestRequest:
      type: object
      description: ''
      properties:
        entity_name:
          type: string
          minLength: 1
          maxLength: 255
        entity_type:
          $ref: '#/components/schemas/EntityTypeEnum'
        relationship_type:
          $ref: '#/components/schemas/RelationshipTypeEnum'
        amount_range:
          $ref: '#/components/schemas/AmountRangeEnum'
        is_ongoing:
          type: boolean
        description:
          type: string
      required:
      - amount_range
      - entity_name
      - entity_type
      - relationship_type
    COIDisclosureForm:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        reviewer:
          type: string
          format: uri
          readOnly: true
        reviewer_uuid:
          type: string
          format: uuid
          readOnly: true
        reviewer_name:
          type: string
          readOnly: true
        call:
          type: string
          format: uri
          nullable: true
          description: Null for general annual disclosure
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        certified:
          type: boolean
        certification_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        certification_statement:
          type: string
          description: Legal text they agreed to
        has_financial_interests:
          type: boolean
        financial_interests:
          type: array
          items:
            $ref: '#/components/schemas/COIDisclosureFinancialInterest'
          readOnly: true
        has_personal_relationships:
          type: boolean
        personal_relationships: {}
        has_other_conflicts:
          type: boolean
        other_conflicts_description:
          type: string
        valid_until:
          type: string
          format: date
          description: Typically 1 year from certification
        is_current:
          type: boolean
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - call_name
      - call_uuid
      - certification_date
      - created
      - financial_interests
      - is_current
      - reviewer
      - reviewer_name
      - reviewer_uuid
      - url
      - uuid
      - valid_until
    COIDisclosureFormRequest:
      type: object
      description: ''
      properties:
        call:
          type: string
          format: uri
          nullable: true
          description: Null for general annual disclosure
        certified:
          type: boolean
        certification_statement:
          type: string
          description: Legal text they agreed to
        has_financial_interests:
          type: boolean
        has_personal_relationships:
          type: boolean
        personal_relationships: {}
        has_other_conflicts:
          type: boolean
        other_conflicts_description:
          type: string
        valid_until:
          type: string
          format: date
          description: Typically 1 year from certification
      required:
      - valid_until
    COISeverityLevel:
      enum:
      - real
      - apparent
      - potential
      type: string
      description: ''
    COIStatusUpdateRequest:
      type: object
      description: ''
      properties:
        status:
          $ref: '#/components/schemas/COIStatusUpdateStatusEnum'
        review_notes:
          type: string
        management_plan:
          type: string
          description: Required when status is 'waived'
      required:
      - status
    COIStatusUpdateStatusEnum:
      enum:
      - dismissed
      - waived
      - recused
      type: string
      description: ''
    CachePerformance:
      type: object
      description: ''
      properties:
        buffer_cache_hit_ratio:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: Buffer cache hit ratio percentage (should be >99%)
        index_hit_ratio:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: Index cache hit ratio percentage
        shared_buffers:
          type: string
          readOnly: true
          description: Configured shared_buffers setting
        effective_cache_size:
          type: string
          readOnly: true
          description: Configured effective_cache_size setting
      required:
      - buffer_cache_hit_ratio
      - effective_cache_size
      - index_hit_ratio
      - shared_buffers
    CallApplicantAttributeConfig:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        expose_full_name:
          type: boolean
        expose_email:
          type: boolean
        expose_organization:
          type: boolean
        expose_affiliations:
          type: boolean
        expose_organization_type:
          type: boolean
        expose_organization_country:
          type: boolean
        expose_nationality:
          type: boolean
        expose_nationalities:
          type: boolean
        expose_country_of_residence:
          type: boolean
        expose_eduperson_assurance:
          type: boolean
        expose_identity_source:
          type: boolean
        reviewers_see_applicant_details:
          type: boolean
          description: If True, reviewers see applicant identity. If False, proposals
            are anonymized for reviewers.
        exposed_fields:
          type: array
          items:
            type: string
          description: Return list of currently exposed field names.
          readOnly: true
        is_default:
          type: boolean
          description: Return True if this is a default (unsaved) config.
          readOnly: true
      required:
      - call_name
      - call_uuid
      - exposed_fields
      - is_default
      - uuid
    CallApplicantAttributeConfigRequest:
      type: object
      description: ''
      properties:
        call:
          type: string
          format: uuid
          writeOnly: true
        expose_full_name:
          type: boolean
        expose_email:
          type: boolean
        expose_organization:
          type: boolean
        expose_affiliations:
          type: boolean
        expose_organization_type:
          type: boolean
        expose_organization_country:
          type: boolean
        expose_nationality:
          type: boolean
        expose_nationalities:
          type: boolean
        expose_country_of_residence:
          type: boolean
        expose_eduperson_assurance:
          type: boolean
        expose_identity_source:
          type: boolean
        reviewers_see_applicant_details:
          type: boolean
          description: If True, reviewers see applicant identity. If False, proposals
            are anonymized for reviewers.
    CallAssignmentConfiguration:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        call:
          type: string
          format: uri
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        auto_reassign_on_decline:
          type: boolean
          description: Automatically assign next-best reviewer when someone declines.
            If False, manager must manually approve reassignments.
        max_auto_reassign_attempts:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Maximum automatic reassignment attempts before requiring manual
            intervention.
        assignment_expiration_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Days until assignment invitation expires if not responded to.
        send_reminder_before_expiry_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Days before expiry to send reminder notification.
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - call
      - call_name
      - call_uuid
      - created
      - modified
      - uuid
    CallAssignmentConfigurationRequest:
      type: object
      description: ''
      properties:
        auto_reassign_on_decline:
          type: boolean
          description: Automatically assign next-best reviewer when someone declines.
            If False, manager must manually approve reassignments.
        max_auto_reassign_attempts:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Maximum automatic reassignment attempts before requiring manual
            intervention.
        assignment_expiration_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Days until assignment invitation expires if not responded to.
        send_reminder_before_expiry_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Days before expiry to send reminder notification.
    CallAttachDocumentsRequest:
      type: object
      properties:
        documents:
          type: array
          items:
            type: string
            format: binary
        description:
          type: string
          minLength: 1
      required:
      - documents
      description: ''
    CallCOIConfiguration:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        call:
          type: string
          format: uri
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        coauthorship_lookback_years:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Years to look back for co-authorship detection
        coauthorship_threshold_papers:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Minimum shared papers to trigger COI
        institutional_lookback_years:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Years to look back for former institution detection
        include_same_department:
          type: boolean
          description: Detect same-department as COI
        include_same_institution:
          type: boolean
          description: Detect same-institution as COI
        recusal_required_types:
          type: array
          items:
            type: string
          description: COI types requiring automatic recusal
        management_allowed_types:
          type: array
          items:
            type: string
          description: COI types allowing management plan
        disclosure_only_types:
          type: array
          items:
            type: string
          description: COI types requiring disclosure only
        auto_detect_coauthorship:
          type: boolean
          description: Enable automated co-authorship detection
        auto_detect_institutional:
          type: boolean
          description: Enable automated institutional affiliation detection
        auto_detect_named_personnel:
          type: boolean
          description: Enable detection of reviewer named in proposals
        invitation_proposal_disclosure:
          allOf:
          - $ref: '#/components/schemas/InvitationProposalDisclosureEnum'
          description: Level of proposal information disclosed in reviewer invitations
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - call
      - call_name
      - call_uuid
      - created
      - modified
      - uuid
    CallComplianceOverview:
      type: object
      description: ''
      properties:
        checklist:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        proposals:
          type: array
          items: {}
          readOnly: true
      required:
      - checklist
      - proposals
    CallComplianceReviewRequest:
      type: object
      description: ''
      properties:
        proposal_uuid:
          type: string
          format: uuid
        review_notes:
          type: string
      required:
      - proposal_uuid
    CallDetachDocumentsRequest:
      type: object
      properties:
        documents:
          type: array
          items:
            type: string
            format: uuid
      required:
      - documents
      description: ''
    CallDocument:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        file:
          type: string
          format: uri
          nullable: true
          description: Documentation for call for proposals.
        file_name:
          type: string
          readOnly: true
        file_size:
          type: integer
          readOnly: true
        description:
          type: string
          maxLength: 4096
        created:
          type: string
          format: date-time
          readOnly: true
      required: []
      description: ''
    CallDocumentRequest:
      type: object
      properties:
        file:
          type: string
          format: binary
          nullable: true
          description: Documentation for call for proposals.
        description:
          type: string
          maxLength: 4096
      description: ''
    CallManagingOrganisation:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        description:
          type: string
          maxLength: 4096
        customer:
          type: string
          format: uri
        customer_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_image:
          type: string
          format: uri
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_country:
          type: string
          readOnly: true
        image:
          type: string
          format: uri
          nullable: true
      required:
      - created
      - customer
      - customer_abbreviation
      - customer_country
      - customer_image
      - customer_name
      - customer_native_name
      - customer_uuid
      - url
      - uuid
    CallManagingOrganisationRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        customer:
          type: string
          format: uri
        image:
          type: string
          format: binary
          nullable: true
      required:
      - customer
    CallManagingOrganisationStat:
      type: object
      properties:
        open_calls:
          type: integer
          readOnly: true
        active_rounds:
          type: integer
          readOnly: true
        accepted_proposals:
          type: integer
          readOnly: true
        pending_proposals:
          type: integer
          readOnly: true
        pending_review:
          type: integer
          readOnly: true
        rounds_closing_in_one_week:
          type: integer
          readOnly: true
        calls_closing_in_one_week:
          type: integer
          readOnly: true
        offering_requests_pending:
          type: integer
          readOnly: true
      required:
      - accepted_proposals
      - active_rounds
      - calls_closing_in_one_week
      - offering_requests_pending
      - open_calls
      - pending_proposals
      - pending_review
      - rounds_closing_in_one_week
      description: ''
    CallResourceTemplate:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          readOnly: true
        name:
          type: string
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        attributes: {}
        limits: {}
        is_required:
          type: boolean
          description: If True, every proposal must include this resource type
        requested_offering:
          type: string
          format: uri
        requested_offering_name:
          type: string
          readOnly: true
        requested_offering_uuid:
          type: string
          format: uuid
          readOnly: true
        requested_offering_plan:
          allOf:
          - $ref: '#/components/schemas/BasePublicPlan'
          readOnly: true
        created_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        created_by_name:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required: []
    CallResourceTemplateRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        attributes: {}
        limits: {}
        is_required:
          type: boolean
          description: If True, every proposal must include this resource type
        requested_offering:
          type: string
          format: uri
      required:
      - name
      - requested_offering
    CallReviewerPool:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        call:
          type: string
          format: uri
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        reviewer:
          type: string
          format: uri
          readOnly: true
          nullable: true
        reviewer_uuid:
          type: string
          nullable: true
          description: Get reviewer profile UUID if available.
          readOnly: true
        reviewer_name:
          type: string
          nullable: true
          description: Get reviewer name from profile or invited_user.
          readOnly: true
        reviewer_email:
          type: string
          nullable: true
          description: Get email from profile, invited_user, or invited_email.
          readOnly: true
        has_profile:
          type: boolean
          description: Check if reviewer has a profile.
          readOnly: true
        invited_email:
          type: string
          format: email
          readOnly: true
          description: Email address for direct invitations
        invited_user:
          type: string
          format: uri
          readOnly: true
          nullable: true
          description: Waldur user if email matches existing account
        invited_user_name:
          type: string
          readOnly: true
        invited_at:
          type: string
          format: date-time
          readOnly: true
        invitation_status:
          allOf:
          - $ref: '#/components/schemas/InvitationStatusEnum'
          readOnly: true
        invitation_status_display:
          type: string
          readOnly: true
        response_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        decline_reason:
          type: string
          readOnly: true
        max_assignments:
          type: integer
          maximum: 2147483647
          minimum: 0
        current_assignments:
          type: integer
          readOnly: true
        expertise_match_score:
          type: number
          format: double
          nullable: true
          description: Calculated affinity to call topics (0-1)
        invited_by_name:
          type: string
          readOnly: true
        invitation_token:
          type: string
          readOnly: true
        invitation_expires_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        created:
          type: string
          format: date-time
          readOnly: true
        coi_count:
          type: integer
          description: Count total COIs for this reviewer in this call.
          readOnly: true
        coi_by_severity:
          type: object
          additionalProperties: {}
          description: Count COIs by severity level.
          readOnly: true
        reviews_pending:
          type: integer
          description: |-
            Legacy field - always returns 0.

            Previously counted reviews in 'created' state, but that state
            has been removed. Reviews are now created directly in 'in_review' state.
            Kept for backwards compatibility with frontend.
          readOnly: true
        reviews_in_progress:
          type: integer
          description: Count reviews in 'in_review' state.
          readOnly: true
        reviews_completed:
          type: integer
          description: Count reviews in 'submitted' state.
          readOnly: true
      required:
      - call
      - call_name
      - call_uuid
      - coi_by_severity
      - coi_count
      - created
      - current_assignments
      - decline_reason
      - has_profile
      - invitation_expires_at
      - invitation_status
      - invitation_status_display
      - invitation_token
      - invited_at
      - invited_by_name
      - invited_email
      - invited_user
      - invited_user_name
      - response_date
      - reviewer
      - reviewer_email
      - reviewer_name
      - reviewer_uuid
      - reviews_completed
      - reviews_in_progress
      - reviews_pending
      - url
      - uuid
    CallReviewerPoolUpdate:
      type: object
      description: ''
      properties:
        max_assignments:
          type: integer
          maximum: 50
          minimum: 1
          description: Maximum number of proposals that can be assigned to this reviewer
      required:
      - max_assignments
    CallRound:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        start_time:
          type: string
          format: date-time
        cutoff_time:
          type: string
          format: date-time
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        status:
          allOf:
          - $ref: '#/components/schemas/RoundStatus'
          readOnly: true
      required:
      - call_name
      - call_uuid
      - cutoff_time
      - start_time
      - status
      - url
      - uuid
      description: ''
    CallStates:
      enum:
      - draft
      - active
      - archived
      type: string
      description: ''
    Campaign:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        url:
          type: string
          format: uri
          readOnly: true
        start_date:
          type: string
          format: date
          description: Starting from this date, the campaign is active.
        end_date:
          type: string
          format: date
          description: The last day the campaign is active.
        coupon:
          type: string
          description: If coupon is empty, campaign is available to all users.
          maxLength: 255
        discount_type:
          $ref: '#/components/schemas/DiscountTypeEnum'
        discount:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        stock:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        description:
          type: string
          maxLength: 4096
        months:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: How many months in a row should the related service (when activated)
            get special deal (0 for indefinitely until active)
        auto_apply:
          type: boolean
        state:
          type: string
          readOnly: true
        service_provider:
          type: string
          format: uri
        offerings:
          type: array
          items:
            $ref: '#/components/schemas/CampaignOffering'
          readOnly: true
        required_offerings:
          type: array
          items:
            type: string
            format: uuid
      required:
      - discount
      - discount_type
      - end_date
      - name
      - offerings
      - service_provider
      - start_date
      - state
      - url
      - uuid
    CampaignOffering:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
      required:
      - name
      - uuid
      description: ''
    CampaignRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        start_date:
          type: string
          format: date
          description: Starting from this date, the campaign is active.
        end_date:
          type: string
          format: date
          description: The last day the campaign is active.
        coupon:
          type: string
          description: If coupon is empty, campaign is available to all users.
          maxLength: 255
        discount_type:
          $ref: '#/components/schemas/DiscountTypeEnum'
        discount:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        stock:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        description:
          type: string
          maxLength: 4096
        months:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: How many months in a row should the related service (when activated)
            get special deal (0 for indefinitely until active)
        auto_apply:
          type: boolean
        service_provider:
          type: string
          format: uri
        offerings:
          type: array
          items:
            type: string
            format: uuid
            writeOnly: true
          writeOnly: true
        required_offerings:
          type: array
          items:
            type: string
            format: uuid
      required:
      - discount
      - discount_type
      - end_date
      - name
      - offerings
      - service_provider
      - start_date
    CancelRequestResponse:
      type: object
      properties:
        uuid:
          type: string
          description: UUID of the canceled permission request
        scope_name:
          type: string
          description: Name of the invitation scope
        scope_uuid:
          type: string
          description: UUID of the invitation scope
      required:
      - scope_name
      - scope_uuid
      - uuid
      description: ''
    CascadeConfig:
      type: object
      properties:
        steps:
          type: array
          items:
            $ref: '#/components/schemas/CascadeStep'
      required:
      - steps
      description: ''
    CascadeConfigRequest:
      type: object
      properties:
        steps:
          type: array
          items:
            $ref: '#/components/schemas/CascadeStepRequest'
      required:
      - steps
      description: ''
    CascadeStep:
      type: object
      properties:
        name:
          type: string
        label:
          type: string
        type:
          $ref: '#/components/schemas/CascadeStepTypeEnum'
        depends_on:
          type: string
        choices: {}
        choices_map: {}
      required:
      - label
      - name
      - type
      description: ''
    CascadeStepRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        label:
          type: string
          minLength: 1
        type:
          $ref: '#/components/schemas/CascadeStepTypeEnum'
        depends_on:
          type: string
          minLength: 1
        choices: {}
        choices_map: {}
      required:
      - label
      - name
      - type
      description: ''
    CascadeStepTypeEnum:
      enum:
      - select_string
      - select_string_multi
      type: string
      description: ''
    CatalogSummary:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          description: Catalog name (e.g., EESSI, Spack)
          maxLength: 100
        version:
          type: string
          description: Catalog version (e.g., 2023.06, 0.21.0)
          maxLength: 50
        description:
          type: string
      required: []
    CatalogSummaryRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          description: Catalog name (e.g., EESSI, Spack)
          maxLength: 100
        version:
          type: string
          minLength: 1
          description: Catalog version (e.g., 2023.06, 0.21.0)
          maxLength: 50
        description:
          type: string
      required:
      - name
      - version
    CatalogTypeEnum:
      enum:
      - binary_runtime
      - source_package
      - package_manager
      type: string
      description: ''
    CategoryColumn:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        index:
          type: integer
          maximum: 32767
          minimum: 0
          description: Index allows to reorder columns.
        title:
          type: string
          description: Title is rendered as column header.
          maxLength: 255
        attribute:
          type: string
          description: Resource attribute is rendered as table cell.
          maxLength: 255
        widget:
          nullable: true
          description: Widget field allows to customise table cell rendering.
          oneOf:
          - $ref: '#/components/schemas/WidgetEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        category:
          type: string
          format: uri
      required:
      - category
      - index
      - title
      - uuid
      description: ''
    CategoryColumnRequest:
      type: object
      properties:
        index:
          type: integer
          maximum: 32767
          minimum: 0
          description: Index allows to reorder columns.
        title:
          type: string
          minLength: 1
          description: Title is rendered as column header.
          maxLength: 255
        attribute:
          type: string
          description: Resource attribute is rendered as table cell.
          maxLength: 255
        widget:
          nullable: true
          description: Widget field allows to customise table cell rendering.
          oneOf:
          - $ref: '#/components/schemas/WidgetEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        category:
          type: string
          format: uri
      required:
      - category
      - index
      - title
      description: ''
    CategoryComponent:
      type: object
      properties:
        type:
          type: string
          description: Unique internal name of the measured unit, for example floating_ip.
          pattern: ^[a-zA-Z0-9_\-\/:]+$
          maxLength: 50
        name:
          type: string
          description: Display name for the measured unit, for example, Floating IP.
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          maxLength: 30
      required: []
      description: ''
    CategoryComponentRequest:
      type: object
      properties:
        type:
          type: string
          minLength: 1
          description: Unique internal name of the measured unit, for example floating_ip.
          pattern: ^[a-zA-Z0-9_\-\/:]+$
          maxLength: 50
        name:
          type: string
          minLength: 1
          description: Display name for the measured unit, for example, Floating IP.
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          maxLength: 30
      required:
      - name
      - type
      description: ''
    CategoryComponentUsage:
      type: object
      description: ''
      properties:
        name:
          type: string
          description: Display name for the measured unit, for example, Floating IP.
          readOnly: true
        type:
          type: string
          description: Unique internal name of the measured unit, for example floating_ip.
          readOnly: true
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          readOnly: true
        category_title:
          type: string
          readOnly: true
        category_uuid:
          type: string
          format: uuid
          readOnly: true
        date:
          type: string
          format: date
        reported_usage:
          type: integer
          maximum: 9223372036854775807
          minimum: -9223372036854775808
          format: int64
          nullable: true
        fixed_usage:
          type: integer
          maximum: 9223372036854775807
          minimum: -9223372036854775808
          format: int64
          nullable: true
        scope:
          type: string
      required: []
    CategoryComponents:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        type:
          type: string
          description: Unique internal name of the measured unit, for example floating_ip.
          pattern: ^[a-zA-Z0-9_\-\/:]+$
          maxLength: 50
        name:
          type: string
          description: Display name for the measured unit, for example, Floating IP.
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          maxLength: 30
        category:
          $ref: '#/components/schemas/CategorySerializerForForNestedFields'
      required:
      - category
      - name
      - type
      - uuid
      description: ''
    CategoryComponentsRequest:
      type: object
      properties:
        type:
          type: string
          minLength: 1
          description: Unique internal name of the measured unit, for example floating_ip.
          pattern: ^[a-zA-Z0-9_\-\/:]+$
          maxLength: 50
        name:
          type: string
          minLength: 1
          description: Display name for the measured unit, for example, Floating IP.
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          maxLength: 30
        category:
          $ref: '#/components/schemas/CategorySerializerForForNestedFieldsRequest'
      required:
      - category
      - name
      - type
      description: ''
    CategoryEnum:
      enum:
      - view
      - approve
      - reject
      - extend
      - terminate
      - backup
      - migrate
      - contact
      - escalate
      - configure
      - repair
      - monitor
      type: string
      description: ''
    CategoryGroup:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        title:
          type: string
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: uri
          nullable: true
      required: []
    CategoryGroupRequest:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: binary
          nullable: true
      required:
      - title
    CategoryHelpArticle:
      type: object
      properties:
        title:
          type: string
          nullable: true
          maxLength: 255
        url:
          type: string
          format: uri
          maxLength: 200
      required: []
      description: ''
    CategoryHelpArticleRequest:
      type: object
      properties:
        title:
          type: string
          nullable: true
          maxLength: 255
        url:
          type: string
          format: uri
          minLength: 1
          maxLength: 200
      required:
      - url
      description: ''
    CategoryHelpArticles:
      type: object
      properties:
        title:
          type: string
          nullable: true
          maxLength: 255
        url:
          type: string
          format: uri
          maxLength: 200
        categories:
          type: array
          items:
            $ref: '#/components/schemas/CategorySerializerForForNestedFields'
      required:
      - categories
      - url
      description: ''
    CategoryHelpArticlesRequest:
      type: object
      properties:
        title:
          type: string
          nullable: true
          maxLength: 255
        url:
          type: string
          format: uri
          minLength: 1
          maxLength: 200
        categories:
          type: array
          items:
            $ref: '#/components/schemas/CategorySerializerForForNestedFieldsRequest'
      required:
      - categories
      - url
      description: ''
    CategorySerializerForForNestedFields:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        title:
          type: string
          maxLength: 255
      required:
      - title
      - url
      - uuid
      description: ''
    CategorySerializerForForNestedFieldsRequest:
      type: object
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 255
      required:
      - title
      description: ''
    CeleryBroker:
      type: object
      description: ''
      properties:
        hostname:
          type: string
          readOnly: true
          description: Broker hostname
        userid:
          type: string
          readOnly: true
          description: Broker user ID
        virtual_host:
          type: string
          readOnly: true
          description: Virtual host
        port:
          type: integer
          readOnly: true
          description: Broker port
        insist:
          type: boolean
          readOnly: true
        ssl:
          type: boolean
          readOnly: true
        transport:
          type: string
          readOnly: true
          description: Transport protocol
        connect_timeout:
          type: integer
          readOnly: true
          description: Connection timeout in seconds
        transport_options:
          type: object
          additionalProperties: {}
          readOnly: true
          description: Additional transport options
        login_method:
          type: string
          readOnly: true
          description: Authentication method
        uri_prefix:
          type: string
          readOnly: true
        heartbeat:
          type: number
          format: double
          readOnly: true
          description: Heartbeat interval
        failover_strategy:
          type: string
          readOnly: true
        alternates:
          type: array
          items:
            type: string
          readOnly: true
      required:
      - alternates
      - connect_timeout
      - failover_strategy
      - heartbeat
      - hostname
      - insist
      - login_method
      - port
      - ssl
      - transport
      - transport_options
      - uri_prefix
      - userid
      - virtual_host
    CeleryScheduledTask:
      type: object
      description: ''
      properties:
        eta:
          type: string
          readOnly: true
          description: Estimated time of arrival for the task
        priority:
          type: integer
          readOnly: true
          description: Task priority level
        request:
          allOf:
          - $ref: '#/components/schemas/CeleryTask'
          readOnly: true
          description: Task request details
      required:
      - eta
      - priority
      - request
    CeleryStatsResponse:
      type: object
      description: ''
      properties:
        active:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/CeleryTask'
          readOnly: true
          nullable: true
          description: Currently executing tasks per worker. Keys are worker names,
            values are lists of active tasks.
        scheduled:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/CeleryScheduledTask'
          readOnly: true
          nullable: true
          description: Tasks scheduled for future execution per worker. Keys are worker
            names, values are lists of scheduled tasks with ETA.
        reserved:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/CeleryTask'
          readOnly: true
          nullable: true
          description: Tasks that have been received but not yet started per worker.
            Keys are worker names, values are lists of reserved tasks.
        revoked:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          readOnly: true
          nullable: true
          description: IDs of revoked (cancelled) tasks per worker. Keys are worker
            names, values are lists of task IDs.
        query_task:
          type: object
          additionalProperties: {}
          readOnly: true
          nullable: true
          description: Query results for specific tasks. May be null if no query was
            performed.
        stats:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/CeleryWorkerStats'
          readOnly: true
          nullable: true
          description: Detailed statistics per worker including uptime, pool info,
            and resource usage. Keys are worker names.
      required:
      - active
      - query_task
      - reserved
      - revoked
      - scheduled
      - stats
    CeleryTask:
      type: object
      description: ''
      properties:
        id:
          type: string
          readOnly: true
          description: Unique task identifier
        name:
          type: string
          readOnly: true
          description: Name of the task
        args:
          type: array
          items: {}
          readOnly: true
          description: Positional arguments passed to the task
        kwargs:
          type: object
          additionalProperties: {}
          readOnly: true
          description: Keyword arguments passed to the task
        type:
          type: string
          readOnly: true
          description: Task type
        hostname:
          type: string
          readOnly: true
          description: Worker hostname executing the task
        time_start:
          type: number
          format: double
          readOnly: true
          description: Unix timestamp when task started
        acknowledged:
          type: boolean
          readOnly: true
          description: Whether task has been acknowledged
        delivery_info:
          type: object
          additionalProperties: {}
          readOnly: true
          description: Message delivery information
        worker_pid:
          type: integer
          readOnly: true
          description: Worker process ID
      required:
      - acknowledged
      - args
      - delivery_info
      - hostname
      - id
      - kwargs
      - name
      - time_start
      - type
      - worker_pid
    CeleryWorkerPool:
      type: object
      description: ''
      properties:
        max_concurrency:
          type: integer
          readOnly: true
          description: Maximum number of concurrent processes
        processes:
          type: array
          items:
            type: integer
          readOnly: true
          description: List of worker process IDs
        max_tasks_per_child:
          type: integer
          readOnly: true
          description: Maximum tasks per child process
        put_guarded_by_semaphore:
          type: boolean
          readOnly: true
        timeouts:
          type: array
          items:
            type: integer
          readOnly: true
          description: Timeout values
        writes:
          type: object
          additionalProperties: {}
          readOnly: true
          description: Write statistics
      required:
      - max_concurrency
      - max_tasks_per_child
      - processes
      - put_guarded_by_semaphore
      - timeouts
      - writes
    CeleryWorkerStats:
      type: object
      description: ''
      properties:
        broker:
          allOf:
          - $ref: '#/components/schemas/CeleryBroker'
          readOnly: true
          description: Broker connection information
        clock:
          type: string
          readOnly: true
          description: Logical clock value
        uptime:
          type: number
          format: double
          readOnly: true
          description: Worker uptime in seconds
        pid:
          type: integer
          readOnly: true
          description: Worker process ID
        pool:
          allOf:
          - $ref: '#/components/schemas/CeleryWorkerPool'
          readOnly: true
          description: Worker pool statistics
        prefetch_count:
          type: integer
          readOnly: true
          description: Number of tasks prefetched
        rusage:
          type: object
          additionalProperties: {}
          readOnly: true
          description: Resource usage statistics
        total:
          type: object
          additionalProperties: {}
          readOnly: true
          description: Total task counts by type
      required:
      - broker
      - clock
      - pid
      - pool
      - prefetch_count
      - rusage
      - total
      - uptime
    ChatRequestModeEnum:
      enum:
      - reload
      type: string
      description: ''
    ChatRequestRequest:
      type: object
      properties:
        input:
          type: string
          minLength: 1
          description: User input text for the chat model.
        thread_uuid:
          type: string
          format: uuid
          nullable: true
          description: Existing thread UUID. If omitted, a new thread is created when
            storage is enabled.
        update_thread_name:
          type: string
          format: uuid
          nullable: true
          description: Thread UUID whose name should be set to the assistant's response.
            Skips message persistence for this call.
        mode:
          nullable: true
          description: '''reload'': replace the last assistant response. Omit for
            normal new-message behavior.'
          oneOf:
          - $ref: '#/components/schemas/ChatRequestModeEnum'
          - $ref: '#/components/schemas/NullEnum'
      required:
      - input
      description: ''
    ChatResponse:
      type: object
      description: ''
      properties:
        k:
          type: string
          description: Component Alias (e.g. 'markdown', 'code', 'table').
        c:
          type: string
          description: Content payload.
        t:
          type: string
          description: Tag or language for dynamic blocks.
        e:
          type: string
          description: Error message.
        h:
          type: array
          items: {}
          description: Table headers.
        r:
          type: array
          items: {}
          description: Table rows.
        n:
          type: integer
          description: Total row count.
        m:
          type: object
          additionalProperties: {}
          description: System metadata.
    ChatSession:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        user:
          type: string
          format: uuid
          readOnly: true
        user_username:
          type: string
          readOnly: true
        user_full_name:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required: []
    CheckUniqueBackendIDRequest:
      type: object
      properties:
        backend_id:
          type: string
          minLength: 1
          description: Backend identifier to check
          maxLength: 255
        check_all_offerings:
          type: boolean
          default: false
          description: Check across all offerings
        use_offering_rules:
          type: boolean
          default: false
          description: Apply the offering's backend_id_rules for format and uniqueness
            validation
      required:
      - backend_id
      description: ''
    CheckUniqueBackendIDResponse:
      type: object
      properties:
        is_unique:
          type: boolean
          description: Whether the backend ID is unique
        is_valid_format:
          type: boolean
          nullable: true
          description: Whether the backend ID matches the offering's format regex
            (null if no rules configured)
        errors:
          type: array
          items:
            type: string
          description: List of validation error messages
      required:
      - is_unique
      description: ''
    Checklist:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        checklist_type:
          allOf:
          - $ref: '#/components/schemas/ChecklistTypeEnum'
          description: Type of compliance this checklist addresses
        questions_count:
          type: integer
          readOnly: true
      required:
      - name
      - questions_count
      - url
      - uuid
    ChecklistCompletion:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        is_completed:
          type: boolean
          readOnly: true
          description: Whether all required questions have been answered
        completion_percentage:
          type: number
          format: double
          readOnly: true
        unanswered_required_questions:
          type: array
          items: {}
          readOnly: true
        checklist_name:
          type: string
          readOnly: true
        checklist_description:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - checklist_description
      - checklist_name
      - completion_percentage
      - created
      - is_completed
      - modified
      - unanswered_required_questions
      - uuid
    ChecklistCompletionReviewer:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        is_completed:
          type: boolean
          readOnly: true
          description: Whether all required questions have been answered
        completion_percentage:
          type: number
          format: double
          readOnly: true
        unanswered_required_questions:
          type: array
          items: {}
          readOnly: true
        checklist_name:
          type: string
          readOnly: true
        checklist_description:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        requires_review:
          type: boolean
          readOnly: true
          description: Whether any answers triggered review requirements
        reviewed_by:
          type: integer
          nullable: true
          description: User who reviewed the checklist completion
        reviewed_by_name:
          type: string
          readOnly: true
        reviewed_at:
          type: string
          format: date-time
          nullable: true
        review_notes:
          type: string
          description: Notes from the reviewer
        review_trigger_summary:
          type: array
          items: {}
          readOnly: true
      required:
      - checklist_description
      - checklist_name
      - completion_percentage
      - created
      - is_completed
      - modified
      - requires_review
      - review_trigger_summary
      - reviewed_by_name
      - unanswered_required_questions
      - uuid
    ChecklistInfo:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
        checklist_type:
          type: string
          readOnly: true
      required:
      - checklist_type
      - name
      - uuid
    ChecklistOperators:
      enum:
      - equals
      - not_equals
      - contains
      - in
      - not_in
      type: string
      description: ''
    ChecklistRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        checklist_type:
          allOf:
          - $ref: '#/components/schemas/ChecklistTypeEnum'
          description: Type of compliance this checklist addresses
      required:
      - name
    ChecklistResponse:
      type: object
      description: ''
      properties:
        checklist:
          type: object
          additionalProperties: {}
          readOnly: true
        completion:
          $ref: '#/components/schemas/ChecklistCompletion'
        questions:
          type: array
          items:
            $ref: '#/components/schemas/QuestionWithAnswer'
      required:
      - checklist
      - completion
      - questions
    ChecklistReviewerResponse:
      type: object
      description: ''
      properties:
        checklist:
          type: object
          additionalProperties: {}
          readOnly: true
        completion:
          $ref: '#/components/schemas/ChecklistCompletionReviewer'
        questions:
          type: array
          items:
            $ref: '#/components/schemas/QuestionWithAnswerReviewer'
      required:
      - checklist
      - completion
      - questions
    ChecklistTemplate:
      type: object
      description: ''
      properties:
        checklist:
          type: object
          additionalProperties: {}
          readOnly: true
        questions:
          type: array
          items:
            $ref: '#/components/schemas/Question'
        initial_visible_questions:
          type: array
          items:
            $ref: '#/components/schemas/Question'
      required:
      - checklist
      - initial_visible_questions
      - questions
    ChecklistTypeEnum:
      enum:
      - project_compliance
      - proposal_compliance
      - offering_compliance
      - project_metadata
      - onboarding_customer
      - onboarding_intent
      type: string
      description: ''
    CircuitBreakerConfig:
      type: object
      description: ''
      properties:
        failure_threshold:
          type: integer
          readOnly: true
          description: Number of failures before opening circuit
        recovery_timeout:
          type: integer
          readOnly: true
          description: Seconds to wait before attempting recovery
        success_threshold:
          type: integer
          readOnly: true
          description: Successful calls needed in half-open state to close
      required:
      - failure_threshold
      - recovery_timeout
      - success_threshold
    CircuitBreakerReset:
      type: object
      description: ''
      properties:
        status:
          type: string
          readOnly: true
          description: Operation status
        state:
          type: string
          readOnly: true
          description: New circuit breaker state after reset
      required:
      - state
      - status
    CircuitBreakerStateChange:
      type: object
      description: ''
      properties:
        timestamp:
          type: number
          format: double
          readOnly: true
          description: Unix timestamp of state change
        from_state:
          type: string
          readOnly: true
          nullable: true
          description: Previous state
        to_state:
          type: string
          readOnly: true
          description: New state
        reason:
          type: string
          readOnly: true
          description: Reason for state change
      required:
      - from_state
      - reason
      - timestamp
      - to_state
    CircuitBreakerStatus:
      type: object
      description: ''
      properties:
        state:
          type: string
          readOnly: true
          description: 'Current state: closed, open, or half_open'
        failure_count:
          type: integer
          readOnly: true
          description: Number of consecutive failures
        success_count:
          type: integer
          readOnly: true
          description: Successful calls since last state change
        last_failure_time:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: Unix timestamp of last failure
        last_state_change:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: Unix timestamp of last state change
        config:
          allOf:
          - $ref: '#/components/schemas/CircuitBreakerConfig'
          readOnly: true
          description: Circuit breaker configuration
        state_history:
          type: array
          items:
            $ref: '#/components/schemas/CircuitBreakerStateChange'
          readOnly: true
          description: Recent state transitions (last 50)
      required:
      - config
      - failure_count
      - last_failure_time
      - last_state_change
      - state
      - state_history
      - success_count
    CleanupConsumptionRequestRequest:
      type: object
      description: ''
      properties:
        period_from:
          type: string
          minLength: 1
          description: YYYY-MM format
        period_to:
          type: string
          minLength: 1
          description: YYYY-MM format
        resource_uuid:
          type: string
          format: uuid
        only_finalized:
          type: boolean
          default: false
        only_unfinalized:
          type: boolean
          default: false
        dry_run:
          type: boolean
          default: true
    CleanupConsumptionResponse:
      type: object
      description: ''
      properties:
        dry_run:
          type: boolean
        records_to_delete:
          type: integer
        records_deleted:
          type: integer
        compensation_items_affected:
          type: integer
        invoice_items_affected:
          type: integer
      required:
      - compensation_items_affected
      - dry_run
      - invoice_items_affected
      - records_deleted
      - records_to_delete
    CleanupRequestRequest:
      type: object
      properties:
        dry_run:
          type: boolean
          default: true
          description: If true, only return what would be deleted without actually
            deleting
        older_than_hours:
          type: integer
          minimum: 1
          default: 24
          description: Delete entries older than this many hours
      description: ''
    CleanupResponse:
      type: object
      properties:
        deleted_count:
          type: integer
          description: Number of items deleted (or would be deleted in dry run)
        dry_run:
          type: boolean
          description: Whether this was a dry run
        items:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: List of deleted (or to-be-deleted) items
      required:
      - deleted_count
      - dry_run
      - items
      description: ''
    ClusterSecurityGroup:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        rules:
          type: array
          items:
            $ref: '#/components/schemas/RancherClusterSecurityGroupRule'
      required:
      - description
      - name
      - rules
      - uuid
      description: ''
    ClusterSecurityGroupRequest:
      type: object
      properties:
        rules:
          type: array
          items:
            $ref: '#/components/schemas/RancherClusterSecurityGroupRuleRequest'
      required:
      - rules
      description: ''
    CoiTypeEnum:
      enum:
      - INST_SAME
      - FIN_DIRECT
      - REL_FAMILY
      - ROLE_NAMED
      - COLLAB_ACTIVE
      - REL_MENTOR
      - REL_SUPERVISOR
      - COAUTH_RECENT
      - INST_DEPT
      - INST_FORMER
      - ROLE_CONF
      - COLLAB_GRANT
      - REL_EDITORIAL
      - COMPET
      - COAUTH_OLD
      - INST_CONSORT
      - CONF_ATTEND
      - SOC_MEMBER
      type: string
      description: ''
    Comment:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        issue:
          type: string
          format: uri
          readOnly: true
        issue_key:
          type: string
          readOnly: true
        description:
          type: string
        is_public:
          type: boolean
        author_name:
          type: string
          readOnly: true
        author_uuid:
          type: string
          format: uuid
          readOnly: true
        author_user:
          type: string
          format: uri
          readOnly: true
        author_email:
          type: string
          format: email
          title: Email address
          readOnly: true
        backend_id:
          type: string
          readOnly: true
          nullable: true
        remote_id:
          type: string
          nullable: true
          maxLength: 255
        created:
          type: string
          format: date-time
          readOnly: true
        update_is_available:
          type: boolean
          readOnly: true
        destroy_is_available:
          type: boolean
          readOnly: true
      required:
      - author_email
      - author_name
      - author_user
      - author_uuid
      - backend_id
      - created
      - description
      - destroy_is_available
      - issue
      - issue_key
      - update_is_available
      - url
      - uuid
    CommentRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          minLength: 1
        is_public:
          type: boolean
      required:
      - description
    ComplianceOverview:
      type: object
      description: ''
      properties:
        total_projects:
          type: integer
          readOnly: true
        projects_with_completions:
          type: integer
          readOnly: true
        fully_completed_projects:
          type: integer
          readOnly: true
        projects_requiring_review:
          type: integer
          readOnly: true
        average_completion_percentage:
          type: number
          format: double
          readOnly: true
      required:
      - average_completion_percentage
      - fully_completed_projects
      - projects_requiring_review
      - projects_with_completions
      - total_projects
    ComponentMultiplierConfig:
      type: object
      properties:
        component_type:
          type: string
        factor:
          type: integer
          minimum: 1
        min_limit:
          type: integer
          minimum: 0
        max_limit:
          type: integer
          minimum: 0
      required:
      - component_type
      - factor
      description: ''
    ComponentMultiplierConfigRequest:
      type: object
      properties:
        component_type:
          type: string
          minLength: 1
        factor:
          type: integer
          minimum: 1
        min_limit:
          type: integer
          minimum: 0
        max_limit:
          type: integer
          minimum: 0
      required:
      - component_type
      - factor
      description: ''
    ComponentStats:
      type: object
      properties:
        type:
          type: string
          readOnly: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        measured_unit:
          type: string
          readOnly: true
        billing_type:
          type: string
          readOnly: true
        usage:
          type: integer
          readOnly: true
        limit_usage:
          type: integer
          readOnly: true
        limit:
          type: integer
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
      required:
      - billing_type
      - description
      - limit
      - limit_usage
      - measured_unit
      - name
      - offering_name
      - offering_uuid
      - type
      - usage
      description: ''
    ComponentUsage:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        description:
          type: string
          maxLength: 4096
        type:
          type: string
          description: Unique internal name of the measured unit, for example floating_ip.
          readOnly: true
        name:
          type: string
          description: Display name for the measured unit, for example, Floating IP.
          readOnly: true
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          readOnly: true
        usage:
          type: integer
          readOnly: true
        date:
          type: string
          format: date-time
        recurring:
          type: boolean
          description: Reported value is reused every month until changed.
        resource_name:
          type: string
          readOnly: true
        resource_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          readOnly: true
        billing_period:
          type: string
          format: date
        modified_by:
          type: integer
          nullable: true
      required: []
    ComponentUsageCreateRequest:
      type: object
      properties:
        usages:
          type: array
          items:
            $ref: '#/components/schemas/ComponentUsageItemRequest'
          description: List of component usage items to report
        plan_period:
          type: string
          format: uuid
          description: UUID of the specific resource plan period for usage reporting
        resource:
          type: string
          format: uuid
          description: UUID of the resource for usage reporting (required if plan_period
            not provided)
        date:
          type: string
          format: date-time
          description: Date for usage reporting (staff and service providers for limit-based
            components). If not provided, current date is used.
      required:
      - usages
      description: ''
    ComponentUsageItemRequest:
      type: object
      properties:
        type:
          type: string
          minLength: 1
          description: Type of the component
        amount:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Usage amount
        description:
          type: string
          description: Optional description of usage
        recurring:
          type: boolean
          default: false
          description: Whether this usage is recurring
      required:
      - amount
      - type
      description: ''
    ComponentUsagesPerMonthStats:
      type: object
      properties:
        usage:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Total usage amount
        offering_uuid:
          type: string
          format: uuid
          description: UUID of the offering
        component_type:
          type: string
          description: Type of the component
        offering_country:
          type: string
          readOnly: true
          description: Country of the offering
        organization_group_name:
          type: string
          readOnly: true
          description: Name of the organization group
        organization_group_uuid:
          type: string
          readOnly: true
          description: UUID of the organization group
        month:
          type: integer
          description: Month of the billing period
        year:
          type: integer
          description: Year of the billing period
      required:
      - component_type
      - month
      - offering_country
      - offering_uuid
      - organization_group_name
      - organization_group_uuid
      - usage
      - year
      description: ''
    ComponentUsagesPerProject:
      type: object
      properties:
        project_uuid:
          type: string
          format: uuid
          description: UUID of the project
        component_type:
          type: string
          description: Type of the component
        usage:
          type: integer
          readOnly: true
          description: Total usage for the component
      required:
      - component_type
      - project_uuid
      - usage
      description: ''
    ComponentUsagesStats:
      type: object
      properties:
        usage:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Total usage amount
        offering_uuid:
          type: string
          format: uuid
          description: UUID of the offering
        component_type:
          type: string
          description: Type of the component
        offering_country:
          type: string
          readOnly: true
          description: Country of the offering
        organization_group_name:
          type: string
          readOnly: true
          description: Name of the organization group
        organization_group_uuid:
          type: string
          readOnly: true
          description: UUID of the organization group
      required:
      - component_type
      - offering_country
      - offering_uuid
      - organization_group_name
      - organization_group_uuid
      - usage
      description: ''
    ComponentUserUsage:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        user:
          type: string
          format: uri
        username:
          type: string
          maxLength: 100
        component_usage:
          type: string
          format: uri
        usage:
          type: integer
          readOnly: true
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          readOnly: true
        description:
          type: string
          maxLength: 4096
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          maxLength: 255
        resource_name:
          type: string
          readOnly: true
        resource_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        component_type:
          type: string
          description: Unique internal name of the measured unit, for example floating_ip.
          readOnly: true
        date:
          type: string
          format: date-time
          readOnly: true
        billing_period:
          type: string
          format: date
          readOnly: true
      required: []
    ComponentUserUsageCreateRequest:
      type: object
      properties:
        usage:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
        username:
          type: string
          minLength: 1
          maxLength: 100
        user:
          type: string
          format: uri
        date:
          type: string
          format: date-time
          description: Date for usage reporting (staff and service providers for limit-based
            components). If not provided, current date is used.
      required:
      - username
      description: ''
    ComponentUserUsageLimit:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        resource:
          type: string
          format: uri
        component:
          type: string
          format: uuid
        component_type:
          type: string
          description: Unique internal name of the measured unit, for example floating_ip.
          readOnly: true
        user:
          type: string
          format: uri
        limit:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
      required:
      - component
      - component_type
      - resource
      - url
      - user
      - uuid
      description: ''
    ComponentUserUsageLimitRequest:
      type: object
      properties:
        resource:
          type: string
          format: uri
        component:
          type: string
          format: uuid
        user:
          type: string
          format: uri
        limit:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
      required:
      - component
      - resource
      - user
      description: ''
    ComponentsUsageStats:
      type: object
      properties:
        components:
          type: array
          items:
            $ref: '#/components/schemas/ComponentStats'
          readOnly: true
      required:
      - components
      description: ''
    ComputeAffinitiesResponse:
      type: object
      description: ''
      properties:
        computed_count:
          type: integer
        message:
          type: string
      required:
      - computed_count
      - message
    ConfirmEmailRequestRequest:
      type: object
      properties:
        code:
          type: string
          minLength: 1
      required:
      - code
      description: ''
    ConflictOfInterest:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        reviewer:
          type: string
          format: uri
          readOnly: true
        reviewer_uuid:
          type: string
          format: uuid
          readOnly: true
        reviewer_name:
          type: string
          readOnly: true
        proposal:
          type: string
          format: uri
          readOnly: true
          nullable: true
        proposal_uuid:
          type: string
          format: uuid
          readOnly: true
        proposal_name:
          type: string
          readOnly: true
        round_uuid:
          type: string
          format: uuid
          readOnly: true
        round_name:
          type: string
          readOnly: true
        call:
          type: string
          format: uri
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        coi_type:
          allOf:
          - $ref: '#/components/schemas/CoiTypeEnum'
          readOnly: true
        coi_type_display:
          type: string
          readOnly: true
        severity:
          allOf:
          - $ref: '#/components/schemas/COISeverityLevel'
          readOnly: true
        severity_display:
          type: string
          readOnly: true
        detection_method:
          allOf:
          - $ref: '#/components/schemas/DetectionMethodEnum'
          readOnly: true
        detected_at:
          type: string
          format: date-time
          readOnly: true
        evidence_description:
          type: string
          readOnly: true
        evidence_data:
          readOnly: true
          description: 'Structured evidence: {"papers": [...], "affiliation_overlap":
            {...}}'
        status:
          $ref: '#/components/schemas/ConflictOfInterestStatusEnum'
        status_display:
          type: string
          readOnly: true
        reviewed_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        reviewed_by_name:
          type: string
          readOnly: true
        reviewed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        review_notes:
          type: string
        management_plan:
          type: string
          description: If waived, how is it managed
        conflicting_user:
          type: string
          format: uri
          readOnly: true
          nullable: true
          description: Specific person causing conflict
        conflicting_user_name:
          type: string
          readOnly: true
        conflicting_organization:
          type: string
          format: uri
          readOnly: true
          nullable: true
        conflicting_organization_name:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - call
      - call_name
      - call_uuid
      - coi_type
      - coi_type_display
      - conflicting_organization
      - conflicting_organization_name
      - conflicting_user
      - conflicting_user_name
      - created
      - detected_at
      - detection_method
      - evidence_data
      - evidence_description
      - proposal
      - proposal_name
      - proposal_uuid
      - reviewed_at
      - reviewed_by
      - reviewed_by_name
      - reviewer
      - reviewer_name
      - reviewer_uuid
      - round_name
      - round_uuid
      - severity
      - severity_display
      - status_display
      - url
      - uuid
    ConflictOfInterestRequest:
      type: object
      description: ''
      properties:
        status:
          $ref: '#/components/schemas/ConflictOfInterestStatusEnum'
        review_notes:
          type: string
        management_plan:
          type: string
          description: If waived, how is it managed
    ConflictOfInterestStatusEnum:
      enum:
      - pending
      - dismissed
      - waived
      - recused
      type: string
      description: ''
    ConflictSummaryResponse:
      type: object
      description: ''
      properties:
        total:
          type: integer
        by_status:
          type: object
          additionalProperties:
            type: integer
        by_severity:
          type: object
          additionalProperties:
            type: integer
        by_type:
          type: object
          additionalProperties:
            type: integer
      required:
      - by_severity
      - by_status
      - by_type
      - total
    ConnectionStats:
      type: object
      description: ''
      properties:
        active:
          type: integer
          readOnly: true
          description: Number of active connections
        idle:
          type: integer
          readOnly: true
          description: Number of idle connections
        idle_in_transaction:
          type: integer
          readOnly: true
          description: Number of connections idle in transaction
        waiting:
          type: integer
          readOnly: true
          description: Number of connections waiting for a lock
        max_connections:
          type: integer
          readOnly: true
          description: Maximum allowed connections
        utilization_percent:
          type: number
          format: double
          readOnly: true
          description: Percentage of max connections in use
      required:
      - active
      - idle
      - idle_in_transaction
      - max_connections
      - utilization_percent
      - waiting
    ConsoleUrl:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - url
      description: ''
    ConstanceSettings:
      type: object
      properties:
        SITE_NAME:
          type: string
        SITE_DESCRIPTION:
          type: string
        HOMEPORT_URL:
          type: string
        RANCHER_USERNAME_INPUT_LABEL:
          type: string
        DISCLAIMER_AREA_TEXT:
          type: string
        SITE_ADDRESS:
          type: string
        SITE_EMAIL:
          type: string
        SITE_PHONE:
          type: string
        CURRENCY_NAME:
          type: string
        THUMBNAIL_SIZE:
          type: string
        ANONYMOUS_USER_CAN_VIEW_OFFERINGS:
          type: boolean
        ANONYMOUS_USER_CAN_VIEW_PLANS:
          type: boolean
        RESTRICTED_OFFERING_VISIBILITY_MODE:
          type: string
        ALLOW_SERVICE_PROVIDER_OFFERING_MANAGEMENT:
          type: boolean
        NOTIFY_STAFF_ABOUT_APPROVALS:
          type: boolean
        NOTIFY_ABOUT_RESOURCE_CHANGE:
          type: boolean
        DISABLE_SENDING_NOTIFICATIONS_ABOUT_RESOURCE_UPDATE:
          type: boolean
        MARKETPLACE_LANDING_PAGE:
          type: string
        ENABLE_STALE_RESOURCE_NOTIFICATIONS:
          type: boolean
        TELEMETRY_URL:
          type: string
        TELEMETRY_VERSION:
          type: integer
        SCRIPT_RUN_MODE:
          type: string
        DOCKER_CLIENT:
          type: string
        DOCKER_RUN_OPTIONS:
          type: string
        DOCKER_SCRIPT_DIR:
          type: string
        DOCKER_REMOVE_CONTAINER:
          type: boolean
        DOCKER_IMAGES:
          type: string
        DOCKER_VOLUME_NAME:
          type: string
        K8S_NAMESPACE:
          type: string
        K8S_CONFIG_PATH:
          type: string
        K8S_JOB_TIMEOUT:
          type: integer
        ENABLE_STRICT_CHECK_ACCEPTING_INVITATION:
          type: boolean
        INVITATION_DISABLE_MULTIPLE_ROLES:
          type: boolean
        DEFAULT_IDP:
          type: string
        DOCS_URL:
          type: string
          format: uri
        SHORT_PAGE_TITLE:
          type: string
        FULL_PAGE_TITLE:
          type: string
        PROJECT_END_DATE_MANDATORY:
          type: boolean
        ENABLE_ORDER_START_DATE:
          type: boolean
        BRAND_COLOR:
          type: string
          pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
        HERO_LINK_LABEL:
          type: string
        HERO_LINK_URL:
          type: string
          format: uri
        SUPPORT_PORTAL_URL:
          type: string
          format: uri
        COMMON_FOOTER_TEXT:
          type: string
        COMMON_FOOTER_HTML:
          type: string
        LANGUAGE_CHOICES:
          type: string
        DISABLE_DARK_THEME:
          type: boolean
        POWERED_BY_LOGO:
          type: string
          format: uri
          nullable: true
        HERO_IMAGE:
          type: string
          format: uri
          nullable: true
        MARKETPLACE_HERO_IMAGE:
          type: string
          format: uri
          nullable: true
        CALL_MANAGEMENT_HERO_IMAGE:
          type: string
          format: uri
          nullable: true
        SIDEBAR_LOGO:
          type: string
          format: uri
          nullable: true
        SIDEBAR_LOGO_DARK:
          type: string
          format: uri
          nullable: true
        SIDEBAR_LOGO_MOBILE:
          type: string
          format: uri
          nullable: true
        SIDEBAR_STYLE:
          type: string
        SITE_LOGO:
          type: string
          format: uri
          nullable: true
        LOGIN_LOGO:
          type: string
          format: uri
          nullable: true
        LOGIN_LOGO_MULTILINGUAL:
          type: object
          additionalProperties:
            type: string
            format: uri
            nullable: true
        LOGIN_PAGE_LAYOUT:
          type: string
        LOGIN_PAGE_VIDEO_URL:
          type: string
          format: uri
        LOGIN_PAGE_STATS:
          type: array
          items: {}
        LOGIN_PAGE_CAROUSEL_SLIDES:
          type: array
          items: {}
        LOGIN_PAGE_NEWS:
          type: array
          items: {}
        FAVICON:
          type: string
          format: uri
          nullable: true
        OFFERING_LOGO_PLACEHOLDER:
          type: string
          format: uri
          nullable: true
        DISCLAIMER_AREA_LOGO:
          type: string
          format: uri
          nullable: true
        WALDUR_SUPPORT_ENABLED:
          type: boolean
        WALDUR_SUPPORT_ACTIVE_BACKEND_TYPE:
          type: string
        WALDUR_SUPPORT_DISPLAY_REQUEST_TYPE:
          type: boolean
        ATLASSIAN_MAP_WALDUR_USERS_TO_SERVICEDESK_AGENTS:
          type: boolean
        ATLASSIAN_API_URL:
          type: string
          format: uri
        ATLASSIAN_USERNAME:
          type: string
        ATLASSIAN_PASSWORD:
          type: string
        ATLASSIAN_EMAIL:
          type: string
          format: email
        ATLASSIAN_USE_OLD_API:
          type: boolean
        ATLASSIAN_TOKEN:
          type: string
        ATLASSIAN_PERSONAL_ACCESS_TOKEN:
          type: string
        ATLASSIAN_OAUTH2_CLIENT_ID:
          type: string
        ATLASSIAN_OAUTH2_ACCESS_TOKEN:
          type: string
        ATLASSIAN_OAUTH2_TOKEN_TYPE:
          type: string
        ATLASSIAN_VERIFY_SSL:
          type: boolean
        ATLASSIAN_PROJECT_ID:
          type: string
        ATLASSIAN_SHARED_USERNAME:
          type: boolean
        ATLASSIAN_CUSTOM_ISSUE_FIELD_MAPPING_ENABLED:
          type: boolean
        ATLASSIAN_DEFAULT_OFFERING_ISSUE_TYPE:
          type: string
        ATLASSIAN_EXCLUDED_ATTACHMENT_TYPES:
          type: string
        ATLASSIAN_DESCRIPTION_TEMPLATE:
          type: string
        ATLASSIAN_SUMMARY_TEMPLATE:
          type: string
        ATLASSIAN_AFFECTED_RESOURCE_FIELD:
          type: string
        ATLASSIAN_IMPACT_FIELD:
          type: string
        ATLASSIAN_ORGANISATION_FIELD:
          type: string
        ATLASSIAN_RESOLUTION_SLA_FIELD:
          type: string
        ATLASSIAN_PROJECT_FIELD:
          type: string
        ATLASSIAN_REPORTER_FIELD:
          type: string
        ATLASSIAN_CALLER_FIELD:
          type: string
        ATLASSIAN_SLA_FIELD:
          type: string
        ATLASSIAN_LINKED_ISSUE_TYPE:
          type: string
        ATLASSIAN_SATISFACTION_FIELD:
          type: string
        ATLASSIAN_REQUEST_FEEDBACK_FIELD:
          type: string
        ATLASSIAN_TEMPLATE_FIELD:
          type: string
        ATLASSIAN_WALDUR_BACKEND_ID_FIELD:
          type: string
        ZAMMAD_API_URL:
          type: string
          format: uri
        ZAMMAD_TOKEN:
          type: string
        ZAMMAD_GROUP:
          type: string
        ZAMMAD_ARTICLE_TYPE:
          type: string
        ZAMMAD_COMMENT_MARKER:
          type: string
        ZAMMAD_COMMENT_PREFIX:
          type: string
        ZAMMAD_COMMENT_COOLDOWN_DURATION:
          type: integer
        SMAX_API_URL:
          type: string
          format: uri
        SMAX_TENANT_ID:
          type: string
        SMAX_LOGIN:
          type: string
        SMAX_PASSWORD:
          type: string
        SMAX_ORGANISATION_FIELD:
          type: string
        SMAX_PROJECT_FIELD:
          type: string
        SMAX_AFFECTED_RESOURCE_FIELD:
          type: string
        SMAX_TIMES_TO_PULL:
          type: integer
        SMAX_SECONDS_TO_WAIT:
          type: integer
        SMAX_CREATION_SOURCE_NAME:
          type: string
        SMAX_REQUESTS_OFFERING:
          type: string
        SMAX_VERIFY_SSL:
          type: boolean
        ENABLE_MOCK_SERVICE_ACCOUNT_BACKEND:
          type: boolean
        ENABLE_MOCK_COURSE_ACCOUNT_BACKEND:
          type: boolean
        PROPOSAL_REVIEW_DURATION:
          type: integer
        ORCID_CLIENT_ID:
          type: string
        ORCID_CLIENT_SECRET:
          type: string
        ORCID_REDIRECT_URI:
          type: string
          format: uri
        ORCID_API_URL:
          type: string
          format: uri
        ORCID_AUTH_URL:
          type: string
          format: uri
        ORCID_SANDBOX_MODE:
          type: boolean
        SEMANTIC_SCHOLAR_API_KEY:
          type: string
        CROSSREF_MAILTO:
          type: string
          format: email
        REVIEWER_PROFILES_ENABLED:
          type: boolean
        COI_DETECTION_ENABLED:
          type: boolean
        COI_DISCLOSURE_REQUIRED:
          type: boolean
        AUTOMATED_MATCHING_ENABLED:
          type: boolean
        COI_COAUTHORSHIP_LOOKBACK_YEARS:
          type: integer
        COI_COAUTHORSHIP_THRESHOLD_PAPERS:
          type: integer
        COI_INSTITUTIONAL_LOOKBACK_YEARS:
          type: integer
        USER_TABLE_COLUMNS:
          type: string
        AUTO_APPROVE_USER_TOS:
          type: boolean
        FREEIPA_ENABLED:
          type: boolean
        FREEIPA_HOSTNAME:
          type: string
        FREEIPA_USERNAME:
          type: string
        FREEIPA_PASSWORD:
          type: string
        FREEIPA_VERIFY_SSL:
          type: boolean
        FREEIPA_USERNAME_PREFIX:
          type: string
        FREEIPA_GROUPNAME_PREFIX:
          type: string
        FREEIPA_BLACKLISTED_USERNAMES:
          type: array
          items:
            type: string
        FREEIPA_GROUP_SYNCHRONIZATION_ENABLED:
          type: boolean
        SCIM_MEMBERSHIP_SYNC_ENABLED:
          type: boolean
        SCIM_API_URL:
          type: string
        SCIM_API_KEY:
          type: string
        SCIM_URN_NAMESPACE:
          type: string
        KEYCLOAK_ICON:
          type: string
          format: uri
          nullable: true
        COUNTRIES:
          type: array
          items:
            type: string
        OIDC_AUTH_URL:
          type: string
        OIDC_INTROSPECTION_URL:
          type: string
        OIDC_CLIENT_ID:
          type: string
        OIDC_CLIENT_SECRET:
          type: string
        OIDC_USER_FIELD:
          type: string
        OIDC_CACHE_TIMEOUT:
          type: integer
        OIDC_ACCESS_TOKEN_ENABLED:
          type: boolean
        OIDC_BLOCK_CREATION_OF_UNINVITED_USERS:
          type: boolean
        OIDC_MATCHMAKING_BY_EMAIL:
          type: boolean
        DEACTIVATE_USER_IF_NO_ROLES:
          type: boolean
        WALDUR_AUTH_SOCIAL_ROLE_CLAIM:
          type: string
        REMOTE_EDUTEAMS_REFRESH_TOKEN:
          type: string
        DEFAULT_OFFERING_USER_ATTRIBUTES:
          type: array
          items:
            type: string
        INVITATION_ALLOWED_FIELDS:
          type: array
          items:
            type: string
        ENABLED_USER_PROFILE_ATTRIBUTES:
          type: array
          items:
            type: string
        MANDATORY_USER_ATTRIBUTES:
          type: array
          items:
            type: string
        ENFORCE_MANDATORY_USER_ATTRIBUTES:
          type: boolean
        MAINTENANCE_ANNOUNCEMENT_NOTIFY_BEFORE_MINUTES:
          type: integer
        MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM:
          type: array
          items:
            type: string
        ENFORCE_USER_CONSENT_FOR_OFFERINGS:
          type: boolean
        DISABLED_OFFERING_TYPES:
          type: array
          items:
            type: string
        ONBOARDING_VALIDATION_METHODS:
          type: array
          items:
            type: string
        ONBOARDING_VERIFICATION_EXPIRY_HOURS:
          type: integer
        ONBOARDING_ARIREGISTER_BASE_URL:
          type: string
          format: uri
        ONBOARDING_ARIREGISTER_USERNAME:
          type: string
        ONBOARDING_ARIREGISTER_PASSWORD:
          type: string
        ONBOARDING_ARIREGISTER_TIMEOUT:
          type: integer
        ONBOARDING_WICO_API_URL:
          type: string
          format: uri
        ONBOARDING_WICO_TOKEN:
          type: string
        ONBOARDING_BOLAGSVERKET_API_URL:
          type: string
          format: uri
        ONBOARDING_BOLAGSVERKET_TOKEN_API_URL:
          type: string
          format: uri
        ONBOARDING_BOLAGSVERKET_CLIENT_ID:
          type: string
        ONBOARDING_BOLAGSVERKET_CLIENT_SECRET:
          type: string
        ONBOARDING_BREG_API_URL:
          type: string
          format: uri
        LLM_CHAT_ENABLED:
          type: boolean
        LLM_INFERENCES_BACKEND_TYPE:
          type: string
        LLM_INFERENCES_API_URL:
          type: string
          format: uri
        LLM_INFERENCES_API_TOKEN:
          type: string
        LLM_INFERENCES_MODEL:
          type: string
        LLM_TOKEN_LIMIT_DAILY:
          type: integer
        LLM_TOKEN_LIMIT_WEEKLY:
          type: integer
        LLM_TOKEN_LIMIT_MONTHLY:
          type: integer
        LLM_CHAT_SESSION_RETENTION_DAYS:
          type: integer
        LLM_CHAT_STORAGE_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_EESSI_UPDATE_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_EESSI_VERSION:
          type: string
        SOFTWARE_CATALOG_EESSI_API_URL:
          type: string
        SOFTWARE_CATALOG_EESSI_INCLUDE_EXTENSIONS:
          type: boolean
        SOFTWARE_CATALOG_SPACK_UPDATE_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_SPACK_VERSION:
          type: string
        SOFTWARE_CATALOG_SPACK_DATA_URL:
          type: string
        SOFTWARE_CATALOG_UPDATE_EXISTING_PACKAGES:
          type: boolean
        SOFTWARE_CATALOG_CLEANUP_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_RETENTION_DAYS:
          type: integer
        SYSTEM_LOG_ENABLED:
          type: boolean
        SYSTEM_LOG_MAX_ROWS_PER_SOURCE:
          type: integer
        TABLE_GROWTH_MONITORING_ENABLED:
          type: boolean
        TABLE_GROWTH_WEEKLY_THRESHOLD_PERCENT:
          type: integer
        TABLE_GROWTH_MONTHLY_THRESHOLD_PERCENT:
          type: integer
        TABLE_GROWTH_RETENTION_DAYS:
          type: integer
        TABLE_GROWTH_MIN_SIZE_BYTES:
          type: integer
        USER_ACTIONS_ENABLED:
          type: boolean
        USER_ACTIONS_PENDING_ORDER_HOURS:
          type: integer
        USER_ACTIONS_HIGH_URGENCY_NOTIFICATION:
          type: boolean
        USER_ACTIONS_NOTIFICATION_THRESHOLD:
          type: integer
        USER_ACTIONS_EXECUTION_RETENTION_DAYS:
          type: integer
        USER_ACTIONS_DEFAULT_EXPIRATION_REMINDERS:
          type: array
          items:
            type: string
        USER_DATA_ACCESS_LOGGING_ENABLED:
          type: boolean
        USER_DATA_ACCESS_LOG_RETENTION_DAYS:
          type: integer
        USER_DATA_ACCESS_LOG_SELF_ACCESS:
          type: boolean
        ARROW_AUTO_RECONCILIATION:
          type: boolean
        ARROW_SYNC_INTERVAL_HOURS:
          type: integer
        ARROW_CONSUMPTION_SYNC_ENABLED:
          type: boolean
        ARROW_CONSUMPTION_SYNC_INTERVAL_HOURS:
          type: integer
        ARROW_BILLING_CHECK_INTERVAL_HOURS:
          type: integer
        SLURM_POLICY_EVALUATION_LOG_RETENTION_DAYS:
          type: integer
        FEDERATED_IDENTITY_SYNC_ENABLED:
          type: boolean
        FEDERATED_IDENTITY_SYNC_ALLOWED_ATTRIBUTES:
          type: array
          items:
            type: string
        FEDERATED_IDENTITY_DEACTIVATION_POLICY:
          type: string
        ENABLE_PROJECT_DIGEST:
          type: boolean
      description: ''
    ConstanceSettingsRequest:
      type: object
      properties:
        SITE_NAME:
          type: string
        SITE_DESCRIPTION:
          type: string
        HOMEPORT_URL:
          type: string
        RANCHER_USERNAME_INPUT_LABEL:
          type: string
        DISCLAIMER_AREA_TEXT:
          type: string
          minLength: 1
        SITE_ADDRESS:
          type: string
        SITE_EMAIL:
          type: string
        SITE_PHONE:
          type: string
        CURRENCY_NAME:
          type: string
        THUMBNAIL_SIZE:
          type: string
        ANONYMOUS_USER_CAN_VIEW_OFFERINGS:
          type: boolean
        ANONYMOUS_USER_CAN_VIEW_PLANS:
          type: boolean
        RESTRICTED_OFFERING_VISIBILITY_MODE:
          type: string
        ALLOW_SERVICE_PROVIDER_OFFERING_MANAGEMENT:
          type: boolean
        NOTIFY_STAFF_ABOUT_APPROVALS:
          type: boolean
        NOTIFY_ABOUT_RESOURCE_CHANGE:
          type: boolean
        DISABLE_SENDING_NOTIFICATIONS_ABOUT_RESOURCE_UPDATE:
          type: boolean
        MARKETPLACE_LANDING_PAGE:
          type: string
        ENABLE_STALE_RESOURCE_NOTIFICATIONS:
          type: boolean
        TELEMETRY_URL:
          type: string
        TELEMETRY_VERSION:
          type: integer
        SCRIPT_RUN_MODE:
          type: string
        DOCKER_CLIENT:
          type: string
          minLength: 1
        DOCKER_RUN_OPTIONS:
          type: string
          minLength: 1
        DOCKER_SCRIPT_DIR:
          type: string
        DOCKER_REMOVE_CONTAINER:
          type: boolean
        DOCKER_IMAGES:
          type: string
          minLength: 1
        DOCKER_VOLUME_NAME:
          type: string
        K8S_NAMESPACE:
          type: string
        K8S_CONFIG_PATH:
          type: string
        K8S_JOB_TIMEOUT:
          type: integer
        ENABLE_STRICT_CHECK_ACCEPTING_INVITATION:
          type: boolean
        INVITATION_DISABLE_MULTIPLE_ROLES:
          type: boolean
        DEFAULT_IDP:
          type: string
        DOCS_URL:
          type: string
          format: uri
        SHORT_PAGE_TITLE:
          type: string
        FULL_PAGE_TITLE:
          type: string
        PROJECT_END_DATE_MANDATORY:
          type: boolean
        ENABLE_ORDER_START_DATE:
          type: boolean
        BRAND_COLOR:
          type: string
          pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
        HERO_LINK_LABEL:
          type: string
        HERO_LINK_URL:
          type: string
          format: uri
        SUPPORT_PORTAL_URL:
          type: string
          format: uri
        COMMON_FOOTER_TEXT:
          type: string
          minLength: 1
        COMMON_FOOTER_HTML:
          type: string
          minLength: 1
        LANGUAGE_CHOICES:
          type: string
        DISABLE_DARK_THEME:
          type: boolean
        POWERED_BY_LOGO:
          type: string
          format: binary
          nullable: true
        HERO_IMAGE:
          type: string
          format: binary
          nullable: true
        MARKETPLACE_HERO_IMAGE:
          type: string
          format: binary
          nullable: true
        CALL_MANAGEMENT_HERO_IMAGE:
          type: string
          format: binary
          nullable: true
        SIDEBAR_LOGO:
          type: string
          format: binary
          nullable: true
        SIDEBAR_LOGO_DARK:
          type: string
          format: binary
          nullable: true
        SIDEBAR_LOGO_MOBILE:
          type: string
          format: binary
          nullable: true
        SIDEBAR_STYLE:
          type: string
        SITE_LOGO:
          type: string
          format: binary
          nullable: true
        LOGIN_LOGO:
          type: string
          format: binary
          nullable: true
        LOGIN_LOGO_MULTILINGUAL:
          type: object
          additionalProperties:
            type: string
            format: binary
            nullable: true
        LOGIN_PAGE_LAYOUT:
          type: string
        LOGIN_PAGE_VIDEO_URL:
          type: string
          format: uri
        LOGIN_PAGE_STATS:
          type: array
          items: {}
        LOGIN_PAGE_CAROUSEL_SLIDES:
          type: array
          items: {}
        LOGIN_PAGE_NEWS:
          type: array
          items: {}
        FAVICON:
          type: string
          format: binary
          nullable: true
        OFFERING_LOGO_PLACEHOLDER:
          type: string
          format: binary
          nullable: true
        DISCLAIMER_AREA_LOGO:
          type: string
          format: binary
          nullable: true
        WALDUR_SUPPORT_ENABLED:
          type: boolean
        WALDUR_SUPPORT_ACTIVE_BACKEND_TYPE:
          type: string
        WALDUR_SUPPORT_DISPLAY_REQUEST_TYPE:
          type: boolean
        ATLASSIAN_MAP_WALDUR_USERS_TO_SERVICEDESK_AGENTS:
          type: boolean
        ATLASSIAN_API_URL:
          type: string
          format: uri
        ATLASSIAN_USERNAME:
          type: string
        ATLASSIAN_PASSWORD:
          type: string
        ATLASSIAN_EMAIL:
          type: string
          format: email
          minLength: 1
        ATLASSIAN_USE_OLD_API:
          type: boolean
        ATLASSIAN_TOKEN:
          type: string
        ATLASSIAN_PERSONAL_ACCESS_TOKEN:
          type: string
        ATLASSIAN_OAUTH2_CLIENT_ID:
          type: string
        ATLASSIAN_OAUTH2_ACCESS_TOKEN:
          type: string
        ATLASSIAN_OAUTH2_TOKEN_TYPE:
          type: string
        ATLASSIAN_VERIFY_SSL:
          type: boolean
        ATLASSIAN_PROJECT_ID:
          type: string
        ATLASSIAN_SHARED_USERNAME:
          type: boolean
        ATLASSIAN_CUSTOM_ISSUE_FIELD_MAPPING_ENABLED:
          type: boolean
        ATLASSIAN_DEFAULT_OFFERING_ISSUE_TYPE:
          type: string
        ATLASSIAN_EXCLUDED_ATTACHMENT_TYPES:
          type: string
        ATLASSIAN_DESCRIPTION_TEMPLATE:
          type: string
        ATLASSIAN_SUMMARY_TEMPLATE:
          type: string
        ATLASSIAN_AFFECTED_RESOURCE_FIELD:
          type: string
        ATLASSIAN_IMPACT_FIELD:
          type: string
        ATLASSIAN_ORGANISATION_FIELD:
          type: string
        ATLASSIAN_RESOLUTION_SLA_FIELD:
          type: string
        ATLASSIAN_PROJECT_FIELD:
          type: string
        ATLASSIAN_REPORTER_FIELD:
          type: string
        ATLASSIAN_CALLER_FIELD:
          type: string
        ATLASSIAN_SLA_FIELD:
          type: string
        ATLASSIAN_LINKED_ISSUE_TYPE:
          type: string
        ATLASSIAN_SATISFACTION_FIELD:
          type: string
        ATLASSIAN_REQUEST_FEEDBACK_FIELD:
          type: string
        ATLASSIAN_TEMPLATE_FIELD:
          type: string
        ATLASSIAN_WALDUR_BACKEND_ID_FIELD:
          type: string
        ZAMMAD_API_URL:
          type: string
          format: uri
        ZAMMAD_TOKEN:
          type: string
        ZAMMAD_GROUP:
          type: string
        ZAMMAD_ARTICLE_TYPE:
          type: string
        ZAMMAD_COMMENT_MARKER:
          type: string
        ZAMMAD_COMMENT_PREFIX:
          type: string
        ZAMMAD_COMMENT_COOLDOWN_DURATION:
          type: integer
        SMAX_API_URL:
          type: string
          format: uri
        SMAX_TENANT_ID:
          type: string
        SMAX_LOGIN:
          type: string
        SMAX_PASSWORD:
          type: string
        SMAX_ORGANISATION_FIELD:
          type: string
        SMAX_PROJECT_FIELD:
          type: string
        SMAX_AFFECTED_RESOURCE_FIELD:
          type: string
        SMAX_TIMES_TO_PULL:
          type: integer
        SMAX_SECONDS_TO_WAIT:
          type: integer
        SMAX_CREATION_SOURCE_NAME:
          type: string
        SMAX_REQUESTS_OFFERING:
          type: string
        SMAX_VERIFY_SSL:
          type: boolean
        ENABLE_MOCK_SERVICE_ACCOUNT_BACKEND:
          type: boolean
        ENABLE_MOCK_COURSE_ACCOUNT_BACKEND:
          type: boolean
        PROPOSAL_REVIEW_DURATION:
          type: integer
        ORCID_CLIENT_ID:
          type: string
        ORCID_CLIENT_SECRET:
          type: string
        ORCID_REDIRECT_URI:
          type: string
          format: uri
        ORCID_API_URL:
          type: string
          format: uri
        ORCID_AUTH_URL:
          type: string
          format: uri
        ORCID_SANDBOX_MODE:
          type: boolean
        SEMANTIC_SCHOLAR_API_KEY:
          type: string
        CROSSREF_MAILTO:
          type: string
          format: email
          minLength: 1
        REVIEWER_PROFILES_ENABLED:
          type: boolean
        COI_DETECTION_ENABLED:
          type: boolean
        COI_DISCLOSURE_REQUIRED:
          type: boolean
        AUTOMATED_MATCHING_ENABLED:
          type: boolean
        COI_COAUTHORSHIP_LOOKBACK_YEARS:
          type: integer
        COI_COAUTHORSHIP_THRESHOLD_PAPERS:
          type: integer
        COI_INSTITUTIONAL_LOOKBACK_YEARS:
          type: integer
        USER_TABLE_COLUMNS:
          type: string
        AUTO_APPROVE_USER_TOS:
          type: boolean
        FREEIPA_ENABLED:
          type: boolean
        FREEIPA_HOSTNAME:
          type: string
        FREEIPA_USERNAME:
          type: string
        FREEIPA_PASSWORD:
          type: string
        FREEIPA_VERIFY_SSL:
          type: boolean
        FREEIPA_USERNAME_PREFIX:
          type: string
        FREEIPA_GROUPNAME_PREFIX:
          type: string
        FREEIPA_BLACKLISTED_USERNAMES:
          type: array
          items:
            type: string
            minLength: 1
        FREEIPA_GROUP_SYNCHRONIZATION_ENABLED:
          type: boolean
        SCIM_MEMBERSHIP_SYNC_ENABLED:
          type: boolean
        SCIM_API_URL:
          type: string
        SCIM_API_KEY:
          type: string
        SCIM_URN_NAMESPACE:
          type: string
        KEYCLOAK_ICON:
          type: string
          format: binary
          nullable: true
        COUNTRIES:
          type: array
          items:
            type: string
            minLength: 1
        OIDC_AUTH_URL:
          type: string
        OIDC_INTROSPECTION_URL:
          type: string
        OIDC_CLIENT_ID:
          type: string
        OIDC_CLIENT_SECRET:
          type: string
        OIDC_USER_FIELD:
          type: string
        OIDC_CACHE_TIMEOUT:
          type: integer
        OIDC_ACCESS_TOKEN_ENABLED:
          type: boolean
        OIDC_BLOCK_CREATION_OF_UNINVITED_USERS:
          type: boolean
        OIDC_MATCHMAKING_BY_EMAIL:
          type: boolean
        DEACTIVATE_USER_IF_NO_ROLES:
          type: boolean
        WALDUR_AUTH_SOCIAL_ROLE_CLAIM:
          type: string
        REMOTE_EDUTEAMS_REFRESH_TOKEN:
          type: string
        DEFAULT_OFFERING_USER_ATTRIBUTES:
          type: array
          items:
            type: string
            minLength: 1
        INVITATION_ALLOWED_FIELDS:
          type: array
          items:
            type: string
            minLength: 1
        ENABLED_USER_PROFILE_ATTRIBUTES:
          type: array
          items:
            type: string
            minLength: 1
        MANDATORY_USER_ATTRIBUTES:
          type: array
          items:
            type: string
            minLength: 1
        ENFORCE_MANDATORY_USER_ATTRIBUTES:
          type: boolean
        MAINTENANCE_ANNOUNCEMENT_NOTIFY_BEFORE_MINUTES:
          type: integer
        MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM:
          type: array
          items:
            type: string
            minLength: 1
        ENFORCE_USER_CONSENT_FOR_OFFERINGS:
          type: boolean
        DISABLED_OFFERING_TYPES:
          type: array
          items:
            type: string
            minLength: 1
        ONBOARDING_VALIDATION_METHODS:
          type: array
          items:
            type: string
            minLength: 1
        ONBOARDING_VERIFICATION_EXPIRY_HOURS:
          type: integer
        ONBOARDING_ARIREGISTER_BASE_URL:
          type: string
          format: uri
        ONBOARDING_ARIREGISTER_USERNAME:
          type: string
        ONBOARDING_ARIREGISTER_PASSWORD:
          type: string
        ONBOARDING_ARIREGISTER_TIMEOUT:
          type: integer
        ONBOARDING_WICO_API_URL:
          type: string
          format: uri
        ONBOARDING_WICO_TOKEN:
          type: string
        ONBOARDING_BOLAGSVERKET_API_URL:
          type: string
          format: uri
        ONBOARDING_BOLAGSVERKET_TOKEN_API_URL:
          type: string
          format: uri
        ONBOARDING_BOLAGSVERKET_CLIENT_ID:
          type: string
        ONBOARDING_BOLAGSVERKET_CLIENT_SECRET:
          type: string
        ONBOARDING_BREG_API_URL:
          type: string
          format: uri
        LLM_CHAT_ENABLED:
          type: boolean
        LLM_INFERENCES_BACKEND_TYPE:
          type: string
        LLM_INFERENCES_API_URL:
          type: string
          format: uri
        LLM_INFERENCES_API_TOKEN:
          type: string
        LLM_INFERENCES_MODEL:
          type: string
        LLM_TOKEN_LIMIT_DAILY:
          type: integer
        LLM_TOKEN_LIMIT_WEEKLY:
          type: integer
        LLM_TOKEN_LIMIT_MONTHLY:
          type: integer
        LLM_CHAT_SESSION_RETENTION_DAYS:
          type: integer
        LLM_CHAT_STORAGE_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_EESSI_UPDATE_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_EESSI_VERSION:
          type: string
        SOFTWARE_CATALOG_EESSI_API_URL:
          type: string
        SOFTWARE_CATALOG_EESSI_INCLUDE_EXTENSIONS:
          type: boolean
        SOFTWARE_CATALOG_SPACK_UPDATE_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_SPACK_VERSION:
          type: string
        SOFTWARE_CATALOG_SPACK_DATA_URL:
          type: string
        SOFTWARE_CATALOG_UPDATE_EXISTING_PACKAGES:
          type: boolean
        SOFTWARE_CATALOG_CLEANUP_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_RETENTION_DAYS:
          type: integer
        SYSTEM_LOG_ENABLED:
          type: boolean
        SYSTEM_LOG_MAX_ROWS_PER_SOURCE:
          type: integer
        TABLE_GROWTH_MONITORING_ENABLED:
          type: boolean
        TABLE_GROWTH_WEEKLY_THRESHOLD_PERCENT:
          type: integer
        TABLE_GROWTH_MONTHLY_THRESHOLD_PERCENT:
          type: integer
        TABLE_GROWTH_RETENTION_DAYS:
          type: integer
        TABLE_GROWTH_MIN_SIZE_BYTES:
          type: integer
        USER_ACTIONS_ENABLED:
          type: boolean
        USER_ACTIONS_PENDING_ORDER_HOURS:
          type: integer
        USER_ACTIONS_HIGH_URGENCY_NOTIFICATION:
          type: boolean
        USER_ACTIONS_NOTIFICATION_THRESHOLD:
          type: integer
        USER_ACTIONS_EXECUTION_RETENTION_DAYS:
          type: integer
        USER_ACTIONS_DEFAULT_EXPIRATION_REMINDERS:
          type: array
          items:
            type: string
            minLength: 1
        USER_DATA_ACCESS_LOGGING_ENABLED:
          type: boolean
        USER_DATA_ACCESS_LOG_RETENTION_DAYS:
          type: integer
        USER_DATA_ACCESS_LOG_SELF_ACCESS:
          type: boolean
        ARROW_AUTO_RECONCILIATION:
          type: boolean
        ARROW_SYNC_INTERVAL_HOURS:
          type: integer
        ARROW_CONSUMPTION_SYNC_ENABLED:
          type: boolean
        ARROW_CONSUMPTION_SYNC_INTERVAL_HOURS:
          type: integer
        ARROW_BILLING_CHECK_INTERVAL_HOURS:
          type: integer
        SLURM_POLICY_EVALUATION_LOG_RETENTION_DAYS:
          type: integer
        FEDERATED_IDENTITY_SYNC_ENABLED:
          type: boolean
        FEDERATED_IDENTITY_SYNC_ALLOWED_ATTRIBUTES:
          type: array
          items:
            type: string
            minLength: 1
        FEDERATED_IDENTITY_DEACTIVATION_POLICY:
          type: string
        ENABLE_PROJECT_DIGEST:
          type: boolean
      description: ''
    ConsumptionStatisticsResponse:
      type: object
      description: ''
      properties:
        total_records:
          type: integer
        pending_records:
          type: integer
        finalized_records:
          type: integer
        reconciled_records:
          type: integer
        total_consumed_sell:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
        total_adjustments:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
        period_breakdown:
          type: array
          items:
            $ref: '#/components/schemas/PeriodBreakdown'
      required:
      - finalized_records
      - pending_records
      - period_breakdown
      - reconciled_records
      - total_adjustments
      - total_consumed_sell
      - total_records
    ConsumptionStatusResponse:
      type: object
      description: ''
      properties:
        global_sync_enabled:
          type: boolean
        settings_sync_enabled:
          type: boolean
        settings_uuid:
          type: string
          format: uuid
          nullable: true
        last_sync_run:
          type: string
          format: date-time
          nullable: true
      required:
      - global_sync_enabled
      - last_sync_run
      - settings_sync_enabled
      - settings_uuid
    ContainerFormatEnum:
      enum:
      - bare
      - ovf
      - aki
      - ami
      - ari
      type: string
      description: ''
    CoreAuthToken:
      type: object
      properties:
        token:
          type: string
          readOnly: true
          description: Authentication token for API access
      required:
      - token
      description: ''
    CoreStates:
      enum:
      - CREATION_SCHEDULED
      - CREATING
      - UPDATE_SCHEDULED
      - UPDATING
      - DELETION_SCHEDULED
      - DELETING
      - OK
      - ERRED
      type: string
      description: ''
    CorrectiveAction:
      type: object
      description: ''
      properties:
        label:
          type: string
        category:
          $ref: '#/components/schemas/CategoryEnum'
        severity:
          $ref: '#/components/schemas/CorrectiveActionSeverityEnum'
        method:
          type: string
          default: GET
        api_endpoint:
          type: boolean
          default: false
        confirmation_required:
          type: boolean
          default: false
        permissions_required:
          type: array
          items:
            type: string
        metadata:
          type: object
          additionalProperties: {}
        route_name:
          type: string
          nullable: true
        route_params:
          type: object
          additionalProperties: {}
      required:
      - category
      - label
      - severity
    CorrectiveActionSeverityEnum:
      enum:
      - safe
      - low
      - medium
      - high
      - critical
      type: string
      description: ''
    CostsForPeriod:
      type: object
      properties:
        total_price:
          type: string
          readOnly: true
        start_date:
          type: string
          format: date
          readOnly: true
        end_date:
          type: string
          format: date
          readOnly: true
      required:
      - end_date
      - start_date
      - total_price
      description: ''
    CountProjectsOfServiceProviders:
      type: object
      properties:
        service_provider_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the service provider
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the customer
        customer_name:
          type: string
          readOnly: true
          description: Name of the customer
        customer_organization_group_uuid:
          type: string
          readOnly: true
          description: UUID of the customer's organization group
        customer_organization_group_name:
          type: string
          readOnly: true
          description: Name of the customer's organization group
        count:
          type: integer
          readOnly: true
          description: Count value
      required:
      - count
      - customer_name
      - customer_organization_group_name
      - customer_organization_group_uuid
      - customer_uuid
      - service_provider_uuid
      description: ''
    CountProjectsOfServiceProvidersGroupedByOecd:
      type: object
      properties:
        service_provider_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the service provider
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the customer
        customer_name:
          type: string
          readOnly: true
          description: Name of the customer
        customer_organization_group_uuid:
          type: string
          readOnly: true
          description: UUID of the customer's organization group
        customer_organization_group_name:
          type: string
          readOnly: true
          description: Name of the customer's organization group
        count:
          type: integer
          readOnly: true
          description: Count value
        oecd_fos_2007_name:
          type: string
          readOnly: true
      required:
      - count
      - customer_name
      - customer_organization_group_name
      - customer_organization_group_uuid
      - customer_uuid
      - oecd_fos_2007_name
      - service_provider_uuid
      description: ''
    CountStats:
      type: object
      properties:
        name:
          type: string
          readOnly: true
          description: Name from the record
        uuid:
          type: string
          readOnly: true
          description: UUID from the record
        count:
          type: integer
          readOnly: true
          description: Count value from the record
      required:
      - count
      - name
      - uuid
      description: ''
    CountUniqueUsersConnectedWithActiveResourcesOfServiceProvider:
      type: object
      properties:
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the customer
        customer_name:
          type: string
          readOnly: true
          description: Name of the customer
        count_users:
          type: integer
          readOnly: true
          description: Number of unique users
      required:
      - count_users
      - customer_name
      - customer_uuid
      description: ''
    CountUsersOfServiceProviders:
      type: object
      properties:
        service_provider_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the service provider
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the customer
        customer_name:
          type: string
          readOnly: true
          description: Name of the customer
        customer_organization_group_uuid:
          type: string
          readOnly: true
          description: UUID of the customer's organization group
        customer_organization_group_name:
          type: string
          readOnly: true
          description: Name of the customer's organization group
        count:
          type: integer
          readOnly: true
          description: Count value
      required:
      - count
      - customer_name
      - customer_organization_group_name
      - customer_organization_group_uuid
      - customer_uuid
      - service_provider_uuid
      description: ''
    Country:
      type: object
      properties:
        label:
          type: string
          readOnly: true
        value:
          type: string
          readOnly: true
      required:
      - label
      - value
      description: ''
    CountryEnum:
      enum:
      - AW
      - AF
      - AO
      - AI
      - AX
      - AL
      - AD
      - AE
      - AR
      - AM
      - AS
      - AQ
      - TF
      - AG
      - AU
      - AT
      - AZ
      - BI
      - BE
      - BJ
      - BQ
      - BF
      - BD
      - BG
      - BH
      - BS
      - BA
      - BL
      - BY
      - BZ
      - BM
      - BO
      - BR
      - BB
      - BN
      - BT
      - BV
      - BW
      - CF
      - CA
      - CC
      - CH
      - CL
      - CN
      - CI
      - CM
      - CD
      - CG
      - CK
      - CO
      - KM
      - CV
      - CR
      - CU
      - CW
      - CX
      - KY
      - CY
      - CZ
      - DE
      - DJ
      - DM
      - DK
      - DO
      - DZ
      - EC
      - EG
      - ER
      - EH
      - ES
      - EE
      - ET
      - FI
      - FJ
      - FK
      - FR
      - FO
      - FM
      - GA
      - GB
      - GE
      - GG
      - GH
      - GI
      - GN
      - GP
      - GM
      - GW
      - GQ
      - GR
      - GD
      - GL
      - GT
      - GF
      - GU
      - GY
      - HK
      - HM
      - HN
      - HR
      - HT
      - HU
      - ID
      - IM
      - IN
      - IO
      - IE
      - IR
      - IQ
      - IS
      - IL
      - IT
      - JM
      - JE
      - JO
      - JP
      - KZ
      - KE
      - KG
      - KH
      - KI
      - KN
      - KR
      - KW
      - LA
      - LB
      - LR
      - LY
      - LC
      - LI
      - LK
      - LS
      - LT
      - LU
      - LV
      - MO
      - MF
      - MA
      - MC
      - MD
      - MG
      - MV
      - MX
      - MH
      - MK
      - ML
      - MT
      - MM
      - ME
      - MN
      - MP
      - MZ
      - MR
      - MS
      - MQ
      - MU
      - MW
      - MY
      - YT
      - NA
      - NC
      - NE
      - NF
      - NG
      - NI
      - NU
      - NL
      - 'NO'
      - NP
      - NR
      - NZ
      - OM
      - PK
      - PA
      - PN
      - PE
      - PH
      - PW
      - PG
      - PL
      - PR
      - KP
      - PT
      - PY
      - PS
      - PF
      - QA
      - RE
      - RO
      - RU
      - RW
      - SA
      - SD
      - SN
      - SG
      - GS
      - SH
      - SJ
      - SB
      - SL
      - SV
      - SM
      - SO
      - PM
      - RS
      - SS
      - ST
      - SR
      - SK
      - SI
      - SE
      - SZ
      - SX
      - SC
      - SY
      - TC
      - TD
      - TG
      - TH
      - TJ
      - TK
      - TM
      - TL
      - TO
      - TT
      - TN
      - TR
      - TV
      - TW
      - TZ
      - UG
      - UA
      - UM
      - UY
      - US
      - UZ
      - VA
      - VC
      - VE
      - VG
      - VI
      - VN
      - VU
      - WF
      - WS
      - YE
      - ZA
      - ZM
      - ZW
      - EU
      type: string
      description: ''
    CourseAccount:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        project:
          type: string
          format: uuid
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_slug:
          type: string
          readOnly: true
        project_start_date:
          type: string
          format: date
          readOnly: true
        project_end_date:
          type: string
          format: date
          readOnly: true
        user_uuid:
          type: string
          format: uuid
          readOnly: true
        username:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/ServiceAccountState'
          readOnly: true
        email:
          type: string
          format: email
          maxLength: 320
        description:
          type: string
          maxLength: 4096
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
      required:
      - created
      - customer_name
      - customer_uuid
      - error_message
      - error_traceback
      - modified
      - project
      - project_end_date
      - project_name
      - project_slug
      - project_start_date
      - project_uuid
      - state
      - url
      - user_uuid
      - username
      - uuid
      description: ''
    CourseAccountCreateNestedRequest:
      type: object
      properties:
        email:
          type: string
          format: email
          minLength: 1
          maxLength: 320
        description:
          type: string
          maxLength: 4096
      description: ''
    CourseAccountRequest:
      type: object
      properties:
        project:
          type: string
          format: uuid
        email:
          type: string
          format: email
          minLength: 1
          maxLength: 320
        description:
          type: string
          maxLength: 4096
      required:
      - project
      description: ''
    CourseAccountsBulkCreateRequest:
      type: object
      properties:
        course_accounts:
          type: array
          items:
            $ref: '#/components/schemas/CourseAccountCreateNestedRequest'
        project:
          type: string
          format: uuid
      required:
      - course_accounts
      - project
      description: ''
    CreateAttachmentsRequest:
      type: object
      properties:
        attachments:
          type: array
          items:
            type: string
            format: binary
          description: List of files to attach
      required:
      - attachments
      description: ''
    CreateCustomerCredit:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        value:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        customer:
          type: string
          format: uri
        customer_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_slug:
          type: string
          readOnly: true
        offerings:
          type: array
          items:
            type: string
            format: uri
            nullable: true
        end_date:
          type: string
          format: date
          nullable: true
        expected_consumption:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        minimal_consumption:
          type: number
          format: double
          readOnly: true
        minimal_consumption_logic:
          $ref: '#/components/schemas/MinimalConsumptionLogicEnum'
        grace_coefficient:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
        apply_as_minimal_consumption:
          type: boolean
        allocated_to_projects:
          type: number
          format: double
          readOnly: true
        consumption_last_month:
          type: number
          format: double
          readOnly: true
      required:
      - allocated_to_projects
      - consumption_last_month
      - customer
      - customer_name
      - customer_slug
      - customer_uuid
      - minimal_consumption
      - url
      - uuid
      description: ''
    CreateCustomerCreditRequest:
      type: object
      properties:
        value:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        customer:
          type: string
          format: uri
        offerings:
          type: array
          items:
            type: string
            format: uri
            nullable: true
        end_date:
          type: string
          format: date
          nullable: true
        expected_consumption:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        minimal_consumption_logic:
          $ref: '#/components/schemas/MinimalConsumptionLogicEnum'
        grace_coefficient:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
        apply_as_minimal_consumption:
          type: boolean
      required:
      - customer
      description: ''
    CreateFeedback:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        issue:
          type: string
          format: uri
          readOnly: true
        comment:
          type: string
        evaluation:
          type: integer
          maximum: 10
          minimum: 1
      required:
      - evaluation
      - issue
      - uuid
      description: ''
    CreateFeedbackRequest:
      type: object
      properties:
        comment:
          type: string
        evaluation:
          type: integer
          maximum: 10
          minimum: 1
        token:
          type: string
          writeOnly: true
          minLength: 1
      required:
      - evaluation
      - token
      description: ''
    CreateManualAssignmentRequest:
      type: object
      description: ''
      properties:
        reviewer_pool_entry_uuid:
          type: string
          format: uuid
          description: UUID of the reviewer pool entry to assign proposals to
        proposal_uuids:
          type: array
          items:
            type: string
            format: uuid
          description: List of proposal UUIDs to assign to the reviewer
          minItems: 1
        manager_notes:
          type: string
          description: Optional notes about this assignment
      required:
      - proposal_uuids
      - reviewer_pool_entry_uuid
    CreateManualAssignmentResponse:
      type: object
      description: ''
      properties:
        batch_uuid:
          type: string
          format: uuid
        items_created:
          type: integer
        skipped_proposals:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Proposals that were skipped with reasons
      required:
      - batch_uuid
      - items_created
      - skipped_proposals
    CreateRouter:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        tenant:
          type: string
          format: uri
          description: OpenStack tenant this router belongs to
        name:
          type: string
        project:
          type: string
          format: uri
          readOnly: true
        service_settings:
          type: string
          format: uri
          readOnly: true
      required:
      - name
      - project
      - service_settings
      - tenant
      - url
      - uuid
      description: ''
    CreateRouterRequest:
      type: object
      properties:
        tenant:
          type: string
          format: uri
          description: OpenStack tenant this router belongs to
        name:
          type: string
          minLength: 1
      required:
      - name
      - tenant
      description: ''
    CredentialsValidationResponse:
      type: object
      description: ''
      properties:
        valid:
          type: boolean
        message:
          type: string
        error:
          type: string
        server_info:
          allOf:
          - $ref: '#/components/schemas/ServerInfo'
          nullable: true
      required:
      - valid
    CurrentQosStatusEnum:
      enum:
      - normal
      - notification
      - slowdown
      - blocked
      type: string
      description: ''
    Customer:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        organization_groups:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationGroup'
          readOnly: true
          description: Organization groups this customer belongs to
        display_name:
          type: string
          readOnly: true
          description: Display name of the organization (includes native name if available)
        backend_id:
          type: string
          description: Organization identifier in another application.
          maxLength: 255
        image:
          type: string
          format: uri
          nullable: true
        blocked:
          type: boolean
        archived:
          type: boolean
        display_billing_info_in_projects:
          type: boolean
        default_tax_percent:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
        accounting_start_date:
          type: string
          format: date-time
          title: Start date of accounting
        projects_count:
          type: integer
          readOnly: true
          description: Number of projects in this organization
        users_count:
          type: integer
          readOnly: true
          description: Number of users with access to this organization
        sponsor_number:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: External ID of the sponsor covering the costs
        country_name:
          type: string
          readOnly: true
          description: Human-readable country name
        max_service_accounts:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Maximum number of service accounts allowed
        project_metadata_checklist:
          type: string
          format: uuid
          nullable: true
          description: Checklist to be used for project metadata validation in this
            organization
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        name:
          type: string
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        native_name:
          type: string
          maxLength: 160
        abbreviation:
          type: string
          maxLength: 12
        description:
          type: string
          maxLength: 4096
        contact_details:
          type: string
          maxLength: 500
        agreement_number:
          type: string
          maxLength: 160
        email:
          type: string
          format: email
          title: Email address
          maxLength: 75
        phone_number:
          type: string
          maxLength: 255
        access_subnets:
          type: string
          description: Enter a comma separated list of IPv4 or IPv6 CIDR addresses
            from where connection to self-service is allowed.
        registration_code:
          type: string
          maxLength: 160
        homepage:
          type: string
          format: uri
          maxLength: 255
        domain:
          type: string
          maxLength: 255
        vat_code:
          type: string
          description: VAT number
          maxLength: 20
        postal:
          type: string
          maxLength: 20
        address:
          type: string
          maxLength: 300
        bank_name:
          type: string
          maxLength: 150
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        bank_account:
          type: string
          maxLength: 50
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        notification_emails:
          type: string
          description: Comma-separated list of notification email addresses
          maxLength: 640
        payment_profiles:
          type: array
          items:
            $ref: '#/components/schemas/PaymentProfile'
          readOnly: true
        customer_credit:
          type: number
          format: double
          nullable: true
          readOnly: true
        customer_unallocated_credit:
          type: number
          format: double
          nullable: true
          readOnly: true
        is_service_provider:
          type: boolean
          readOnly: true
        service_provider:
          type: string
          format: uri
          readOnly: true
          nullable: true
        service_provider_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        call_managing_organization_uuid:
          type: string
          nullable: true
          readOnly: true
        billing_price_estimate:
          allOf:
          - $ref: '#/components/schemas/NestedPriceEstimate'
          readOnly: true
      required: []
    CustomerBillingSummaryBillingSync:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        report_period:
          type: string
        state:
          type: string
        sell_total:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
        items_count:
          type: integer
        created:
          type: string
          format: date-time
      required:
      - created
      - items_count
      - report_period
      - sell_total
      - state
      - uuid
    CustomerBillingSummaryConsumptionRecord:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        license_reference:
          type: string
        resource_name:
          type: string
          nullable: true
        billing_period:
          type: string
          format: date
        consumed_sell:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
        final_sell:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
        is_finalized:
          type: boolean
        is_reconciled:
          type: boolean
      required:
      - billing_period
      - consumed_sell
      - final_sell
      - is_finalized
      - is_reconciled
      - license_reference
      - resource_name
      - uuid
    CustomerBillingSummaryResponse:
      type: object
      description: ''
      properties:
        customer_mapping_uuid:
          type: string
          format: uuid
        arrow_reference:
          type: string
        arrow_company_name:
          type: string
        waldur_customer_uuid:
          type: string
          format: uuid
        waldur_customer_name:
          type: string
        total_consumption_records:
          type: integer
        total_consumed_sell:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
        total_final_sell:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
        pending_records:
          type: integer
        finalized_records:
          type: integer
        reconciled_records:
          type: integer
        total_billing_syncs:
          type: integer
        total_billing_sell:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
        recent_consumption_records:
          type: array
          items:
            $ref: '#/components/schemas/CustomerBillingSummaryConsumptionRecord'
        recent_billing_syncs:
          type: array
          items:
            $ref: '#/components/schemas/CustomerBillingSummaryBillingSync'
      required:
      - arrow_company_name
      - arrow_reference
      - customer_mapping_uuid
      - finalized_records
      - pending_records
      - recent_billing_syncs
      - recent_consumption_records
      - reconciled_records
      - total_billing_sell
      - total_billing_syncs
      - total_consumed_sell
      - total_consumption_records
      - total_final_sell
      - waldur_customer_name
      - waldur_customer_uuid
    CustomerComponentUsagePolicy:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        scope:
          type: string
          format: uri
        scope_name:
          type: string
          readOnly: true
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
        actions:
          type: string
          maxLength: 255
        created:
          type: string
          format: date-time
          readOnly: true
        created_by_full_name:
          type: string
          readOnly: true
        created_by_username:
          type: string
          readOnly: true
        has_fired:
          type: boolean
          readOnly: true
        fired_datetime:
          type: string
          format: date-time
          readOnly: true
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        component_limits_set:
          type: array
          items:
            $ref: '#/components/schemas/NestedCustomerUsagePolicyComponent'
      required:
      - actions
      - component_limits_set
      - created
      - created_by_full_name
      - created_by_username
      - fired_datetime
      - has_fired
      - scope
      - scope_name
      - scope_uuid
      - url
      - uuid
      description: ''
    CustomerComponentUsagePolicyRequest:
      type: object
      properties:
        scope:
          type: string
          format: uri
        actions:
          type: string
          minLength: 1
          maxLength: 255
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        component_limits_set:
          type: array
          items:
            $ref: '#/components/schemas/NestedCustomerUsagePolicyComponentRequest'
      required:
      - actions
      - component_limits_set
      - scope
      description: ''
    CustomerContactUpdate:
      type: object
      properties:
        contact_details:
          type: string
          maxLength: 500
        email:
          type: string
          format: email
          title: Email address
          maxLength: 75
        phone_number:
          type: string
          maxLength: 255
        homepage:
          type: string
          format: uri
          maxLength: 255
        notification_emails:
          type: string
          description: Comma-separated list of notification email addresses
          maxLength: 640
      description: ''
    CustomerContactUpdateRequest:
      type: object
      properties:
        contact_details:
          type: string
          maxLength: 500
        email:
          type: string
          format: email
          title: Email address
          maxLength: 75
        phone_number:
          type: string
          maxLength: 255
        homepage:
          type: string
          format: uri
          maxLength: 255
        notification_emails:
          type: string
          description: Comma-separated list of notification email addresses
          maxLength: 640
      description: ''
    CustomerCredit:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        value:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        customer:
          type: string
          format: uri
        customer_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_slug:
          type: string
          readOnly: true
        offerings:
          type: array
          items:
            $ref: '#/components/schemas/NestedProviderOffering'
          readOnly: true
        end_date:
          type: string
          format: date
          nullable: true
        expected_consumption:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        minimal_consumption:
          type: number
          format: double
          readOnly: true
        minimal_consumption_logic:
          $ref: '#/components/schemas/MinimalConsumptionLogicEnum'
        grace_coefficient:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
        apply_as_minimal_consumption:
          type: boolean
        allocated_to_projects:
          type: number
          format: double
          readOnly: true
        consumption_last_month:
          type: number
          format: double
          readOnly: true
      required:
      - allocated_to_projects
      - consumption_last_month
      - customer
      - customer_name
      - customer_slug
      - customer_uuid
      - minimal_consumption
      - offerings
      - url
      - uuid
      description: ''
    CustomerCreditConsumption:
      type: object
      properties:
        date:
          type: string
          format: date
          readOnly: true
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,20}(?:\.\d{0,2})?$
          readOnly: true
      required:
      - date
      - price
      description: ''
    CustomerCreditRequest:
      type: object
      properties:
        value:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        customer:
          type: string
          format: uri
        end_date:
          type: string
          format: date
          nullable: true
        expected_consumption:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        minimal_consumption_logic:
          $ref: '#/components/schemas/MinimalConsumptionLogicEnum'
        grace_coefficient:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
        apply_as_minimal_consumption:
          type: boolean
      required:
      - customer
      description: ''
    CustomerDetails:
      type: object
      properties:
        name:
          type: string
          maxLength: 150
        address:
          type: string
          maxLength: 300
        country:
          type: string
          maxLength: 2
        country_name:
          type: string
          nullable: true
          readOnly: true
        email:
          type: string
          format: email
          title: Email address
          maxLength: 75
        postal:
          type: string
          maxLength: 20
        phone_number:
          type: string
          maxLength: 255
        bank_name:
          type: string
          maxLength: 150
        bank_account:
          type: string
          maxLength: 50
        vat_code:
          type: string
          description: VAT number
          maxLength: 20
      required: []
      description: ''
    CustomerEstimatedCostPolicy:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        scope:
          type: string
          format: uri
        scope_name:
          type: string
          readOnly: true
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
        actions:
          type: string
          maxLength: 255
        created:
          type: string
          format: date-time
          readOnly: true
        created_by_full_name:
          type: string
          readOnly: true
        created_by_username:
          type: string
          readOnly: true
        has_fired:
          type: boolean
          readOnly: true
        fired_datetime:
          type: string
          format: date-time
          readOnly: true
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        limit_cost:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
        period_name:
          type: string
          readOnly: true
        customer_credit:
          type: integer
          readOnly: true
        billing_price_estimate:
          allOf:
          - $ref: '#/components/schemas/NestedPriceEstimate'
          readOnly: true
      required:
      - actions
      - billing_price_estimate
      - created
      - created_by_full_name
      - created_by_username
      - customer_credit
      - fired_datetime
      - has_fired
      - limit_cost
      - period_name
      - scope
      - scope_name
      - scope_uuid
      - url
      - uuid
    CustomerEstimatedCostPolicyRequest:
      type: object
      description: ''
      properties:
        scope:
          type: string
          format: uri
        actions:
          type: string
          minLength: 1
          maxLength: 255
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        limit_cost:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
      required:
      - actions
      - limit_cost
      - scope
    CustomerIndustryFlagStats:
      type: object
      properties:
        name:
          type: string
          readOnly: true
          description: Name from the record
        uuid:
          type: string
          readOnly: true
          description: UUID from the record
        count:
          type: integer
          readOnly: true
          description: Count value from the record
        abbreviation:
          type: string
          readOnly: true
          description: Customer abbreviation from the record
        is_industry:
          type: string
          description: Industry classification flag
      required:
      - abbreviation
      - count
      - is_industry
      - name
      - uuid
      description: ''
    CustomerMappingInputRequest:
      type: object
      description: ''
      properties:
        arrow_reference:
          type: string
          minLength: 1
        waldur_customer_uuid:
          type: string
          format: uuid
      required:
      - arrow_reference
      - waldur_customer_uuid
    CustomerMappingSuggestion:
      type: object
      description: ''
      properties:
        arrow_customer:
          $ref: '#/components/schemas/ArrowCustomerDiscovery'
        suggested_waldur_customer:
          $ref: '#/components/schemas/WaldurCustomerBrief'
        confidence:
          type: number
          format: double
        existing_mapping:
          type: boolean
          default: false
      required:
      - arrow_customer
    CustomerMemberCount:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the customer
        name:
          type: string
          readOnly: true
          description: Name of the customer
        abbreviation:
          type: string
          readOnly: true
          description: Abbreviation of the customer
        count:
          type: integer
          readOnly: true
          description: Number of members
        has_resources:
          type: boolean
          readOnly: true
          description: Whether the customer has resources
      required:
      - abbreviation
      - count
      - has_resources
      - name
      - uuid
      description: ''
    CustomerMemberSummary:
      type: object
      description: ''
      properties:
        total_organizations:
          type: integer
          description: Total number of organizations
        total_members:
          type: integer
          description: Total number of members across all organizations
        organizations_with_resources:
          type: integer
          description: Number of organizations with active resources
        average_members_per_org:
          type: integer
          description: Average number of members per organization
      required:
      - average_members_per_org
      - organizations_with_resources
      - total_members
      - total_organizations
    CustomerOecdCodeStats:
      type: object
      properties:
        name:
          type: string
          readOnly: true
          description: Name from the record
        uuid:
          type: string
          readOnly: true
          description: UUID from the record
        count:
          type: integer
          readOnly: true
          description: Count value from the record
        abbreviation:
          type: string
          readOnly: true
          description: Customer abbreviation from the record
        oecd:
          type: string
      required:
      - abbreviation
      - count
      - name
      - oecd
      - uuid
      description: ''
    CustomerPermissionReview:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        reviewer_full_name:
          type: string
          readOnly: true
          nullable: true
        reviewer_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        is_pending:
          type: boolean
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        closed:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
      required:
      - closed
      - created
      - customer_name
      - customer_uuid
      - is_pending
      - reviewer_full_name
      - reviewer_uuid
      - url
      - uuid
    CustomerQuotas:
      type: object
      properties:
        customer_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        value:
          type: integer
          readOnly: true
      required:
      - customer_abbreviation
      - customer_name
      - value
      description: ''
    CustomerRequest:
      type: object
      description: ''
      properties:
        backend_id:
          type: string
          description: Organization identifier in another application.
          maxLength: 255
        image:
          type: string
          format: binary
          nullable: true
        blocked:
          type: boolean
        archived:
          type: boolean
        display_billing_info_in_projects:
          type: boolean
        default_tax_percent:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
        accounting_start_date:
          type: string
          format: date-time
          title: Start date of accounting
        sponsor_number:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: External ID of the sponsor covering the costs
        max_service_accounts:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Maximum number of service accounts allowed
        project_metadata_checklist:
          type: string
          format: uuid
          nullable: true
          description: Checklist to be used for project metadata validation in this
            organization
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        name:
          type: string
          minLength: 1
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        native_name:
          type: string
          maxLength: 160
        abbreviation:
          type: string
          maxLength: 12
        description:
          type: string
          maxLength: 4096
        contact_details:
          type: string
          maxLength: 500
        agreement_number:
          type: string
          maxLength: 160
        email:
          type: string
          format: email
          title: Email address
          maxLength: 75
        phone_number:
          type: string
          maxLength: 255
        access_subnets:
          type: string
          description: Enter a comma separated list of IPv4 or IPv6 CIDR addresses
            from where connection to self-service is allowed.
        registration_code:
          type: string
          maxLength: 160
        homepage:
          type: string
          format: uri
          maxLength: 255
        domain:
          type: string
          maxLength: 255
        vat_code:
          type: string
          description: VAT number
          maxLength: 20
        postal:
          type: string
          maxLength: 20
        address:
          type: string
          maxLength: 300
        bank_name:
          type: string
          maxLength: 150
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        bank_account:
          type: string
          maxLength: 50
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        notification_emails:
          type: string
          description: Comma-separated list of notification email addresses
          maxLength: 640
      required:
      - name
    CustomerServiceAccount:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        username:
          type: string
          maxLength: 32
        description:
          type: string
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
        state:
          allOf:
          - $ref: '#/components/schemas/ServiceAccountState'
          readOnly: true
        token:
          type: string
          nullable: true
          readOnly: true
        email:
          type: string
          format: email
          maxLength: 320
        expires_at:
          type: string
          nullable: true
          readOnly: true
        preferred_identifier:
          type: string
          maxLength: 32
        customer:
          type: string
          format: uuid
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
      required:
      - created
      - customer
      - customer_name
      - customer_uuid
      - error_message
      - expires_at
      - modified
      - state
      - token
      - url
      - uuid
      description: ''
    CustomerServiceAccountRequest:
      type: object
      properties:
        username:
          type: string
          maxLength: 32
        description:
          type: string
        error_traceback:
          type: string
        email:
          type: string
          format: email
          minLength: 1
          maxLength: 320
        preferred_identifier:
          type: string
          maxLength: 32
        customer:
          type: string
          format: uuid
      required:
      - customer
      description: ''
    CustomerUser:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          pattern: ^[0-9a-z_.@+-]+$
          maxLength: 128
        full_name:
          type: string
          readOnly: true
        email:
          type: string
          format: email
          title: Email address
          maxLength: 320
        role_name:
          type: string
          nullable: true
          readOnly: true
        projects:
          type: array
          items:
            $ref: '#/components/schemas/NestedProjectPermission'
          readOnly: true
        expiration_time:
          type: string
          format: date-time
          nullable: true
          readOnly: true
        image:
          type: string
          format: uri
          nullable: true
      required: []
    DLQQueue:
      type: object
      description: ''
      properties:
        vhost:
          type: string
          readOnly: true
          description: Virtual host name
        queue_name:
          type: string
          readOnly: true
          description: DLQ queue name
        messages:
          type: integer
          readOnly: true
          description: Total messages in DLQ
        messages_ready:
          type: integer
          readOnly: true
          description: Messages ready for delivery
        consumers:
          type: integer
          readOnly: true
          description: Number of consumers attached
      required:
      - consumers
      - messages
      - messages_ready
      - queue_name
      - vhost
    DailyMaintenanceStats:
      type: object
      description: ''
      properties:
        date:
          type: string
          format: date
          description: Date
        count:
          type: integer
          description: Number of maintenances on this day
        by_state:
          type: object
          additionalProperties:
            type: integer
          description: Maintenance counts grouped by state
      required:
      - by_state
      - count
      - date
    DailyOrderStats:
      type: object
      description: ''
      properties:
        date:
          type: string
          format: date
          description: Date of the statistics
        total:
          type: integer
          description: Total number of orders
        total_cost:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
          description: Total cost of orders
        revenue:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
          description: Revenue from create/update orders
        by_state:
          type: object
          additionalProperties:
            type: integer
          description: Order counts grouped by state
        by_type:
          type: object
          additionalProperties:
            type: integer
          description: Order counts grouped by type
      required:
      - by_state
      - by_type
      - date
      - revenue
      - total
      - total_cost
    DataAccessSummary:
      type: object
      description: ''
      properties:
        total_administrative_access:
          type: integer
          nullable: true
        total_organizational_access:
          type: integer
        total_provider_access:
          type: integer
      required:
      - total_administrative_access
      - total_organizational_access
      - total_provider_access
    DataVolume:
      type: object
      description: ''
      properties:
        size:
          type: integer
        volume_type:
          type: string
          format: uri
          nullable: true
        filesystem:
          type: string
        mount_point:
          type: string
      required:
      - mount_point
      - size
    DataVolumeRequest:
      type: object
      description: ''
      properties:
        size:
          type: integer
        volume_type:
          type: string
          format: uri
          nullable: true
        filesystem:
          type: string
          minLength: 1
        mount_point:
          type: string
          minLength: 1
      required:
      - mount_point
      - size
    DatabaseSizeStats:
      type: object
      description: ''
      properties:
        database_name:
          type: string
          readOnly: true
          description: Name of the database
        total_size_bytes:
          type: integer
          readOnly: true
          description: Total database size in bytes
        data_size_bytes:
          type: integer
          readOnly: true
          description: Size of data excluding indexes in bytes
        index_size_bytes:
          type: integer
          readOnly: true
          description: Total size of all indexes in bytes
      required:
      - data_size_bytes
      - database_name
      - index_size_bytes
      - total_size_bytes
    DatabaseStatsResponse:
      type: object
      description: ''
      properties:
        table_stats:
          type: array
          items:
            $ref: '#/components/schemas/TableSize'
          readOnly: true
          description: Top largest tables by size
        connections:
          allOf:
          - $ref: '#/components/schemas/ConnectionStats'
          readOnly: true
          description: Connection statistics
        database_size:
          allOf:
          - $ref: '#/components/schemas/DatabaseSizeStats'
          readOnly: true
          description: Database size information
        cache_performance:
          allOf:
          - $ref: '#/components/schemas/CachePerformance'
          readOnly: true
          description: Cache hit ratios and memory settings
        transactions:
          allOf:
          - $ref: '#/components/schemas/TransactionStats'
          readOnly: true
          description: Transaction commit/rollback statistics
        locks:
          allOf:
          - $ref: '#/components/schemas/LockStats'
          readOnly: true
          description: Current lock statistics
        maintenance:
          allOf:
          - $ref: '#/components/schemas/MaintenanceStats'
          readOnly: true
          description: Vacuum and maintenance statistics
        active_queries:
          allOf:
          - $ref: '#/components/schemas/ActiveQueriesStats'
          readOnly: true
          description: Currently running queries
        query_performance:
          allOf:
          - $ref: '#/components/schemas/QueryPerformance'
          readOnly: true
          description: Query performance indicators
        replication:
          allOf:
          - $ref: '#/components/schemas/ReplicationStats'
          readOnly: true
          description: Replication status (if applicable)
      required:
      - active_queries
      - cache_performance
      - connections
      - database_size
      - locks
      - maintenance
      - query_performance
      - replication
      - table_stats
      - transactions
    DeadLetterQueue:
      type: object
      description: ''
      properties:
        total_dlq_messages:
          type: integer
          readOnly: true
          description: Total messages across all DLQs
        dlq_count:
          type: integer
          readOnly: true
          description: Number of DLQ queues found
        dlq_queues:
          type: array
          items:
            $ref: '#/components/schemas/DLQQueue'
          readOnly: true
          description: List of DLQ queues with their statistics
        note:
          type: string
          readOnly: true
          description: Informational note about DLQs
      required:
      - dlq_count
      - dlq_queues
      - note
      - total_dlq_messages
    DecidingEntityEnum:
      enum:
      - by_call_manager
      - automatic
      type: string
      description: ''
    DefaultPermissionEnum:
      enum:
      - '2770'
      - '2775'
      - '2777'
      - '770'
      - '775'
      - '777'
      type: string
      description: ''
    DeleteAttachmentsRequest:
      type: object
      properties:
        attachment_ids:
          type: array
          items:
            type: string
            format: uuid
      required:
      - attachment_ids
      description: ''
    DemoPreset:
      type: object
      description: ''
      properties:
        name:
          type: string
          readOnly: true
        title:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        version:
          type: string
          readOnly: true
        entity_counts:
          type: object
          additionalProperties:
            type: integer
          readOnly: true
        scenarios:
          type: array
          items:
            type: string
          readOnly: true
      required:
      - description
      - entity_counts
      - name
      - scenarios
      - title
      - version
    DemoPresetLoadRequestRequest:
      type: object
      description: ''
      properties:
        dry_run:
          type: boolean
          default: false
          description: Preview changes without applying them
        cleanup_first:
          type: boolean
          default: true
          description: Clean up existing data before loading the preset
        skip_users:
          type: boolean
          default: false
          description: Skip user import/cleanup
        skip_roles:
          type: boolean
          default: false
          description: Skip role import/cleanup
    DemoPresetLoadResponse:
      type: object
      description: ''
      properties:
        success:
          type: boolean
        message:
          type: string
        output:
          type: string
        users:
          type: array
          items:
            $ref: '#/components/schemas/DemoPresetUser'
      required:
      - message
      - success
    DemoPresetUser:
      type: object
      description: ''
      properties:
        username:
          type: string
        password:
          type: string
        email:
          type: string
        is_staff:
          type: boolean
          default: false
        is_support:
          type: boolean
          default: false
      required:
      - password
      - username
    DependencyLogicOperatorEnum:
      enum:
      - and
      - or
      type: string
      description: ''
    DeploymentModeEnum:
      enum:
      - self_managed
      - managed
      type: string
      description: ''
    DeprecatedNetworkRBACPolicy:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        network:
          type: string
          format: uri
          readOnly: true
        network_name:
          type: string
          readOnly: true
        target_tenant:
          type: string
          format: uri
        target_tenant_name:
          type: string
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        policy_type:
          allOf:
          - $ref: '#/components/schemas/PolicyTypeEnum'
          default: access_as_shared
          description: Type of access granted - either shared access or external network
            access
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - backend_id
      - created
      - network
      - network_name
      - target_tenant
      - target_tenant_name
      - url
      - uuid
    DeprecatedNetworkRBACPolicyRequest:
      type: object
      description: ''
      properties:
        target_tenant:
          type: string
          format: uri
        policy_type:
          allOf:
          - $ref: '#/components/schemas/PolicyTypeEnum'
          default: access_as_shared
          description: Type of access granted - either shared access or external network
            access
      required:
      - target_tenant
    DetailState:
      type: object
      properties:
        detail:
          type: string
          readOnly: true
        state:
          type: string
          readOnly: true
      required:
      - detail
      - state
      description: ''
    DetectionMethodEnum:
      enum:
      - automated
      - self_disclosed
      - reported
      - manager_identified
      type: string
      description: ''
    DigitalOceanDroplet:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        start_time:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        cores:
          type: integer
          readOnly: true
          description: Number of cores in a VM
        ram:
          type: integer
          readOnly: true
          description: Memory size in MiB
        disk:
          type: integer
          readOnly: true
          description: Disk size in MiB
        min_ram:
          type: integer
          readOnly: true
          description: Minimum memory size in MiB
        min_disk:
          type: integer
          readOnly: true
          description: Minimum disk size in MiB
        user_data:
          type: string
          description: Additional data that will be added to instance on provisioning
        external_ips:
          type: array
          items:
            type: string
            format: ipv4
          readOnly: true
        internal_ips:
          type: array
          items:
            type: string
            format: ipv4
          readOnly: true
        latitude:
          type: number
          format: double
          readOnly: true
          nullable: true
        longitude:
          type: number
          format: double
          readOnly: true
          nullable: true
        key_name:
          type: string
          readOnly: true
        key_fingerprint:
          type: string
          readOnly: true
        image_name:
          type: string
          readOnly: true
        runtime_state:
          type: string
          readOnly: true
        region_name:
          type: string
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    DigitalOceanDropletRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        ssh_public_key:
          type: string
          format: uri
          writeOnly: true
        user_data:
          type: string
          description: Additional data that will be added to instance on provisioning
        region:
          type: string
          format: uri
          writeOnly: true
        image:
          type: string
          format: uri
          writeOnly: true
        size:
          type: string
          format: uri
          writeOnly: true
      required:
      - image
      - name
      - project
      - region
      - service_settings
      - size
    DigitalOceanDropletResize:
      type: object
      properties:
        disk:
          type: boolean
      required:
      - disk
      description: ''
    DigitalOceanDropletResizeRequest:
      type: object
      properties:
        size:
          type: string
          format: uri
          writeOnly: true
        disk:
          type: boolean
      required:
      - disk
      - size
      description: ''
    DigitalOceanImage:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        distribution:
          type: string
          maxLength: 100
        type:
          type: string
          maxLength: 100
        regions:
          type: array
          items:
            $ref: '#/components/schemas/DigitalOceanRegion'
          readOnly: true
        is_official:
          type: boolean
          description: Is image provided by DigitalOcean
        created_at:
          type: string
          format: date-time
          nullable: true
        min_disk_size:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Minimum disk required for a size to use this image
      required:
      - distribution
      - name
      - regions
      - type
      - url
      - uuid
    DigitalOceanRegion:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
      required:
      - name
      - url
      - uuid
    DigitalOceanSize:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        cores:
          type: integer
          maximum: 32767
          minimum: 0
          description: Number of cores in a VM
        ram:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Memory size in MiB
        disk:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Disk size in MiB
        transfer:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Amount of transfer bandwidth in MiB
        regions:
          type: array
          items:
            $ref: '#/components/schemas/DigitalOceanRegion'
          readOnly: true
      required:
      - cores
      - disk
      - name
      - ram
      - regions
      - transfer
      - url
      - uuid
    DirectionEnum:
      enum:
      - ingress
      - egress
      type: string
      description: ''
    DiscountConfigRequest:
      type: object
      description: ''
      properties:
        discount_threshold:
          type: integer
          minimum: 1
          nullable: true
          description: Minimum quantity to be eligible for discount.
        discount_rate:
          type: integer
          maximum: 100
          minimum: 0
          nullable: true
          description: Discount rate in percentage (0-100).
    DiscountTypeEnum:
      enum:
      - discount
      - special_price
      type: string
      description: ''
    DiscountsUpdateRequest:
      type: object
      description: ''
      properties:
        discounts:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/DiscountConfigRequest'
          description: Dictionary mapping component types to their discount configuration.
      required:
      - discounts
    DiscoverCustomFieldsRequestRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          description: Atlassian API URL (e.g., https://your-domain.atlassian.net)
        auth_method:
          allOf:
          - $ref: '#/components/schemas/AuthMethodEnum'
          description: Authentication method to use
        email:
          type: string
          format: email
        token:
          type: string
          writeOnly: true
        personal_access_token:
          type: string
          writeOnly: true
        username:
          type: string
        password:
          type: string
          writeOnly: true
        verify_ssl:
          type: boolean
          default: true
        project_id:
          type: string
        request_type_id:
          type: string
          description: 'Optional: Filter fields by request type'
      required:
      - api_url
      - auth_method
    DiscoverCustomersRequestRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          description: Arrow API base URL
        api_key:
          type: string
          minLength: 1
          description: Arrow API Key
      required:
      - api_key
      - api_url
    DiscoverCustomersResponse:
      type: object
      description: ''
      properties:
        arrow_customers:
          type: array
          items:
            $ref: '#/components/schemas/ArrowCustomerDiscovery'
        waldur_customers:
          type: array
          items:
            $ref: '#/components/schemas/WaldurCustomerBrief'
        suggestions:
          type: array
          items:
            $ref: '#/components/schemas/CustomerMappingSuggestion'
        export_types:
          type: array
          items:
            $ref: '#/components/schemas/ExportTypeCompatibility'
      required:
      - arrow_customers
      - export_types
      - suggestions
      - waldur_customers
    DiscoverExternalNetworksRequestRequest:
      type: object
      description: ''
      properties:
        auth_url:
          type: string
          format: uri
          minLength: 1
          description: Keystone auth URL (e.g., https://cloud.example.com:5000/v3)
        username:
          type: string
          minLength: 1
        password:
          type: string
          writeOnly: true
          minLength: 1
        user_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone user domain name
        project_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone project domain name
        project_name:
          type: string
          minLength: 1
          default: admin
          description: Keystone project (tenant) name
        verify_ssl:
          type: boolean
          default: false
        certificate:
          type: string
          writeOnly: true
          description: PEM-encoded CA certificate for SSL verification
      required:
      - auth_url
      - password
      - username
    DiscoverFlavorsRequestRequest:
      type: object
      description: ''
      properties:
        auth_url:
          type: string
          format: uri
          minLength: 1
          description: Keystone auth URL (e.g., https://cloud.example.com:5000/v3)
        username:
          type: string
          minLength: 1
        password:
          type: string
          writeOnly: true
          minLength: 1
        user_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone user domain name
        project_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone project domain name
        project_name:
          type: string
          minLength: 1
          default: admin
          description: Keystone project (tenant) name
        verify_ssl:
          type: boolean
          default: false
        certificate:
          type: string
          writeOnly: true
          description: PEM-encoded CA certificate for SSL verification
      required:
      - auth_url
      - password
      - username
    DiscoverInstanceAvailabilityZonesRequestRequest:
      type: object
      description: ''
      properties:
        auth_url:
          type: string
          format: uri
          minLength: 1
          description: Keystone auth URL (e.g., https://cloud.example.com:5000/v3)
        username:
          type: string
          minLength: 1
        password:
          type: string
          writeOnly: true
          minLength: 1
        user_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone user domain name
        project_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone project domain name
        project_name:
          type: string
          minLength: 1
          default: admin
          description: Keystone project (tenant) name
        verify_ssl:
          type: boolean
          default: false
        certificate:
          type: string
          writeOnly: true
          description: PEM-encoded CA certificate for SSL verification
      required:
      - auth_url
      - password
      - username
    DiscoverLicensesResponse:
      type: object
      description: ''
      properties:
        customer_mapping_uuid:
          type: string
          format: uuid
        arrow_reference:
          type: string
        waldur_customer_name:
          type: string
        arrow_licenses:
          type: array
          items:
            $ref: '#/components/schemas/ArrowLicense'
          description: Arrow licenses from billing export for this customer.
        waldur_resources:
          type: array
          items:
            $ref: '#/components/schemas/WaldurResourceForLinking'
          description: Waldur resources for this customer.
        suggestions:
          type: array
          items:
            $ref: '#/components/schemas/LicenseSuggestion'
          description: Suggested matches based on name similarity.
        error:
          type: string
          nullable: true
      required:
      - arrow_licenses
      - arrow_reference
      - customer_mapping_uuid
      - error
      - suggestions
      - waldur_customer_name
      - waldur_resources
    DiscoverMetadataRequestRequest:
      type: object
      properties:
        discovery_url:
          type: string
          format: uri
          minLength: 1
          description: OIDC discovery URL (e.g., https://idp.example.com/.well-known/openid-configuration)
        verify_ssl:
          type: boolean
          default: true
          description: Whether to verify SSL certificate
      required:
      - discovery_url
      description: ''
    DiscoverMetadataResponse:
      type: object
      properties:
        claims_supported:
          type: array
          items:
            type: string
          description: List of claims supported by the OIDC provider
        scopes_supported:
          type: array
          items:
            type: string
          description: List of scopes supported by the OIDC provider
        endpoints:
          type: object
          additionalProperties:
            type: string
          description: OIDC endpoints (authorization, token, userinfo, logout)
        waldur_fields:
          type: array
          items:
            $ref: '#/components/schemas/WaldurFieldSuggestion'
          description: Waldur User fields with suggested OIDC claim mappings
        suggested_scopes:
          type: array
          items:
            type: string
          description: Recommended scopes to request based on claim mappings
      required:
      - claims_supported
      - endpoints
      - scopes_supported
      - suggested_scopes
      - waldur_fields
      description: ''
    DiscoverPrioritiesRequestRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          description: Atlassian API URL (e.g., https://your-domain.atlassian.net)
        auth_method:
          allOf:
          - $ref: '#/components/schemas/AuthMethodEnum'
          description: Authentication method to use
        email:
          type: string
          format: email
        token:
          type: string
          writeOnly: true
        personal_access_token:
          type: string
          writeOnly: true
        username:
          type: string
        password:
          type: string
          writeOnly: true
        verify_ssl:
          type: boolean
          default: true
      required:
      - api_url
      - auth_method
    DiscoverProjectsRequestRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          description: Atlassian API URL (e.g., https://your-domain.atlassian.net)
        auth_method:
          allOf:
          - $ref: '#/components/schemas/AuthMethodEnum'
          description: Authentication method to use
        email:
          type: string
          format: email
        token:
          type: string
          writeOnly: true
        personal_access_token:
          type: string
          writeOnly: true
        username:
          type: string
        password:
          type: string
          writeOnly: true
        verify_ssl:
          type: boolean
          default: true
      required:
      - api_url
      - auth_method
    DiscoverRequestTypesRequestRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          description: Atlassian API URL (e.g., https://your-domain.atlassian.net)
        auth_method:
          allOf:
          - $ref: '#/components/schemas/AuthMethodEnum'
          description: Authentication method to use
        email:
          type: string
          format: email
        token:
          type: string
          writeOnly: true
        personal_access_token:
          type: string
          writeOnly: true
        username:
          type: string
        password:
          type: string
          writeOnly: true
        verify_ssl:
          type: boolean
          default: true
        project_id:
          type: string
          minLength: 1
          description: Service Desk project ID or key
      required:
      - api_url
      - auth_method
      - project_id
    DiscoverVolumeAvailabilityZonesRequestRequest:
      type: object
      description: ''
      properties:
        auth_url:
          type: string
          format: uri
          minLength: 1
          description: Keystone auth URL (e.g., https://cloud.example.com:5000/v3)
        username:
          type: string
          minLength: 1
        password:
          type: string
          writeOnly: true
          minLength: 1
        user_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone user domain name
        project_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone project domain name
        project_name:
          type: string
          minLength: 1
          default: admin
          description: Keystone project (tenant) name
        verify_ssl:
          type: boolean
          default: false
        certificate:
          type: string
          writeOnly: true
          description: PEM-encoded CA certificate for SSL verification
      required:
      - auth_url
      - password
      - username
    DiscoverVolumeTypesRequestRequest:
      type: object
      description: ''
      properties:
        auth_url:
          type: string
          format: uri
          minLength: 1
          description: Keystone auth URL (e.g., https://cloud.example.com:5000/v3)
        username:
          type: string
          minLength: 1
        password:
          type: string
          writeOnly: true
          minLength: 1
        user_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone user domain name
        project_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone project domain name
        project_name:
          type: string
          minLength: 1
          default: admin
          description: Keystone project (tenant) name
        verify_ssl:
          type: boolean
          default: false
        certificate:
          type: string
          writeOnly: true
          description: PEM-encoded CA certificate for SSL verification
      required:
      - auth_url
      - password
      - username
    DiskFormatEnum:
      enum:
      - qcow2
      - raw
      - vhd
      - vmdk
      - vdi
      - iso
      - aki
      - ami
      - ari
      type: string
      description: ''
    DryRun:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        order_attributes:
          readOnly: true
        order_type:
          type: string
          readOnly: true
        order_offering:
          type: string
          format: uri
          nullable: true
        state:
          allOf:
          - $ref: '#/components/schemas/DryRunStateEnum'
          readOnly: true
        get_state_display:
          type: string
          readOnly: true
        output:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - created
      - get_state_display
      - order_attributes
      - order_type
      - output
      - state
      - url
      - uuid
      description: ''
    DryRunRequest:
      type: object
      properties:
        plan:
          type: string
          format: uri
          writeOnly: true
          nullable: true
        type:
          allOf:
          - $ref: '#/components/schemas/DryRunTypeEnum'
          writeOnly: true
          default: Create
        attributes:
          writeOnly: true
        order_offering:
          type: string
          format: uri
          nullable: true
      description: ''
    DryRunStateEnum:
      enum:
      - 1
      - 2
      - 3
      - 4
      type: integer
      description: ''
    DryRunTypeEnum:
      enum:
      - Create
      - Update
      - Terminate
      - Restore
      - Pull
      type: string
      description: ''
    EligibilityCheck:
      type: object
      description: ''
      properties:
        is_eligible:
          type: boolean
        restrictions:
          type: array
          items:
            type: string
      required:
      - is_eligible
      - restrictions
    EmailHook:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        is_active:
          type: boolean
        author_uuid:
          type: string
          format: uuid
          readOnly: true
        event_types:
          type: array
          items:
            $ref: '#/components/schemas/EventTypesEnum'
        event_groups:
          type: array
          items:
            $ref: '#/components/schemas/EventGroupsEnum'
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        hook_type:
          type: string
          readOnly: true
        author_fullname:
          type: string
          readOnly: true
        author_username:
          type: string
          readOnly: true
        author_email:
          type: string
          readOnly: true
        email:
          type: string
          format: email
          maxLength: 320
      required:
      - author_email
      - author_fullname
      - author_username
      - author_uuid
      - created
      - email
      - hook_type
      - modified
      - url
      - uuid
      description: ''
    EmailHookRequest:
      type: object
      properties:
        is_active:
          type: boolean
        event_types:
          type: array
          items:
            $ref: '#/components/schemas/EventTypesEnum'
        event_groups:
          type: array
          items:
            $ref: '#/components/schemas/EventGroupsEnum'
        email:
          type: string
          format: email
          minLength: 1
          maxLength: 320
      required:
      - email
      description: ''
    EmailInvitationRequest:
      type: object
      description: ''
      properties:
        email:
          type: string
          format: email
          minLength: 1
          description: Email address to send the invitation to
        invitation_message:
          type: string
          description: Custom message to include in invitation email
        max_assignments:
          type: integer
          minimum: 1
          default: 5
      required:
      - email
    EmailLog:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        sent_at:
          type: string
          format: date-time
          readOnly: true
        subject:
          type: string
          maxLength: 255
        body:
          type: string
        emails:
          type: array
          items:
            type: string
            format: email
            maxLength: 254
      required:
      - body
      - emails
      - sent_at
      - subject
      - url
      - uuid
      description: ''
    EndpointUUID:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID of the access endpoint
      required:
      - uuid
      description: ''
    EndpointUUIDRequest:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID of the access endpoint
      required:
      - uuid
      description: ''
    EntityTypeEnum:
      enum:
      - company
      - startup
      - nonprofit
      - government
      - other
      type: string
      description: ''
    EthertypeEnum:
      enum:
      - IPv4
      - IPv6
      type: string
      description: ''
    Event:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        event_type:
          type: string
          maxLength: 100
        message:
          type: string
        context:
          readOnly: true
      required: []
    EventGroupsEnum:
      enum:
      - access_subnets
      - auth
      - call
      - chat
      - credits
      - customers
      - invoices
      - offering_accounting
      - onboarding
      - permissions
      - projects
      - proposal
      - providers
      - resources
      - review
      - ssh
      - support
      - users
      - terms_of_service
      type: string
      description: ''
    EventMetadataResponse:
      type: object
      description: ''
      properties:
        event_groups:
          type: object
          additionalProperties:
            type: array
            items:
              enum:
              - access_subnet_creation_succeeded
              - access_subnet_deletion_succeeded
              - access_subnet_update_succeeded
              - allowed_offerings_have_been_updated
              - attachment_created
              - attachment_deleted
              - attachment_updated
              - auth_logged_in_with_saml2
              - auth_logged_in_with_username
              - auth_logged_in_with_oauth
              - auth_logged_out
              - auth_logged_out_with_saml2
              - auth_login_failed_with_username
              - block_creation_of_new_resources
              - block_modification_of_existing_resources
              - call_document_added
              - call_document_removed
              - create_of_credit_by_staff
              - custom_notification
              - customer_creation_succeeded
              - customer_deletion_succeeded
              - customer_update_succeeded
              - customer_permission_review_created
              - customer_permission_review_closed
              - droplet_resize_scheduled
              - droplet_resize_succeeded
              - freeipa_profile_created
              - freeipa_profile_deleted
              - freeipa_profile_disabled
              - freeipa_profile_enabled
              - invoice_canceled
              - invoice_created
              - invoice_item_created
              - invoice_item_deleted
              - invoice_item_updated
              - invoice_paid
              - issue_creation_succeeded
              - issue_deletion_succeeded
              - issue_update_succeeded
              - marketplace_offering_component_created
              - marketplace_offering_component_deleted
              - marketplace_offering_component_updated
              - marketplace_offering_created
              - marketplace_offering_role_created
              - marketplace_offering_role_deleted
              - marketplace_offering_role_updated
              - marketplace_offering_updated
              - marketplace_offering_user_created
              - marketplace_offering_user_updated
              - marketplace_offering_user_deleted
              - marketplace_offering_user_restriction_updated
              - marketplace_order_approved
              - marketplace_order_completed
              - marketplace_order_created
              - marketplace_order_failed
              - marketplace_order_rejected
              - marketplace_order_terminated
              - marketplace_order_unlinked
              - marketplace_plan_archived
              - marketplace_plan_component_current_price_updated
              - marketplace_plan_component_future_price_updated
              - marketplace_plan_component_quota_updated
              - marketplace_plan_created
              - marketplace_plan_updated
              - marketplace_plan_deleted
              - marketplace_resource_create_canceled
              - marketplace_resource_create_failed
              - marketplace_resource_create_requested
              - marketplace_resource_create_succeeded
              - marketplace_resource_downscaled
              - marketplace_resource_erred_on_backend
              - marketplace_resource_paused
              - marketplace_resource_terminate_canceled
              - marketplace_resource_terminate_failed
              - marketplace_resource_terminate_requested
              - marketplace_resource_terminate_succeeded
              - marketplace_resource_unlinked
              - marketplace_resource_update_canceled
              - marketplace_resource_update_end_date_succeeded
              - marketplace_resource_update_failed
              - marketplace_resource_update_limits_failed
              - marketplace_resource_update_limits_succeeded
              - marketplace_resource_update_requested
              - marketplace_resource_update_succeeded
              - marketplace_resource_user_created
              - marketplace_resource_user_deleted
              - notify_external_user
              - notify_organization_owners
              - notify_project_team
              - openstack_floating_ip_attached
              - openstack_floating_ip_connected
              - openstack_floating_ip_description_updated
              - openstack_floating_ip_detached
              - openstack_floating_ip_disconnected
              - openstack_network_cleaned
              - openstack_network_created
              - openstack_network_deleted
              - openstack_network_imported
              - openstack_network_pulled
              - openstack_network_updated
              - openstack_port_cleaned
              - openstack_port_created
              - openstack_port_deleted
              - openstack_port_imported
              - openstack_port_pulled
              - openstack_port_updated
              - openstack_router_updated
              - openstack_security_group_cleaned
              - openstack_security_group_created
              - openstack_security_group_deleted
              - openstack_security_group_imported
              - openstack_security_group_pulled
              - openstack_security_group_rule_cleaned
              - openstack_security_group_rule_created
              - openstack_security_group_rule_deleted
              - openstack_security_group_rule_imported
              - openstack_security_group_rule_updated
              - openstack_security_group_updated
              - openstack_security_group_added_remotely
              - openstack_security_group_removed_remotely
              - openstack_security_group_added_locally
              - openstack_security_group_removed_locally
              - openstack_server_group_cleaned
              - openstack_server_group_created
              - openstack_server_group_deleted
              - openstack_server_group_imported
              - openstack_server_group_pulled
              - openstack_subnet_cleaned
              - openstack_subnet_created
              - openstack_subnet_deleted
              - openstack_subnet_imported
              - openstack_subnet_pulled
              - openstack_subnet_updated
              - openstack_tenant_quota_limit_updated
              - payment_added
              - payment_created
              - payment_removed
              - policy_notification
              - project_creation_succeeded
              - project_deletion_succeeded
              - project_deletion_triggered
              - project_update_request_approved
              - project_update_request_created
              - project_update_request_rejected
              - project_update_succeeded
              - project_permission_review_created
              - project_permission_review_closed
              - proposal_canceled
              - proposal_document_added
              - proposal_document_removed
              - query_executed
              - reduction_of_customer_credit
              - reduction_of_customer_credit_due_to_minimal_consumption
              - reduction_of_customer_expected_consumption
              - reduction_of_project_credit
              - reduction_of_project_credit_due_to_minimal_consumption
              - reduction_of_project_expected_consumption
              - request_downscaling
              - request_pausing
              - resource_assign_floating_ip_failed
              - resource_assign_floating_ip_scheduled
              - resource_assign_floating_ip_succeeded
              - resource_attach_failed
              - resource_attach_scheduled
              - resource_attach_succeeded
              - resource_backup_creation_failed
              - resource_backup_creation_scheduled
              - resource_backup_creation_succeeded
              - resource_backup_deletion_failed
              - resource_backup_deletion_scheduled
              - resource_backup_deletion_succeeded
              - resource_backup_restoration_failed
              - resource_backup_restoration_scheduled
              - resource_backup_restoration_succeeded
              - resource_change_flavor_failed
              - resource_change_flavor_scheduled
              - resource_change_flavor_succeeded
              - resource_creation_failed
              - resource_creation_scheduled
              - resource_creation_succeeded
              - resource_deletion_failed
              - resource_deletion_scheduled
              - resource_deletion_succeeded
              - resource_detach_failed
              - resource_detach_scheduled
              - resource_detach_succeeded
              - resource_extend_failed
              - resource_extend_scheduled
              - resource_extend_succeeded
              - resource_extend_volume_failed
              - resource_extend_volume_scheduled
              - resource_extend_volume_succeeded
              - resource_import_succeeded
              - resource_pull_failed
              - resource_pull_scheduled
              - resource_pull_succeeded
              - resource_restart_failed
              - resource_restart_scheduled
              - resource_restart_succeeded
              - resource_retype_failed
              - resource_retype_scheduled
              - resource_retype_succeeded
              - resource_robot_account_created
              - resource_robot_account_deleted
              - resource_robot_account_state_changed
              - resource_robot_account_updated
              - resource_start_failed
              - resource_start_scheduled
              - resource_start_succeeded
              - resource_stop_failed
              - resource_stop_scheduled
              - resource_stop_succeeded
              - resource_unassign_floating_ip_failed
              - resource_unassign_floating_ip_scheduled
              - resource_unassign_floating_ip_succeeded
              - resource_update_allowed_address_pairs_failed
              - resource_update_allowed_address_pairs_scheduled
              - resource_update_allowed_address_pairs_succeeded
              - resource_update_floating_ips_failed
              - resource_update_floating_ips_scheduled
              - resource_update_floating_ips_succeeded
              - resource_update_ports_failed
              - resource_update_ports_scheduled
              - resource_update_ports_succeeded
              - resource_update_security_groups_failed
              - resource_update_security_groups_scheduled
              - resource_update_security_groups_succeeded
              - resource_update_succeeded
              - restrict_members
              - review_canceled
              - role_granted
              - role_revoked
              - role_updated
              - roll_back_customer_credit
              - roll_back_project_credit
              - service_account_created
              - service_account_deleted
              - service_account_updated
              - set_to_zero_overdue_credit
              - slurm_policy_evaluation
              - ssh_key_creation_succeeded
              - ssh_key_deletion_succeeded
              - terminate_resources
              - token_created
              - token_lifetime_updated
              - update_of_credit_by_staff
              - automatic_credit_adjustment
              - user_activated
              - user_creation_succeeded
              - user_data_accessed
              - user_deactivated
              - user_deactivated_no_roles
              - user_deletion_succeeded
              - user_details_update_succeeded
              - user_has_been_created_by_staff
              - user_password_updated
              - user_password_updated_by_staff
              - user_update_succeeded
              - user_group_invitation_updated
              - user_invitation_updated
              - user_invitation_deleted
              - terms_of_service_consent_granted
              - terms_of_service_consent_revoked
              - chat_session_accessed
              - chat_thread_accessed
              - onboarding_verification_deleted
              - onboarding_verification_deleted_by_task
              type: string
          description: Map of event group keys to lists of event type enums from EventType
      required:
      - event_groups
    EventStats:
      type: object
      properties:
        year:
          type: integer
          readOnly: true
        month:
          type: integer
          readOnly: true
        count:
          type: integer
          readOnly: true
      required:
      - count
      - month
      - year
      description: ''
    EventSubscription:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        description:
          type: string
          maxLength: 4096
        user:
          type: string
          format: uri
          readOnly: true
        user_uuid:
          type: string
          format: uuid
          readOnly: true
        user_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        user_full_name:
          type: string
          readOnly: true
        observable_objects:
          description: 'List of objects to observe. Each item must have ''object_type''
            (one of: order, user_role, resource, offering_user, importable_resources,
            service_account, course_account, resource_periodic_limits) and optionally
            ''object_id'' (integer). Example: [{"object_type": "resource"}, {"object_type":
            "order", "object_id": 123}]'
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        source_ip:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          readOnly: true
          nullable: true
      required:
      - created
      - modified
      - source_ip
      - url
      - user
      - user_full_name
      - user_username
      - user_uuid
      - uuid
      description: ''
    EventSubscriptionQueue:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        event_subscription:
          type: string
          format: uri
          readOnly: true
        event_subscription_uuid:
          type: string
          readOnly: true
        offering_uuid:
          type: string
          readOnly: true
        object_type:
          type: string
          description: Observable object type (e.g., 'resource', 'order')
          maxLength: 50
        queue_name:
          type: string
          readOnly: true
        vhost:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - created
      - event_subscription
      - event_subscription_uuid
      - object_type
      - offering_uuid
      - queue_name
      - url
      - uuid
      - vhost
    EventSubscriptionQueueCreateRequest:
      type: object
      description: ''
      properties:
        offering_uuid:
          type: string
          format: uuid
          description: UUID of the offering to receive events for
        object_type:
          allOf:
          - $ref: '#/components/schemas/ObservableObjectTypeEnum'
          description: Type of observable object (e.g., 'resource', 'order')
      required:
      - object_type
      - offering_uuid
    EventSubscriptionQueuesOverview:
      type: object
      description: ''
      properties:
        total_vhosts:
          type: integer
          readOnly: true
          description: Total number of vhosts with subscription queues
        total_queues:
          type: integer
          readOnly: true
          description: Total number of subscription queues
        total_messages:
          type: integer
          readOnly: true
          description: Total messages across all subscription queues
        top_queues_by_messages:
          type: array
          items:
            $ref: '#/components/schemas/TopQueue'
          readOnly: true
          description: Top 10 queues by message count
      required:
      - top_queues_by_messages
      - total_messages
      - total_queues
      - total_vhosts
    EventSubscriptionRequest:
      type: object
      properties:
        description:
          type: string
          maxLength: 4096
        observable_objects:
          description: 'List of objects to observe. Each item must have ''object_type''
            (one of: order, user_role, resource, offering_user, importable_resources,
            service_account, course_account, resource_periodic_limits) and optionally
            ''object_id'' (integer). Example: [{"object_type": "resource"}, {"object_type":
            "order", "object_id": 123}]'
      description: ''
    EventTypesEnum:
      enum:
      - access_subnet_creation_succeeded
      - access_subnet_deletion_succeeded
      - access_subnet_update_succeeded
      - allowed_offerings_have_been_updated
      - attachment_created
      - attachment_deleted
      - attachment_updated
      - auth_logged_in_with_saml2
      - auth_logged_in_with_username
      - auth_logged_in_with_oauth
      - auth_logged_out
      - auth_logged_out_with_saml2
      - auth_login_failed_with_username
      - block_creation_of_new_resources
      - block_modification_of_existing_resources
      - call_document_added
      - call_document_removed
      - create_of_credit_by_staff
      - custom_notification
      - customer_creation_succeeded
      - customer_deletion_succeeded
      - customer_update_succeeded
      - customer_permission_review_created
      - customer_permission_review_closed
      - droplet_resize_scheduled
      - droplet_resize_succeeded
      - freeipa_profile_created
      - freeipa_profile_deleted
      - freeipa_profile_disabled
      - freeipa_profile_enabled
      - invoice_canceled
      - invoice_created
      - invoice_item_created
      - invoice_item_deleted
      - invoice_item_updated
      - invoice_paid
      - issue_creation_succeeded
      - issue_deletion_succeeded
      - issue_update_succeeded
      - marketplace_offering_component_created
      - marketplace_offering_component_deleted
      - marketplace_offering_component_updated
      - marketplace_offering_created
      - marketplace_offering_role_created
      - marketplace_offering_role_deleted
      - marketplace_offering_role_updated
      - marketplace_offering_updated
      - marketplace_offering_user_created
      - marketplace_offering_user_updated
      - marketplace_offering_user_deleted
      - marketplace_offering_user_restriction_updated
      - marketplace_order_approved
      - marketplace_order_completed
      - marketplace_order_created
      - marketplace_order_failed
      - marketplace_order_rejected
      - marketplace_order_terminated
      - marketplace_order_unlinked
      - marketplace_plan_archived
      - marketplace_plan_component_current_price_updated
      - marketplace_plan_component_future_price_updated
      - marketplace_plan_component_quota_updated
      - marketplace_plan_created
      - marketplace_plan_updated
      - marketplace_plan_deleted
      - marketplace_resource_create_canceled
      - marketplace_resource_create_failed
      - marketplace_resource_create_requested
      - marketplace_resource_create_succeeded
      - marketplace_resource_downscaled
      - marketplace_resource_erred_on_backend
      - marketplace_resource_paused
      - marketplace_resource_terminate_canceled
      - marketplace_resource_terminate_failed
      - marketplace_resource_terminate_requested
      - marketplace_resource_terminate_succeeded
      - marketplace_resource_unlinked
      - marketplace_resource_update_canceled
      - marketplace_resource_update_end_date_succeeded
      - marketplace_resource_update_failed
      - marketplace_resource_update_limits_failed
      - marketplace_resource_update_limits_succeeded
      - marketplace_resource_update_requested
      - marketplace_resource_update_succeeded
      - marketplace_resource_user_created
      - marketplace_resource_user_deleted
      - notify_external_user
      - notify_organization_owners
      - notify_project_team
      - openstack_floating_ip_attached
      - openstack_floating_ip_connected
      - openstack_floating_ip_description_updated
      - openstack_floating_ip_detached
      - openstack_floating_ip_disconnected
      - openstack_network_cleaned
      - openstack_network_created
      - openstack_network_deleted
      - openstack_network_imported
      - openstack_network_pulled
      - openstack_network_updated
      - openstack_port_cleaned
      - openstack_port_created
      - openstack_port_deleted
      - openstack_port_imported
      - openstack_port_pulled
      - openstack_port_updated
      - openstack_router_updated
      - openstack_security_group_cleaned
      - openstack_security_group_created
      - openstack_security_group_deleted
      - openstack_security_group_imported
      - openstack_security_group_pulled
      - openstack_security_group_rule_cleaned
      - openstack_security_group_rule_created
      - openstack_security_group_rule_deleted
      - openstack_security_group_rule_imported
      - openstack_security_group_rule_updated
      - openstack_security_group_updated
      - openstack_security_group_added_remotely
      - openstack_security_group_removed_remotely
      - openstack_security_group_added_locally
      - openstack_security_group_removed_locally
      - openstack_server_group_cleaned
      - openstack_server_group_created
      - openstack_server_group_deleted
      - openstack_server_group_imported
      - openstack_server_group_pulled
      - openstack_subnet_cleaned
      - openstack_subnet_created
      - openstack_subnet_deleted
      - openstack_subnet_imported
      - openstack_subnet_pulled
      - openstack_subnet_updated
      - openstack_tenant_quota_limit_updated
      - payment_added
      - payment_created
      - payment_removed
      - policy_notification
      - project_creation_succeeded
      - project_deletion_succeeded
      - project_deletion_triggered
      - project_update_request_approved
      - project_update_request_created
      - project_update_request_rejected
      - project_update_succeeded
      - project_permission_review_created
      - project_permission_review_closed
      - proposal_canceled
      - proposal_document_added
      - proposal_document_removed
      - query_executed
      - reduction_of_customer_credit
      - reduction_of_customer_credit_due_to_minimal_consumption
      - reduction_of_customer_expected_consumption
      - reduction_of_project_credit
      - reduction_of_project_credit_due_to_minimal_consumption
      - reduction_of_project_expected_consumption
      - request_downscaling
      - request_pausing
      - resource_assign_floating_ip_failed
      - resource_assign_floating_ip_scheduled
      - resource_assign_floating_ip_succeeded
      - resource_attach_failed
      - resource_attach_scheduled
      - resource_attach_succeeded
      - resource_backup_creation_failed
      - resource_backup_creation_scheduled
      - resource_backup_creation_succeeded
      - resource_backup_deletion_failed
      - resource_backup_deletion_scheduled
      - resource_backup_deletion_succeeded
      - resource_backup_restoration_failed
      - resource_backup_restoration_scheduled
      - resource_backup_restoration_succeeded
      - resource_change_flavor_failed
      - resource_change_flavor_scheduled
      - resource_change_flavor_succeeded
      - resource_creation_failed
      - resource_creation_scheduled
      - resource_creation_succeeded
      - resource_deletion_failed
      - resource_deletion_scheduled
      - resource_deletion_succeeded
      - resource_detach_failed
      - resource_detach_scheduled
      - resource_detach_succeeded
      - resource_extend_failed
      - resource_extend_scheduled
      - resource_extend_succeeded
      - resource_extend_volume_failed
      - resource_extend_volume_scheduled
      - resource_extend_volume_succeeded
      - resource_import_succeeded
      - resource_pull_failed
      - resource_pull_scheduled
      - resource_pull_succeeded
      - resource_restart_failed
      - resource_restart_scheduled
      - resource_restart_succeeded
      - resource_retype_failed
      - resource_retype_scheduled
      - resource_retype_succeeded
      - resource_robot_account_created
      - resource_robot_account_deleted
      - resource_robot_account_state_changed
      - resource_robot_account_updated
      - resource_start_failed
      - resource_start_scheduled
      - resource_start_succeeded
      - resource_stop_failed
      - resource_stop_scheduled
      - resource_stop_succeeded
      - resource_unassign_floating_ip_failed
      - resource_unassign_floating_ip_scheduled
      - resource_unassign_floating_ip_succeeded
      - resource_update_allowed_address_pairs_failed
      - resource_update_allowed_address_pairs_scheduled
      - resource_update_allowed_address_pairs_succeeded
      - resource_update_floating_ips_failed
      - resource_update_floating_ips_scheduled
      - resource_update_floating_ips_succeeded
      - resource_update_ports_failed
      - resource_update_ports_scheduled
      - resource_update_ports_succeeded
      - resource_update_security_groups_failed
      - resource_update_security_groups_scheduled
      - resource_update_security_groups_succeeded
      - resource_update_succeeded
      - restrict_members
      - review_canceled
      - role_granted
      - role_revoked
      - role_updated
      - roll_back_customer_credit
      - roll_back_project_credit
      - service_account_created
      - service_account_deleted
      - service_account_updated
      - set_to_zero_overdue_credit
      - slurm_policy_evaluation
      - ssh_key_creation_succeeded
      - ssh_key_deletion_succeeded
      - terminate_resources
      - token_created
      - token_lifetime_updated
      - update_of_credit_by_staff
      - automatic_credit_adjustment
      - user_activated
      - user_creation_succeeded
      - user_data_accessed
      - user_deactivated
      - user_deactivated_no_roles
      - user_deletion_succeeded
      - user_details_update_succeeded
      - user_has_been_created_by_staff
      - user_password_updated
      - user_password_updated_by_staff
      - user_update_succeeded
      - user_group_invitation_updated
      - user_invitation_updated
      - user_invitation_deleted
      - terms_of_service_consent_granted
      - terms_of_service_consent_revoked
      - chat_session_accessed
      - chat_thread_accessed
      - onboarding_verification_deleted
      - onboarding_verification_deleted_by_task
      type: string
      description: ''
    ExecuteActionErrorResponse:
      type: object
      description: ''
      properties:
        error:
          type: string
      required:
      - error
    ExecuteActionRequest:
      type: object
      description: ''
      properties:
        action_label:
          type: string
          minLength: 1
          description: Label of the corrective action to execute
      required:
      - action_label
    ExecuteActionResponse:
      type: object
      description: ''
      properties:
        action:
          type: string
        message:
          type: string
        redirect_url:
          type: string
          format: uri
        metadata:
          type: object
          additionalProperties: {}
      required:
      - action
    ExecutionModeEnum:
      enum:
      - production
      - emulator
      type: string
      description: ''
    ExecutionStateEnum:
      enum:
      - Scheduled
      - Processing
      - OK
      - Erred
      type: string
      description: ''
    ExpertiseCategory:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        code:
          type: string
          maxLength: 20
        description:
          type: string
          maxLength: 4096
        parent:
          type: string
          format: uri
          nullable: true
        level:
          type: integer
          maximum: 32767
          minimum: 0
          description: Depth in hierarchy (0 = root)
      required:
      - code
      - name
      - url
      - uuid
    ExportComponentData:
      type: object
      description: ''
      properties:
        type:
          type: string
        name:
          type: string
        description:
          type: string
        billing_type:
          type: string
        measured_unit:
          type: string
        unit_factor:
          type: number
          format: double
          nullable: true
        limit_period:
          type: string
          nullable: true
        limit_amount:
          type: integer
          nullable: true
        article_code:
          type: string
        backend_id:
          type: string
      required:
      - article_code
      - backend_id
      - billing_type
      - description
      - limit_amount
      - limit_period
      - measured_unit
      - name
      - type
      - unit_factor
    ExportComponentDataRequest:
      type: object
      description: ''
      properties:
        type:
          type: string
          minLength: 1
        name:
          type: string
          minLength: 1
        description:
          type: string
        billing_type:
          type: string
          minLength: 1
        measured_unit:
          type: string
          minLength: 1
        unit_factor:
          type: number
          format: double
          nullable: true
        limit_period:
          type: string
          nullable: true
          minLength: 1
        limit_amount:
          type: integer
          nullable: true
        article_code:
          type: string
        backend_id:
          type: string
      required:
      - article_code
      - backend_id
      - billing_type
      - description
      - limit_amount
      - limit_period
      - measured_unit
      - name
      - type
      - unit_factor
    ExportEndpointData:
      type: object
      description: ''
      properties:
        name:
          type: string
        url:
          type: string
          format: uri
      required:
      - name
      - url
    ExportEndpointDataRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
        url:
          type: string
          format: uri
          minLength: 1
      required:
      - name
      - url
    ExportFileData:
      type: object
      description: ''
      properties:
        name:
          type: string
        file_content:
          type: string
        filename:
          type: string
        content_type:
          type: string
      required:
      - content_type
      - file_content
      - filename
      - name
    ExportFileDataRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
        file_content:
          type: string
        filename:
          type: string
        content_type:
          type: string
      required:
      - content_type
      - file_content
      - filename
      - name
    ExportOfferingData:
      type: object
      description: ''
      properties:
        name:
          type: string
        description:
          type: string
        full_description:
          type: string
        vendor_details:
          type: string
        getting_started:
          type: string
        integration_guide:
          type: string
        type:
          type: string
        shared:
          type: boolean
        billable:
          type: boolean
        state:
          type: string
        category_name:
          type: string
          nullable: true
        country:
          type: string
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        access_url:
          type: string
          format: uri
        paused_reason:
          type: string
        attributes: {}
        options: {}
      required:
      - access_url
      - billable
      - category_name
      - country
      - description
      - full_description
      - getting_started
      - integration_guide
      - latitude
      - longitude
      - name
      - paused_reason
      - shared
      - state
      - type
      - vendor_details
    ExportOfferingDataRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
        description:
          type: string
        full_description:
          type: string
        vendor_details:
          type: string
        getting_started:
          type: string
        integration_guide:
          type: string
        type:
          type: string
          minLength: 1
        shared:
          type: boolean
        billable:
          type: boolean
        state:
          type: string
          minLength: 1
        category_name:
          type: string
          nullable: true
          minLength: 1
        country:
          type: string
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        access_url:
          type: string
          format: uri
        paused_reason:
          type: string
        attributes: {}
        options: {}
      required:
      - access_url
      - billable
      - category_name
      - country
      - description
      - full_description
      - getting_started
      - integration_guide
      - latitude
      - longitude
      - name
      - paused_reason
      - shared
      - state
      - type
      - vendor_details
    ExportOrganizationGroupData:
      type: object
      description: ''
      properties:
        name:
          type: string
        parent_name:
          type: string
          nullable: true
      required:
      - name
      - parent_name
    ExportOrganizationGroupDataRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
        parent_name:
          type: string
          nullable: true
          minLength: 1
      required:
      - name
      - parent_name
    ExportPlanComponentData:
      type: object
      description: ''
      properties:
        component_type:
          type: string
          nullable: true
        amount:
          type: integer
        price:
          type: number
          format: double
        future_price:
          type: number
          format: double
          nullable: true
      required:
      - amount
      - component_type
      - future_price
      - price
    ExportPlanComponentDataRequest:
      type: object
      description: ''
      properties:
        component_type:
          type: string
          nullable: true
          minLength: 1
        amount:
          type: integer
        price:
          type: number
          format: double
        future_price:
          type: number
          format: double
          nullable: true
      required:
      - amount
      - component_type
      - future_price
      - price
    ExportPlanData:
      type: object
      description: ''
      properties:
        name:
          type: string
        description:
          type: string
        unit_price:
          type: number
          format: double
        unit:
          type: string
        archived:
          type: boolean
        max_amount:
          type: integer
          nullable: true
        article_code:
          type: string
        backend_id:
          type: string
        components:
          type: array
          items:
            $ref: '#/components/schemas/ExportPlanComponentData'
      required:
      - archived
      - article_code
      - backend_id
      - components
      - description
      - max_amount
      - name
      - unit
      - unit_price
    ExportPlanDataRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
        description:
          type: string
        unit_price:
          type: number
          format: double
        unit:
          type: string
          minLength: 1
        archived:
          type: boolean
        max_amount:
          type: integer
          nullable: true
        article_code:
          type: string
        backend_id:
          type: string
        components:
          type: array
          items:
            $ref: '#/components/schemas/ExportPlanComponentDataRequest'
      required:
      - archived
      - article_code
      - backend_id
      - components
      - description
      - max_amount
      - name
      - unit
      - unit_price
    ExportScreenshotData:
      type: object
      description: ''
      properties:
        name:
          type: string
        description:
          type: string
        image_content:
          type: string
        image_filename:
          type: string
        content_type:
          type: string
      required:
      - content_type
      - description
      - image_content
      - image_filename
      - name
    ExportScreenshotDataRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
        description:
          type: string
        image_content:
          type: string
        image_filename:
          type: string
        content_type:
          type: string
      required:
      - content_type
      - description
      - image_content
      - image_filename
      - name
    ExportTermsOfServiceData:
      type: object
      description: ''
      properties:
        terms_of_service:
          type: string
        terms_of_service_link:
          type: string
          format: uri
        version:
          type: string
        is_active:
          type: boolean
        requires_reconsent:
          type: boolean
        grace_period_days:
          type: integer
          nullable: true
      required:
      - grace_period_days
      - is_active
      - requires_reconsent
      - terms_of_service
      - terms_of_service_link
      - version
    ExportTermsOfServiceDataRequest:
      type: object
      description: ''
      properties:
        terms_of_service:
          type: string
        terms_of_service_link:
          type: string
          format: uri
        version:
          type: string
        is_active:
          type: boolean
        requires_reconsent:
          type: boolean
        grace_period_days:
          type: integer
          nullable: true
      required:
      - grace_period_days
      - is_active
      - requires_reconsent
      - terms_of_service
      - terms_of_service_link
      - version
    ExportTypeCompatibility:
      type: object
      description: ''
      properties:
        reference:
          type: string
        name:
          type: string
        required_fields_total:
          type: integer
        required_fields_found:
          type: integer
        important_fields_total:
          type: integer
        important_fields_found:
          type: integer
        missing_required_fields:
          type: array
          items:
            type: string
        missing_important_fields:
          type: array
          items:
            type: string
        compatible:
          type: boolean
        recommended:
          type: boolean
      required:
      - compatible
      - important_fields_found
      - important_fields_total
      - missing_important_fields
      - missing_required_fields
      - name
      - recommended
      - reference
      - required_fields_found
      - required_fields_total
    ExtendDeadlineRequestRequest:
      type: object
      description: ''
      properties:
        expires_at:
          type: string
          format: date-time
          description: New expiration date and time for the assignment batch.
      required:
      - expires_at
    ExtendDeadlineResponse:
      type: object
      description: ''
      properties:
        expires_at:
          type: string
          format: date-time
          description: The updated expiration date.
        status:
          type: string
          description: Current status of the batch.
      required:
      - expires_at
      - status
    ExternalLink:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        link:
          type: string
          format: uri
          maxLength: 500
        image:
          type: string
          format: uri
          nullable: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - created
      - link
      - modified
      - name
      - url
      - uuid
      description: ''
    ExternalLinkRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        link:
          type: string
          format: uri
          minLength: 1
          maxLength: 500
        image:
          type: string
          format: binary
          nullable: true
      required:
      - link
      - name
      description: ''
    ExternalNetwork:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        settings:
          type: string
          format: uri
        backend_id:
          type: string
          maxLength: 255
        is_shared:
          type: boolean
        is_default:
          type: boolean
        status:
          type: string
          maxLength: 30
        description:
          type: string
          maxLength: 4096
        subnets:
          type: array
          items:
            $ref: '#/components/schemas/ExternalSubnet'
          readOnly: true
      required: []
    ExternalNetworkResponse:
      type: object
      description: ''
      properties:
        id:
          type: string
        name:
          type: string
        is_shared:
          type: boolean
        subnets:
          type: array
          items:
            $ref: '#/components/schemas/ExternalNetworkSubnetResponse'
      required:
      - id
      - is_shared
      - name
      - subnets
    ExternalNetworkSubnetResponse:
      type: object
      description: ''
      properties:
        id:
          type: string
        name:
          type: string
        cidr:
          type: string
        gateway_ip:
          type: string
        ip_version:
          type: integer
      required:
      - cidr
      - gateway_ip
      - id
      - ip_version
      - name
    ExternalSubnet:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        backend_id:
          type: string
          maxLength: 255
        cidr:
          type: string
          maxLength: 32
        gateway_ip:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          nullable: true
        ip_version:
          type: integer
          maximum: 32767
          minimum: -32768
        enable_dhcp:
          type: boolean
        allocation_pools: {}
        dns_nameservers: {}
        public_ip_range:
          type: string
          description: Public CIDR mapped to this subnet (for carrier-grade NAT overlay)
          maxLength: 32
        description:
          type: string
          maxLength: 4096
      required: []
      description: ''
    FeatureMetadataResponse:
      type: object
      description: ''
      properties:
        features:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: List of feature sections with descriptions
        feature_enums:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: string
          description: Nested feature enum values by section
      required:
      - feature_enums
      - features
    Feedback:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        evaluation:
          type: integer
          maximum: 10
          minimum: 1
        comment:
          type: string
        issue_uuid:
          type: string
          format: uuid
          readOnly: true
        user_full_name:
          type: string
          readOnly: true
        issue_key:
          type: string
          readOnly: true
        issue_summary:
          type: string
          readOnly: true
      required:
      - created
      - evaluation
      - issue_key
      - issue_summary
      - issue_uuid
      - modified
      - state
      - user_full_name
      - uuid
      description: ''
    FetchBillingExportRequestRequest:
      type: object
      description: ''
      properties:
        period_from:
          type: string
          minLength: 1
          description: YYYY-MM format
        period_to:
          type: string
          minLength: 1
          description: YYYY-MM format
        classification:
          type: string
          minLength: 1
      required:
      - period_from
      - period_to
    FetchBillingExportResponse:
      type: object
      description: ''
      properties:
        period_from:
          type: string
        period_to:
          type: string
        classification:
          type: string
        row_count:
          type: integer
        data:
          type: array
          items:
            type: object
            additionalProperties: {}
      required:
      - classification
      - data
      - period_from
      - period_to
      - row_count
    FetchConsumptionRequestRequest:
      type: object
      description: ''
      properties:
        license_reference:
          type: string
          minLength: 1
        period:
          type: string
          minLength: 1
          description: YYYY-MM format
      required:
      - license_reference
      - period
    FetchConsumptionResponse:
      type: object
      description: ''
      properties:
        license_reference:
          type: string
        period:
          type: string
        row_count:
          type: integer
        data:
          type: array
          items:
            type: object
            additionalProperties: {}
      required:
      - data
      - license_reference
      - period
      - row_count
    FetchCustomerArrowDataResponse:
      type: object
      description: ''
      properties:
        customer_mapping_uuid:
          type: string
          format: uuid
        arrow_reference:
          type: string
        arrow_company_name:
          type: string
        waldur_customer_name:
          type: string
        period:
          type: string
        billing_available:
          type: boolean
        billing_lines:
          type: array
          items:
            $ref: '#/components/schemas/ArrowBillingLine'
        billing_total_sell:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
        billing_total_buy:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
        consumption_lines:
          type: array
          items:
            $ref: '#/components/schemas/ArrowConsumptionLine'
        consumption_total_sell:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
        consumption_total_buy:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
        total_customer_resources:
          type: integer
          description: Total number of resources for this customer in Waldur.
        resources_with_backend_id:
          type: integer
          description: Number of resources with backend_id set (Arrow license reference).
        matched_resources:
          type: integer
          description: Number of resources for which consumption was successfully
            fetched.
        error:
          type: string
          nullable: true
      required:
      - arrow_company_name
      - arrow_reference
      - billing_available
      - billing_lines
      - billing_total_buy
      - billing_total_sell
      - consumption_lines
      - consumption_total_buy
      - consumption_total_sell
      - customer_mapping_uuid
      - error
      - matched_resources
      - period
      - resources_with_backend_id
      - total_customer_resources
      - waldur_customer_name
    FetchLicenseInfoRequestRequest:
      type: object
      description: ''
      properties:
        license_reference:
          type: string
          minLength: 1
      required:
      - license_reference
    FetchLicenseInfoResponse:
      type: object
      description: ''
      properties:
        data:
          type: object
          additionalProperties: {}
          description: Raw license data from Arrow API
      required:
      - data
    FinancialReport:
      type: object
      properties:
        name:
          type: string
          maxLength: 150
        uuid:
          type: string
          format: uuid
          readOnly: true
        abbreviation:
          type: string
          maxLength: 12
        created:
          type: string
          format: date-time
          readOnly: true
        accounting_start_date:
          type: string
          format: date-time
          title: Start date of accounting
        registration_code:
          type: string
          maxLength: 160
        agreement_number:
          type: string
          maxLength: 160
        payment_profiles:
          type: array
          items:
            $ref: '#/components/schemas/PaymentProfile'
          readOnly: true
        billing_price_estimate:
          allOf:
          - $ref: '#/components/schemas/NestedPriceEstimate'
          readOnly: true
      required:
      - billing_price_estimate
      - created
      - name
      - payment_profiles
      - uuid
      description: ''
    FinancialReportEmailRequest:
      type: object
      properties:
        emails:
          type: array
          items:
            type: string
            format: email
            minLength: 1
        year:
          type: integer
        month:
          type: integer
      required:
      - emails
      - month
      - year
      description: ''
    Fingerprint:
      type: object
      properties:
        md5:
          type: string
          readOnly: true
          description: MD5 fingerprint of SSH key
        sha256:
          type: string
          readOnly: true
          description: SHA256 fingerprint of SSH key
        sha512:
          type: string
          readOnly: true
          description: SHA512 fingerprint of SSH key
      required: []
      description: ''
    FirecrestJob:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        runtime_state:
          type: string
          maxLength: 100
        file:
          type: string
          format: uri
          title: Batch script file
        user:
          type: string
          format: uri
          readOnly: true
          nullable: true
          description: Reference to user which submitted job
        user_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        user_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
          nullable: true
        report:
          readOnly: true
          nullable: true
          title: Job output
      required: []
    FirecrestJobRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        runtime_state:
          type: string
          maxLength: 100
        file:
          type: string
          format: binary
          title: Batch script file
      required:
      - file
      - name
      - project
      - service_settings
    FlavorResponse:
      type: object
      description: ''
      properties:
        id:
          type: string
        name:
          type: string
        vcpus:
          type: integer
        ram:
          type: integer
          description: RAM in MB
        disk:
          type: integer
          description: Disk in GB
      required:
      - disk
      - id
      - name
      - ram
      - vcpus
    FreeipaProfile:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        username:
          type: string
          description: Letters, numbers and ./+/-/_ characters
          pattern: ^[a-zA-Z0-9_.][a-zA-Z0-9_.-]*[a-zA-Z0-9_.$-]?$
          maxLength: 32
        agreement_date:
          type: string
          format: date-time
          description: Indicates when the user has agreed with the policy.
        is_active:
          type: boolean
          readOnly: true
          title: Active
        user:
          type: string
          format: uri
          readOnly: true
        user_uuid:
          type: string
          format: uuid
          readOnly: true
        user_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        user_full_name:
          type: string
          readOnly: true
      required:
      - is_active
      - user
      - user_full_name
      - user_username
      - user_uuid
      - username
      - uuid
    FreeipaProfileRequest:
      type: object
      description: ''
      properties:
        username:
          type: string
          minLength: 1
          description: Letters, numbers and ./+/-/_ characters
          pattern: ^[a-zA-Z0-9_.][a-zA-Z0-9_.-]*[a-zA-Z0-9_.$-]?$
          maxLength: 32
        agreement_date:
          type: string
          format: date-time
          description: Indicates when the user has agreed with the policy.
      required:
      - username
    FrequencyEnum:
      enum:
      - weekly
      - biweekly
      - monthly
      type: string
      description: ''
    GenderEnum:
      enum:
      - 0
      - 1
      - 2
      - 9
      type: integer
      description: ''
    GenerateAssignmentsRequest:
      type: object
      description: ''
      properties:
        proposal_uuids:
          type: array
          items:
            type: string
            format: uuid
          description: Specific proposal UUIDs to generate assignments for. If empty,
            generates for all submitted proposals needing reviewers.
        reviewers_per_proposal:
          type: integer
          maximum: 20
          minimum: 1
          description: Number of reviewers to assign per proposal. If not specified,
            uses call's minimum_number_of_reviewers setting.
    GenerateAssignmentsResponse:
      type: object
      description: ''
      properties:
        batches_created:
          type: integer
        items_created:
          type: integer
        proposals_processed:
          type: integer
        skipped_proposals:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Proposals that were skipped with reasons
      required:
      - batches_created
      - items_created
      - proposals_processed
      - skipped_proposals
    GenerateSuggestionsRequestRequest:
      type: object
      description: ''
      properties:
        source:
          allOf:
          - $ref: '#/components/schemas/GenerateSuggestionsRequestSourceEnum'
          default: all_proposals
          description: What content to match reviewers against
        proposal_uuids:
          type: array
          items:
            type: string
            format: uuid
          description: Specific proposal UUIDs to match against (for selected_proposals
            source)
        keywords:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 100
          description: Custom keywords to search for (for custom_keywords source)
        keyword_search_mode:
          allOf:
          - $ref: '#/components/schemas/KeywordSearchModeEnum'
          default: expertise_only
          description: How to search for custom keywords
        min_affinity_threshold:
          type: number
          format: double
          maximum: 1.0
          minimum: 0.0
          description: Minimum affinity score for suggestions (0.0-1.0)
    GenerateSuggestionsRequestSourceEnum:
      enum:
      - call_description
      - all_proposals
      - selected_proposals
      - custom_keywords
      type: string
      description: ''
    GenerateSuggestionsResponse:
      type: object
      description: ''
      properties:
        suggestions_created:
          type: integer
        reviewers_evaluated:
          type: integer
        source_used:
          type: string
        suggestions:
          type: array
          items:
            type: string
      required:
      - reviewers_evaluated
      - source_used
      - suggestions
      - suggestions_created
    GlobalUserDataAccessLog:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        timestamp:
          type: string
          format: date-time
        accessor_type:
          $ref: '#/components/schemas/AccessorTypeEnum'
        accessed_fields:
          type: array
          items:
            type: string
        user:
          $ref: '#/components/schemas/TargetUser'
        accessor:
          $ref: '#/components/schemas/AccessorUser'
        ip_address:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          nullable: true
        context:
          type: object
          additionalProperties: {}
      required:
      - accessed_fields
      - accessor
      - accessor_type
      - context
      - ip_address
      - timestamp
      - user
      - uuid
    GoogleCalendar:
      type: object
      properties:
        backend_id:
          type: string
          nullable: true
          maxLength: 255
        public:
          type: boolean
        http_link:
          type: string
          readOnly: true
      required: []
      description: ''
    GoogleCredentials:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        description:
          type: string
          maxLength: 4096
        enable_notifications:
          type: boolean
        customer:
          type: string
          format: uri
        customer_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_image:
          type: string
          format: uri
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        customer_slug:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_country:
          type: string
          readOnly: true
        image:
          type: string
          format: uri
          nullable: true
        organization_groups:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationGroup'
          readOnly: true
        offering_count:
          type: integer
          readOnly: true
        calendar_token:
          type: string
          readOnly: true
        calendar_refresh_token:
          type: string
          readOnly: true
        google_auth_url:
          type: string
          readOnly: true
      required: []
    GroupInvitation:
      type: object
      properties:
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the invitation scope (Customer or Project)
        scope_name:
          type: string
          readOnly: true
          description: Name of the invitation scope
        scope_description:
          type: string
          description: Description of the invitation scope
          readOnly: true
        scope_type:
          type: string
          nullable: true
          readOnly: true
          description: Type of the invitation scope (e.g., 'customer', 'project')
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the customer organization
        customer_name:
          type: string
          readOnly: true
          description: Name of the customer organization
        role_name:
          type: string
          readOnly: true
          description: Name of the role being granted (e.g., 'PROJECT.ADMIN')
        role_description:
          type: string
          readOnly: true
          description: Description of the role being granted
        created_by_full_name:
          type: string
          readOnly: true
          description: Full name of the user who created this invitation
        created_by_username:
          type: string
          readOnly: true
          description: Username of the user who created this invitation
        created_by_image:
          type: string
          format: uri
          readOnly: true
          description: Profile image of the user who created this invitation
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        role:
          type: string
          format: uuid
          description: UUID of the role to grant to the invited user
        created:
          type: string
          format: date-time
          readOnly: true
        is_active:
          type: boolean
          readOnly: true
        is_public:
          type: boolean
          description: Allow non-authenticated users to see and accept this invitation.
            Only staff can create public invitations.
        auto_create_project:
          type: boolean
          description: Create project and grant project permissions instead of customer
            permissions
        auto_approve:
          type: boolean
          description: Automatically approve permission requests from users matching
            email patterns or affiliations
        project_name_template:
          type: string
          nullable: true
          description: Template for project name. Supports {username}, {email}, {full_name}
            variables
          maxLength: 255
        project_role:
          type: string
          format: uuid
          nullable: true
          description: UUID of the project role to grant if auto_create_project is
            enabled
        user_affiliations: {}
        user_email_patterns: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        scope_image:
          type: string
          format: uri
          nullable: true
          readOnly: true
          description: Image URL of the invitation scope (Customer or Project)
        custom_text:
          type: string
          description: Custom description text displayed to users viewing this invitation.
          maxLength: 500
      required:
      - created
      - created_by_full_name
      - created_by_image
      - created_by_username
      - customer_name
      - customer_uuid
      - is_active
      - role
      - role_description
      - role_name
      - scope_description
      - scope_image
      - scope_name
      - scope_type
      - scope_uuid
      - url
      - uuid
      description: ''
    GroupInvitationRequest:
      type: object
      properties:
        role:
          type: string
          format: uuid
          description: UUID of the role to grant to the invited user
        scope:
          type: string
          writeOnly: true
          description: URL of the scope (Customer or Project) for this invitation
        is_public:
          type: boolean
          description: Allow non-authenticated users to see and accept this invitation.
            Only staff can create public invitations.
        auto_create_project:
          type: boolean
          description: Create project and grant project permissions instead of customer
            permissions
        auto_approve:
          type: boolean
          description: Automatically approve permission requests from users matching
            email patterns or affiliations
        project_name_template:
          type: string
          nullable: true
          description: Template for project name. Supports {username}, {email}, {full_name}
            variables
          maxLength: 255
        project_role:
          type: string
          format: uuid
          nullable: true
          description: UUID of the project role to grant if auto_create_project is
            enabled
        user_affiliations: {}
        user_email_patterns: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        custom_text:
          type: string
          description: Custom description text displayed to users viewing this invitation.
          maxLength: 500
      required:
      - role
      - scope
      description: ''
    GroupInvitationUpdate:
      type: object
      properties:
        is_public:
          type: boolean
          description: Allow non-authenticated users to see and accept this invitation.
            Only staff can create public invitations.
        role:
          type: string
          format: uuid
          description: UUID of the role to grant.
        scope:
          type: string
          description: URL of the scope (Customer or Project) for this invitation
        auto_create_project:
          type: boolean
          description: Create project and grant project permissions instead of customer
            permissions
        auto_approve:
          type: boolean
          description: Automatically approve permission requests from users matching
            email patterns or affiliations
        project_name_template:
          type: string
          nullable: true
          description: Template for project name. Supports {username}, {email}, {full_name}
            variables
          maxLength: 255
        project_role:
          type: string
          format: uuid
          nullable: true
          description: UUID of the project role to grant if auto_create_project is
            enabled
        user_affiliations: {}
        user_email_patterns: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        custom_text:
          type: string
          description: Custom description text displayed to users viewing this invitation.
          maxLength: 500
      description: ''
    GroupInvitationUpdateRequest:
      type: object
      properties:
        is_public:
          type: boolean
          description: Allow non-authenticated users to see and accept this invitation.
            Only staff can create public invitations.
        role:
          type: string
          format: uuid
          description: UUID of the role to grant.
        scope:
          type: string
          description: URL of the scope (Customer or Project) for this invitation
        auto_create_project:
          type: boolean
          description: Create project and grant project permissions instead of customer
            permissions
        auto_approve:
          type: boolean
          description: Automatically approve permission requests from users matching
            email patterns or affiliations
        project_name_template:
          type: string
          nullable: true
          description: Template for project name. Supports {username}, {email}, {full_name}
            variables
          maxLength: 255
        project_role:
          type: string
          format: uuid
          nullable: true
          description: UUID of the project role to grant if auto_create_project is
            enabled
        user_affiliations: {}
        user_email_patterns: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        custom_text:
          type: string
          description: Custom description text displayed to users viewing this invitation.
          maxLength: 500
      description: ''
    GrowthPeriodEnum:
      enum:
      - weekly
      - monthly
      type: string
      description: ''
    GuestOsEnum:
      enum:
      - DOS
      - WIN_31
      - WIN_95
      - WIN_98
      - WIN_ME
      - WIN_NT
      - WIN_2000_PRO
      - WIN_2000_SERV
      - WIN_2000_ADV_SERV
      - WIN_XP_HOME
      - WIN_XP_PRO
      - WIN_XP_PRO_64
      - WIN_NET_WEB
      - WIN_NET_STANDARD
      - WIN_NET_ENTERPRISE
      - WIN_NET_DATACENTER
      - WIN_NET_BUSINESS
      - WIN_NET_STANDARD_64
      - WIN_NET_ENTERPRISE_64
      - WIN_LONGHORN
      - WIN_LONGHORN_64
      - WIN_NET_DATACENTER_64
      - WIN_VISTA
      - WIN_VISTA_64
      - WINDOWS_7
      - WINDOWS_7_64
      - WINDOWS_7_SERVER_64
      - WINDOWS_8
      - WINDOWS_8_64
      - WINDOWS_8_SERVER_64
      - WINDOWS_9
      - WINDOWS_9_64
      - WINDOWS_9_SERVER_64
      - WINDOWS_HYPERV
      - FREEBSD
      - FREEBSD_64
      - REDHAT
      - RHEL_2
      - RHEL_3
      - RHEL_3_64
      - RHEL_4
      - RHEL_4_64
      - RHEL_5
      - RHEL_5_64
      - RHEL_6
      - RHEL_6_64
      - RHEL_7
      - RHEL_7_64
      - CENTOS
      - CENTOS_64
      - CENTOS_6
      - CENTOS_6_64
      - CENTOS_7
      - CENTOS_7_64
      - ORACLE_LINUX
      - ORACLE_LINUX_64
      - ORACLE_LINUX_6
      - ORACLE_LINUX_6_64
      - ORACLE_LINUX_7
      - ORACLE_LINUX_7_64
      - SUSE
      - SUSE_64
      - SLES
      - SLES_64
      - SLES_10
      - SLES_10_64
      - SLES_11
      - SLES_11_64
      - SLES_12
      - SLES_12_64
      - NLD_9
      - OES
      - SJDS
      - MANDRAKE
      - MANDRIVA
      - MANDRIVA_64
      - TURBO_LINUX
      - TURBO_LINUX_64
      - UBUNTU
      - UBUNTU_64
      - DEBIAN_4
      - DEBIAN_4_64
      - DEBIAN_5
      - DEBIAN_5_64
      - DEBIAN_6
      - DEBIAN_6_64
      - DEBIAN_7
      - DEBIAN_7_64
      - DEBIAN_8
      - DEBIAN_8_64
      - DEBIAN_9
      - DEBIAN_9_64
      - DEBIAN_10
      - DEBIAN_10_64
      - ASIANUX_3
      - ASIANUX_3_64
      - ASIANUX_4
      - ASIANUX_4_64
      - ASIANUX_5_64
      - ASIANUX_7_64
      - OPENSUSE
      - OPENSUSE_64
      - FEDORA
      - FEDORA_64
      - COREOS_64
      - VMWARE_PHOTON_64
      - OTHER_24X_LINUX
      - OTHER_24X_LINUX_64
      - OTHER_26X_LINUX
      - OTHER_26X_LINUX_64
      - OTHER_3X_LINUX
      - OTHER_3X_LINUX_64
      - OTHER_LINUX
      - GENERIC_LINUX
      - OTHER_LINUX_64
      - SOLARIS_6
      - SOLARIS_7
      - SOLARIS_8
      - SOLARIS_9
      - SOLARIS_10
      - SOLARIS_10_64
      - SOLARIS_11_64
      - OS2
      - ECOMSTATION
      - ECOMSTATION_2
      - NETWARE_4
      - NETWARE_5
      - NETWARE_6
      - OPENSERVER_5
      - OPENSERVER_6
      - UNIXWARE_7
      - DARWIN
      - DARWIN_64
      - DARWIN_10
      - DARWIN_10_64
      - DARWIN_11
      - DARWIN_11_64
      - DARWIN_12_64
      - DARWIN_13_64
      - DARWIN_14_64
      - DARWIN_15_64
      - DARWIN_16_64
      - VMKERNEL
      - VMKERNEL_5
      - VMKERNEL_6
      - VMKERNEL_65
      - OTHER
      - OTHER_64
      type: string
      description: ''
    GuestPowerStateEnum:
      enum:
      - RUNNING
      - SHUTTING_DOWN
      - RESETTING
      - STANDBY
      - NOT_RUNNING
      - UNAVAILABLE
      type: string
      description: ''
    IPMapping:
      type: object
      properties:
        floating_ip:
          type: string
          description: Floating IP
        external_ip:
          type: string
          description: External IP
      required: []
      description: ''
    IPMappingRequest:
      type: object
      properties:
        floating_ip:
          type: string
          minLength: 1
          description: Floating IP
        external_ip:
          type: string
          minLength: 1
          description: External IP
      required:
      - external_ip
      - floating_ip
      description: ''
    ISDUserCount:
      type: object
      description: ''
      properties:
        isd:
          type: string
        user_count:
          type: integer
        stale_user_count:
          type: integer
        oldest_sync:
          type: string
          nullable: true
      required:
      - isd
      - oldest_sync
      - stale_user_count
      - user_count
    IdentityBridgeRemoveRequest:
      type: object
      properties:
        username:
          type: string
          minLength: 1
          description: CUID / username of the user to remove from the ISD.
          maxLength: 128
        source:
          type: string
          minLength: 1
          description: ISD source identifier, e.g. 'isd:puhuri'. Must match ^[a-z]+:[a-zA-Z0-9._-]+$.
          maxLength: 100
      required:
      - source
      - username
      description: ''
    IdentityBridgeRemoveResponse:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        deactivated:
          type: boolean
      required:
      - deactivated
      - uuid
      description: ''
    IdentityBridgeRequestRequest:
      type: object
      properties:
        username:
          type: string
          minLength: 1
          description: CUID / username of the user to create or update.
          maxLength: 128
        source:
          type: string
          minLength: 1
          description: ISD source identifier, e.g. 'isd:puhuri'. Must match ^[a-z]+:[a-zA-Z0-9._-]+$.
          maxLength: 100
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
        email:
          type: string
          format: email
        organization:
          type: string
          maxLength: 255
        affiliations:
          type: array
          items:
            type: string
            minLength: 1
        civil_number:
          type: string
          maxLength: 50
        phone_number:
          type: string
          maxLength: 255
        identity_source:
          type: string
          maxLength: 50
        gender:
          type: integer
          nullable: true
        personal_title:
          type: string
          maxLength: 50
        birth_date:
          type: string
          format: date
          nullable: true
        place_of_birth:
          type: string
          maxLength: 255
        country_of_residence:
          type: string
          maxLength: 2
        nationality:
          type: string
          maxLength: 2
        nationalities:
          type: array
          items:
            type: string
            minLength: 1
        organization_country:
          type: string
          maxLength: 2
        organization_type:
          type: string
          maxLength: 255
        eduperson_assurance:
          type: array
          items:
            type: string
            minLength: 1
      required:
      - source
      - username
      description: ''
    IdentityBridgeResponse:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        created:
          type: boolean
        updated_fields:
          type: array
          items:
            type: string
      required:
      - created
      - updated_fields
      - uuid
      description: ''
    IdentityBridgeStats:
      type: object
      description: ''
      properties:
        enabled:
          type: boolean
        deactivation_policy:
          type: string
        allowed_attributes:
          type: array
          items:
            type: string
        total_federated_users:
          type: integer
        total_active_federated_users:
          type: integer
        users_per_isd:
          type: array
          items:
            $ref: '#/components/schemas/ISDUserCount'
        stale_threshold_days:
          type: integer
        identity_managers:
          type: array
          items:
            $ref: '#/components/schemas/IdentityManager'
      required:
      - allowed_attributes
      - deactivation_policy
      - enabled
      - identity_managers
      - stale_threshold_days
      - total_active_federated_users
      - total_federated_users
      - users_per_isd
    IdentityBridgeUserStatus:
      type: object
      description: ''
      properties:
        active_isds:
          type: array
          items:
            type: string
        managed_isds:
          type: array
          items:
            type: string
        attribute_sources:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/AttributeSourceDetail'
        stale_attributes:
          type: array
          items:
            type: string
        effective_bridge_fields:
          type: array
          items:
            type: string
        is_federated:
          type: boolean
      required:
      - active_isds
      - attribute_sources
      - effective_bridge_fields
      - is_federated
      - managed_isds
      - stale_attributes
    IdentityManager:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        full_name:
          type: string
        managed_isds:
          type: array
          items:
            type: string
      required:
      - full_name
      - managed_isds
      - uuid
    IdentityProvider:
      type: object
      properties:
        provider:
          type: string
          maxLength: 32
        is_active:
          type: boolean
        client_id:
          type: string
          description: ID of application used for OAuth authentication.
          maxLength: 200
        client_secret:
          type: string
          description: Application secret key.
          maxLength: 200
        verify_ssl:
          type: boolean
        enable_post_logout_redirect:
          type: boolean
        enable_pkce:
          type: boolean
        discovery_url:
          type: string
          description: The endpoint for endpoint discovery.
          maxLength: 200
        userinfo_url:
          type: string
          readOnly: true
          description: The endpoint for fetching user info.
        token_url:
          type: string
          readOnly: true
          description: The endpoint for obtaining auth token.
        auth_url:
          type: string
          readOnly: true
          description: The endpoint for authorization request flow.
        logout_url:
          type: string
          readOnly: true
          description: The endpoint used to redirect after sign-out.
        label:
          type: string
          description: Human-readable identity provider is label.
          maxLength: 200
        management_url:
          type: string
          description: The endpoint for user details management.
          maxLength: 200
        protected_fields: {}
        extra_scope:
          type: string
          nullable: true
          description: Space-separated list of scopes to request during authentication.
          maxLength: 200
        user_field:
          type: string
          description: The field in Waldur User model to be used for looking up the
            user
          maxLength: 100
        user_claim:
          type: string
          description: The OIDC claim from the userinfo endpoint to be used as the
            value for the lookup field.
          maxLength: 100
        attribute_mapping:
          description: 'A JSON object mapping Waldur User model fields to OIDC claims.
            Example: {"first_name": "given_name", "last_name": "family_name", "email":
            "email"}'
        extra_fields:
          type: string
          nullable: true
          description: Space-separated list of extra fields to persist.
          maxLength: 200
        allowed_redirects:
          description: 'List of allowed redirect URLs for OAuth authentication. URLs
            must be exact matches (origin only: scheme + domain + port). HTTPS required
            except for localhost. No wildcards, paths, query params, or fragments.
            Example: ["https://portal1.example.com", "https://portal2.example.com:8443"].
            If empty, falls back to HOMEPORT_URL setting.'
      required:
      - auth_url
      - client_id
      - client_secret
      - discovery_url
      - label
      - logout_url
      - provider
      - token_url
      - userinfo_url
      description: ''
    IdentityProviderRequest:
      type: object
      properties:
        provider:
          type: string
          minLength: 1
          maxLength: 32
        is_active:
          type: boolean
        client_id:
          type: string
          minLength: 1
          description: ID of application used for OAuth authentication.
          maxLength: 200
        client_secret:
          type: string
          minLength: 1
          description: Application secret key.
          maxLength: 200
        verify_ssl:
          type: boolean
        enable_post_logout_redirect:
          type: boolean
        enable_pkce:
          type: boolean
        discovery_url:
          type: string
          minLength: 1
          description: The endpoint for endpoint discovery.
          maxLength: 200
        label:
          type: string
          minLength: 1
          description: Human-readable identity provider is label.
          maxLength: 200
        management_url:
          type: string
          description: The endpoint for user details management.
          maxLength: 200
        protected_fields: {}
        extra_scope:
          type: string
          nullable: true
          description: Space-separated list of scopes to request during authentication.
          maxLength: 200
        user_field:
          type: string
          minLength: 1
          description: The field in Waldur User model to be used for looking up the
            user
          maxLength: 100
        user_claim:
          type: string
          minLength: 1
          description: The OIDC claim from the userinfo endpoint to be used as the
            value for the lookup field.
          maxLength: 100
        attribute_mapping:
          description: 'A JSON object mapping Waldur User model fields to OIDC claims.
            Example: {"first_name": "given_name", "last_name": "family_name", "email":
            "email"}'
        extra_fields:
          type: string
          nullable: true
          description: Space-separated list of extra fields to persist.
          maxLength: 200
        allowed_redirects:
          description: 'List of allowed redirect URLs for OAuth authentication. URLs
            must be exact matches (origin only: scheme + domain + port). HTTPS required
            except for localhost. No wildcards, paths, query params, or fragments.
            Example: ["https://portal1.example.com", "https://portal2.example.com:8443"].
            If empty, falls back to HOMEPORT_URL setting.'
      required:
      - client_id
      - client_secret
      - discovery_url
      - label
      - provider
      description: ''
    ImageCreateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        min_ram:
          type: integer
          default: 0
        min_disk:
          type: integer
          default: 0
        disk_format:
          allOf:
          - $ref: '#/components/schemas/DiskFormatEnum'
          default: qcow2
        container_format:
          allOf:
          - $ref: '#/components/schemas/ContainerFormatEnum'
          default: bare
        visibility:
          allOf:
          - $ref: '#/components/schemas/VisibilityEnum'
          default: private
      required:
      - name
      description: ''
    ImageCreateResponse:
      type: object
      properties:
        image_id:
          type: string
          format: uuid
        name:
          type: string
        status:
          type: string
        upload_url:
          type: string
      required:
      - image_id
      - name
      - status
      - upload_url
      description: ''
    ImageUploadResponse:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
      required:
      - message
      - status
      description: ''
    ImpactLevelDisplayEnum:
      enum:
      - No impact
      - Degraded performance
      - Partial outage
      - Full outage
      type: string
      description: ''
    ImpactLevelEnum:
      enum:
      - 1
      - 2
      - 3
      - 4
      type: integer
      description: ''
    ImportLicenseRequestRequest:
      type: object
      description: ''
      properties:
        license_reference:
          type: string
          minLength: 1
          description: Arrow license reference (e.g., XSP12345). Will be set as backend_id.
        license_name:
          type: string
          minLength: 1
          description: Name for the new resource. Defaults to license_reference if
            not provided.
        offering_uuid:
          type: string
          format: uuid
          description: UUID of the Waldur offering to create the resource under.
        project_uuid:
          type: string
          format: uuid
          description: UUID of the project to create the resource in.
      required:
      - license_reference
      - offering_uuid
      - project_uuid
    ImportLicenseResponse:
      type: object
      description: ''
      properties:
        resource_uuid:
          type: string
          format: uuid
        resource_name:
          type: string
        license_reference:
          type: string
        offering_name:
          type: string
        project_name:
          type: string
        success:
          type: boolean
      required:
      - license_reference
      - offering_name
      - project_name
      - resource_name
      - resource_uuid
      - success
    ImportPublicationsRequest:
      type: object
      description: ''
      properties:
        source:
          allOf:
          - $ref: '#/components/schemas/ImportPublicationsSourceEnum'
          default: orcid
          description: Source to import publications from
        doi:
          type: string
          description: DOI of publication to import (required if source is 'doi')
    ImportPublicationsSourceEnum:
      enum:
      - orcid
      - doi
      type: string
      description: ''
    ImportResourceRequest:
      type: object
      properties:
        backend_id:
          type: string
          minLength: 1
          description: Backend identifier of the resource
        project:
          type: string
          format: uuid
          description: Target project for the resource
        plan:
          type: string
          format: uuid
        additional_details:
          writeOnly: true
          nullable: true
          default: {}
      required:
      - backend_id
      - project
      description: ''
    ImportUsageItemRequest:
      type: object
      properties:
        customer_name:
          type: string
        customer_uuid:
          type: string
          format: uuid
        name:
          type: string
          minLength: 1
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        article_code:
          type: string
        service_provider_name:
          type: string
        offering_name:
          type: string
        plan_name:
          type: string
      required:
      - name
      - unit_price
      description: ''
    ImportUsageRequest:
      type: object
      properties:
        year:
          type: integer
          maximum: 2100
          minimum: 2000
        month:
          type: integer
          maximum: 12
          minimum: 1
        items:
          type: array
          items:
            $ref: '#/components/schemas/ImportUsageItemRequest'
      required:
      - items
      - month
      - year
      description: ''
    ImportUsageResponse:
      type: object
      properties:
        created:
          type: integer
        skipped:
          type: integer
        errors:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
      required:
      - created
      - errors
      - skipped
      description: ''
    ImportableResource:
      type: object
      properties:
        backend_id:
          type: string
          description: Backend identifier of the resource
        name:
          type: string
          description: Name of the resource
        type:
          type: string
          description: Type of the resource
        description:
          type: string
          description: Description of the resource
      required:
      - backend_id
      - description
      - name
      - type
      description: ''
    InstanceFlavorChangeRequest:
      type: object
      properties:
        flavor:
          type: string
          format: uri
          description: The new flavor to use for the instance. Flavor change can only
            be done when instance is stopped.
      required:
      - flavor
      description: ''
    IntegrationStatus:
      type: object
      properties:
        agent_type:
          allOf:
          - $ref: '#/components/schemas/AgentTypeEnum'
          readOnly: true
        status:
          type: string
          readOnly: true
        last_request_timestamp:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          title: Time of latest backend request
        service_name:
          type: string
          maxLength: 150
      required: []
      description: ''
    IntegrationStatusDetails:
      type: object
      properties:
        status:
          type: string
          readOnly: true
        last_request_timestamp:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          title: Time of latest backend request
        offering:
          type: string
          format: uri
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - last_request_timestamp
      - offering
      - status
      - url
      description: ''
    Invitation:
      type: object
      properties:
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the invitation scope (Customer or Project)
        scope_name:
          type: string
          readOnly: true
          description: Name of the invitation scope
        scope_description:
          type: string
          description: Description of the invitation scope
          readOnly: true
        scope_type:
          type: string
          nullable: true
          readOnly: true
          description: Type of the invitation scope (e.g., 'customer', 'project')
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the customer organization
        customer_name:
          type: string
          readOnly: true
          description: Name of the customer organization
        role_name:
          type: string
          readOnly: true
          description: Name of the role being granted (e.g., 'PROJECT.ADMIN')
        role_description:
          type: string
          readOnly: true
          description: Description of the role being granted
        created_by_full_name:
          type: string
          readOnly: true
          description: Full name of the user who created this invitation
        created_by_username:
          type: string
          readOnly: true
          description: Username of the user who created this invitation
        created_by_image:
          type: string
          format: uri
          readOnly: true
          description: Profile image of the user who created this invitation
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        role:
          type: string
          format: uuid
          description: UUID of the role to grant to the invited user
        created:
          type: string
          format: date-time
          readOnly: true
        expires:
          type: string
          format: date-time
          readOnly: true
          description: Expiration date and time of the invitation
        full_name:
          type: string
          maxLength: 100
        native_name:
          type: string
          maxLength: 100
        phone_number:
          type: string
          maxLength: 255
        organization:
          type: string
          maxLength: 255
        job_title:
          type: string
          maxLength: 120
        email:
          type: string
          format: email
          description: Invitation link will be sent to this email. Note that user
            can accept invitation with different email.
          maxLength: 254
        civil_number:
          type: string
          description: Civil number of invited user. If civil number is not defined
            any user can accept invitation.
          maxLength: 50
        state:
          allOf:
          - $ref: '#/components/schemas/InvitationStateEnum'
          readOnly: true
        error_message:
          type: string
          readOnly: true
        extra_invitation_text:
          type: string
          maxLength: 250
        execution_state:
          allOf:
          - $ref: '#/components/schemas/ExecutionStateEnum'
          readOnly: true
      required:
      - created
      - created_by_full_name
      - created_by_image
      - created_by_username
      - customer_name
      - customer_uuid
      - email
      - error_message
      - execution_state
      - expires
      - role
      - role_description
      - role_name
      - scope_description
      - scope_name
      - scope_type
      - scope_uuid
      - state
      - url
      - uuid
      description: ''
    InvitationAcceptError:
      type: object
      description: ''
      properties:
        error:
          type: string
        message:
          type: string
        profile_url:
          type: string
      required:
      - error
      - message
    InvitationAcceptRequest:
      type: object
      description: ''
      properties:
        declared_conflicts:
          type: array
          items:
            $ref: '#/components/schemas/SelfDeclaredConflictRequest'
          description: Optional list of self-declared conflicts with proposals. Each
            conflict creates a ConflictOfInterest record with detection_method='self_disclosed'.
    InvitationAcceptResponse:
      type: object
      description: ''
      properties:
        detail:
          type: string
        declared_conflicts:
          type: array
          items:
            type: string
            format: uuid
          description: UUIDs of created conflict records
      required:
      - detail
    InvitationAuthError:
      type: object
      description: ''
      properties:
        error:
          type: string
      required:
      - error
    InvitationCOIConfiguration:
      type: object
      description: ''
      properties:
        recusal_required_types:
          type: array
          items:
            type: string
          description: COI types requiring automatic recusal
        management_allowed_types:
          type: array
          items:
            type: string
          description: COI types where a management plan can be submitted
        disclosure_only_types:
          type: array
          items:
            type: string
          description: COI types that only need disclosure
        proposal_disclosure_level:
          type: string
          description: How much proposal info is disclosed to reviewers
      required:
      - disclosure_only_types
      - management_allowed_types
      - proposal_disclosure_level
      - recusal_required_types
    InvitationCheck:
      type: object
      properties:
        email:
          type: string
          format: email
          description: Email address to check for existing invitations
        civil_number_required:
          type: boolean
          description: Whether civil number verification is required
      required:
      - email
      description: ''
    InvitationDeclineRequest:
      type: object
      description: ''
      properties:
        reason:
          type: string
          minLength: 1
          description: Reason for declining the invitation
      required:
      - reason
    InvitationDeclineResponse:
      type: object
      description: ''
      properties:
        detail:
          type: string
      required:
      - detail
    InvitationDuplicate:
      type: object
      properties:
        email:
          type: string
          format: email
        role:
          type: string
          format: uuid
        existing_invitation_uuid:
          type: string
          format: uuid
          nullable: true
      required:
      - email
      - role
      description: ''
    InvitationDuplicateCheckItemRequest:
      type: object
      properties:
        email:
          type: string
          format: email
          minLength: 1
        role:
          type: string
          format: uuid
          description: UUID of the role to grant to the invited user
      required:
      - email
      - role
      description: ''
    InvitationDuplicateCheckRequest:
      type: object
      properties:
        scope:
          type: string
          description: URL of the scope (Customer or Project) for this invitation
            list
        invitations:
          type: array
          items:
            $ref: '#/components/schemas/InvitationDuplicateCheckItemRequest'
      required:
      - invitations
      - scope
      description: ''
    InvitationDuplicateCheckResponse:
      type: object
      properties:
        duplicates:
          type: array
          items:
            $ref: '#/components/schemas/InvitationDuplicate'
      required:
      - duplicates
      description: ''
    InvitationProposalDisclosureEnum:
      enum:
      - titles_only
      - titles_and_summaries
      - full_details
      type: string
      description: ''
    InvitationProposalSummary:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
        summary:
          type: string
          nullable: true
      required:
      - name
      - uuid
    InvitationRequest:
      type: object
      properties:
        role:
          type: string
          format: uuid
          description: UUID of the role to grant to the invited user
        scope:
          type: string
          writeOnly: true
          description: URL of the scope (Customer or Project) for this invitation
        full_name:
          type: string
          maxLength: 100
        native_name:
          type: string
          maxLength: 100
        phone_number:
          type: string
          maxLength: 255
        organization:
          type: string
          maxLength: 255
        job_title:
          type: string
          maxLength: 120
        email:
          type: string
          format: email
          minLength: 1
          description: Invitation link will be sent to this email. Note that user
            can accept invitation with different email.
          maxLength: 254
        civil_number:
          type: string
          description: Civil number of invited user. If civil number is not defined
            any user can accept invitation.
          maxLength: 50
        extra_invitation_text:
          type: string
          maxLength: 250
      required:
      - email
      - role
      - scope
      description: ''
    InvitationState:
      enum:
      - project
      - requested
      - rejected
      - pending
      - accepted
      - canceled
      - expired
      type: string
      description: ''
    InvitationStateEnum:
      enum:
      - project
      - requested
      - rejected
      - pending
      - accepted
      - canceled
      - expired
      type: string
      description: ''
    InvitationStatusEnum:
      enum:
      - pending
      - accepted
      - declined
      - expired
      type: string
      description: ''
    InvitationUpdate:
      type: object
      properties:
        email:
          type: string
          format: email
          description: Invitation link will be sent to this email. Note that user
            can accept invitation with different email.
          maxLength: 254
        role:
          type: string
          format: uuid
          description: UUID of the new role to assign. Must be compatible with the
            invitation scope.
      required:
      - email
      description: ''
    InvitationUpdateRequest:
      type: object
      properties:
        email:
          type: string
          format: email
          minLength: 1
          description: Invitation link will be sent to this email. Note that user
            can accept invitation with different email.
          maxLength: 254
        role:
          type: string
          format: uuid
          description: UUID of the new role to assign. Must be compatible with the
            invitation scope.
      required:
      - email
      description: ''
    Invoice:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        number:
          type: integer
          readOnly: true
        customer:
          type: string
          format: uri
          title: Organization
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        tax:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        total:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        state:
          $ref: '#/components/schemas/InvoiceStateEnum'
        year:
          type: integer
          maximum: 32767
          minimum: 0
        month:
          type: integer
          maximum: 12
          minimum: 1
        issuer_details:
          allOf:
          - $ref: '#/components/schemas/CustomerDetails'
          readOnly: true
        invoice_date:
          type: string
          format: date
          nullable: true
          description: Date then invoice moved from state pending to created.
        due_date:
          type: string
          format: date
        customer_details:
          $ref: '#/components/schemas/CustomerDetails'
        items:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceItem'
          readOnly: true
        backend_id:
          type: string
          maxLength: 255
        payment_url:
          type: string
          format: uri
          description: URL for initiating payment via payment gateway.
          maxLength: 200
        reference_number:
          type: string
          description: Reference number associated with the invoice.
          maxLength: 300
        compensations:
          type: number
          format: double
          readOnly: true
        incurred_costs:
          type: number
          format: double
          readOnly: true
      required: []
    InvoiceCost:
      type: object
      properties:
        price:
          type: number
          format: double
          readOnly: true
        year:
          type: integer
          readOnly: true
        month:
          type: integer
          readOnly: true
      required:
      - month
      - price
      - year
      description: ''
    InvoiceGrowth:
      type: object
      properties:
        periods:
          type: array
          items:
            type: string
          readOnly: true
        total_periods:
          type: array
          items:
            type: number
            format: double
          readOnly: true
        other_periods:
          type: array
          items:
            type: number
            format: double
          readOnly: true
        customer_periods:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceGrowthCustomerPeriod'
      required:
      - customer_periods
      - other_periods
      - periods
      - total_periods
      description: ''
    InvoiceGrowthCustomerPeriod:
      type: object
      properties:
        name:
          type: string
          readOnly: true
        periods:
          type: array
          items:
            type: number
            format: double
          readOnly: true
      required:
      - name
      - periods
      description: ''
    InvoiceItem:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
        price:
          type: number
          format: double
          readOnly: true
        tax:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        total:
          type: string
          format: decimal
          pattern: ^-?\d{0,20}(?:\.\d{0,2})?$
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        unit:
          $ref: '#/components/schemas/BillingUnit'
        factor:
          type: integer
          readOnly: true
        measured_unit:
          type: string
          readOnly: true
        start:
          type: string
          format: date-time
          description: Date and time when item usage has started.
        end:
          type: string
          format: date-time
          description: Date and time when item usage has ended.
        article_code:
          type: string
          maxLength: 30
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        details:
          $ref: '#/components/schemas/InvoiceItemDetails'
        resource:
          type: string
          format: uri
          nullable: true
        resource_uuid:
          type: string
          format: uuid
          readOnly: true
        resource_name:
          type: string
          readOnly: true
        billing_type:
          type: string
          readOnly: true
        backend_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        credit:
          type: boolean
          readOnly: true
      required: []
      description: ''
    InvoiceItemCompensation:
      type: object
      properties:
        offering_component_name:
          type: string
          description: Name of the offering component for compensation
      required:
      - offering_component_name
      description: ''
    InvoiceItemCompensationRequest:
      type: object
      properties:
        offering_component_name:
          type: string
          minLength: 1
          description: Name of the offering component for compensation
      required:
      - offering_component_name
      description: ''
    InvoiceItemDetail:
      type: object
      properties:
        invoice:
          type: string
          format: uri
        resource:
          type: string
          format: uri
          nullable: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        article_code:
          type: string
          maxLength: 30
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        unit:
          $ref: '#/components/schemas/BillingUnit'
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          maxLength: 30
        name:
          type: string
        start:
          type: string
          format: date-time
          description: Date and time when item usage has started.
        end:
          type: string
          format: date-time
          description: Date and time when item usage has ended.
        price:
          type: number
          format: double
          readOnly: true
        details:
          description: Stores data about scope
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_name:
          type: string
          nullable: true
          readOnly: true
        offering_component_type:
          type: string
          nullable: true
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        project_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
      required:
      - customer_name
      - customer_uuid
      - invoice
      - offering_component_type
      - offering_name
      - offering_uuid
      - price
      - project_name
      - project_uuid
      - uuid
      description: ''
    InvoiceItemDetails:
      type: object
      properties:
        resource_name:
          type: string
          description: Name of the marketplace resource
        resource_uuid:
          type: string
          format: uuid
          description: UUID of the marketplace resource
        plan_name:
          type: string
          description: Name of the pricing plan
        plan_uuid:
          type: string
          format: uuid
          description: UUID of the pricing plan
        offering_type:
          type: string
          description: Type of the offering
        offering_name:
          type: string
          description: Name of the offering
        offering_uuid:
          type: string
          format: uuid
          description: UUID of the offering
        service_provider_name:
          type: string
          description: Name of the service provider
        service_provider_uuid:
          type: string
          format: uuid
          description: UUID of the service provider
        plan_component_id:
          type: integer
          description: ID of the plan component
        offering_component_type:
          type: string
          description: Type of the offering component
        offering_component_name:
          type: string
          description: Name of the offering component
        resource_limit_periods:
          type: array
          items:
            $ref: '#/components/schemas/ResourceLimitPeriod'
          description: List of resource limit periods for this invoice item
      required: []
      description: ''
    InvoiceItemMigrateTo:
      type: object
      properties:
        invoice:
          type: string
          format: uri
      required:
      - invoice
      description: ''
    InvoiceItemMigrateToRequest:
      type: object
      properties:
        invoice:
          type: string
          format: uri
      required:
      - invoice
      description: ''
    InvoiceItemTotalPrice:
      type: object
      properties:
        total_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          description: Total price for the invoice item
      required:
      - total_price
      description: ''
    InvoiceItemUpdate:
      type: object
      properties:
        article_code:
          type: string
          maxLength: 30
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        start:
          type: string
          format: date-time
          description: Date and time when item usage has started.
        end:
          type: string
          format: date-time
          description: Date and time when item usage has ended.
      description: ''
    InvoiceItemUpdateRequest:
      type: object
      properties:
        article_code:
          type: string
          maxLength: 30
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        start:
          type: string
          format: date-time
          description: Date and time when item usage has started.
        end:
          type: string
          format: date-time
          description: Date and time when item usage has ended.
      description: ''
    InvoicePriceSourceEnum:
      enum:
      - sell
      - buy
      type: string
      description: ''
    InvoiceStateEnum:
      enum:
      - pending
      - pending_finalization
      - created
      - paid
      - canceled
      type: string
      description: ''
    InvoiceStatsOffering:
      type: object
      properties:
        offering_name:
          type: string
          readOnly: true
        aggregated_price:
          type: number
          format: double
          readOnly: true
        aggregated_tax:
          type: number
          format: double
          readOnly: true
        aggregated_total:
          type: number
          format: double
          readOnly: true
        service_category_title:
          type: string
          readOnly: true
        service_provider_name:
          type: string
          readOnly: true
        service_provider_uuid:
          type: string
          format: uuid
          readOnly: true
      required:
      - aggregated_price
      - aggregated_tax
      - aggregated_total
      - offering_name
      - service_category_title
      - service_provider_name
      - service_provider_uuid
      description: ''
    Issue:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        type:
          type: string
        key:
          type: string
          readOnly: true
        backend_id:
          type: string
          readOnly: true
          nullable: true
        backend_name:
          type: string
          readOnly: true
          nullable: true
        remote_id:
          type: string
          nullable: true
          maxLength: 255
        link:
          type: string
          format: uri
          readOnly: true
          description: Link to issue in support system.
        summary:
          type: string
          maxLength: 255
        description:
          type: string
        status:
          type: string
          readOnly: true
        resolution:
          type: string
          readOnly: true
        priority:
          type: string
          maxLength: 255
        caller:
          type: string
          format: uri
          nullable: true
        caller_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        caller_full_name:
          type: string
          readOnly: true
          nullable: true
        reporter:
          type: string
          format: uri
          readOnly: true
        reporter_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        reporter_name:
          type: string
          readOnly: true
          nullable: true
        assignee:
          type: string
          format: uri
          nullable: true
        assignee_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        assignee_name:
          type: string
          readOnly: true
          nullable: true
        customer:
          type: string
          format: uri
          nullable: true
          title: Organization
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        customer_name:
          type: string
          readOnly: true
          nullable: true
        project:
          type: string
          format: uri
          nullable: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        project_name:
          type: string
          readOnly: true
          nullable: true
        resource:
          type: string
        resource_type:
          type: string
          readOnly: true
        resource_name:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        template:
          type: string
          format: uri
          nullable: true
        feedback:
          allOf:
          - $ref: '#/components/schemas/NestedFeedback'
          readOnly: true
          nullable: true
        resolved:
          type: boolean
          nullable: true
          readOnly: true
        update_is_available:
          type: boolean
          readOnly: true
        destroy_is_available:
          type: boolean
          readOnly: true
        add_comment_is_available:
          type: boolean
          readOnly: true
        add_attachment_is_available:
          type: boolean
          readOnly: true
        processing_log:
          readOnly: true
          description: Internal processing log for debugging order lifecycle events.
            Visible only to staff.
        order_uuid:
          type: string
          nullable: true
          description: Return order UUID if the issue's resource is an Order.
          readOnly: true
        order_project_uuid:
          type: string
          nullable: true
          description: Return order's project UUID if the issue's resource is an Order.
          readOnly: true
        order_customer_uuid:
          type: string
          nullable: true
          description: Return order's customer UUID if the issue's resource is an
            Order.
          readOnly: true
        order_resource_name:
          type: string
          nullable: true
          description: Return order's resource name if the issue's resource is an
            Order.
          readOnly: true
      required:
      - add_attachment_is_available
      - add_comment_is_available
      - assignee_name
      - assignee_uuid
      - backend_id
      - backend_name
      - caller_full_name
      - caller_uuid
      - created
      - customer_name
      - customer_uuid
      - destroy_is_available
      - feedback
      - key
      - link
      - modified
      - order_customer_uuid
      - order_project_uuid
      - order_resource_name
      - order_uuid
      - processing_log
      - project_name
      - project_uuid
      - reporter
      - reporter_name
      - reporter_uuid
      - resolution
      - resolved
      - resource_name
      - resource_type
      - status
      - summary
      - type
      - update_is_available
      - url
      - uuid
    IssueReference:
      type: object
      properties:
        key:
          type: string
          readOnly: true
        uuid:
          type: string
          readOnly: true
      required: []
      description: ''
    IssueRequest:
      type: object
      description: ''
      properties:
        type:
          type: string
          minLength: 1
        remote_id:
          type: string
          nullable: true
          maxLength: 255
        summary:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        priority:
          type: string
          maxLength: 255
        caller:
          type: string
          format: uri
          nullable: true
        assignee:
          type: string
          format: uri
          nullable: true
        customer:
          type: string
          format: uri
          nullable: true
          title: Organization
        project:
          type: string
          format: uri
          nullable: true
        resource:
          type: string
        is_reported_manually:
          type: boolean
          writeOnly: true
          default: false
          description: Set true if issue is created by regular user via portal.
        template:
          type: string
          format: uri
          nullable: true
      required:
      - summary
      - type
    IssueStatus:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          description: Status name in Jira.
          maxLength: 255
        type:
          allOf:
          - $ref: '#/components/schemas/IssueStatusType'
          minimum: -2147483648
          maximum: 2147483647
        type_display:
          type: string
          readOnly: true
      required:
      - name
      - type_display
      - url
      - uuid
      description: ''
    IssueStatusCreate:
      type: object
      description: ''
      properties:
        name:
          type: string
          description: Status name in Jira.
          maxLength: 255
        type:
          allOf:
          - $ref: '#/components/schemas/IssueStatusType'
          minimum: -2147483648
          maximum: 2147483647
      required:
      - name
    IssueStatusCreateRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          description: Status name in Jira.
          maxLength: 255
        type:
          allOf:
          - $ref: '#/components/schemas/IssueStatusType'
          minimum: -2147483648
          maximum: 2147483647
      required:
      - name
    IssueStatusType:
      enum:
      - 0
      - 1
      type: integer
      description: ''
    IssueTypeEnum:
      enum:
      - INFORMATIONAL
      - SERVICE_REQUEST
      - CHANGE_REQUEST
      - INCIDENT
      type: string
      description: ''
    JiraChangelog:
      type: object
      properties:
        items:
          type: array
          items: {}
          description: List of changelog items
      required:
      - items
      description: ''
    JiraChangelogRequest:
      type: object
      properties:
        items:
          type: array
          items: {}
          description: List of changelog items
      required:
      - items
      description: ''
    JiraComment:
      type: object
      properties:
        id:
          type: string
          description: Jira comment ID
      required:
      - id
      description: ''
    JiraCommentRequest:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          description: Jira comment ID
      required:
      - id
      description: ''
    JiraIssue:
      type: object
      properties:
        key:
          type: string
          description: Jira issue key
        fields:
          $ref: '#/components/schemas/JiraIssueFields'
      required:
      - fields
      - key
      description: ''
    JiraIssueFields:
      type: object
      properties:
        project:
          $ref: '#/components/schemas/JiraIssueProject'
        comment:
          type: object
          additionalProperties: {}
      required:
      - project
      description: ''
    JiraIssueFieldsRequest:
      type: object
      properties:
        project:
          $ref: '#/components/schemas/JiraIssueProjectRequest'
        comment:
          type: object
          additionalProperties: {}
      required:
      - project
      description: ''
    JiraIssueProject:
      type: object
      properties:
        id:
          type: string
          description: Jira field ID
        name:
          type: string
          description: Jira field name
        key:
          type: string
          description: Jira project key
      required:
      - id
      - key
      - name
      description: ''
    JiraIssueProjectRequest:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          description: Jira field ID
        name:
          type: string
          minLength: 1
          description: Jira field name
        key:
          type: string
          minLength: 1
          description: Jira project key
      required:
      - id
      - key
      - name
      description: ''
    JiraIssueRequest:
      type: object
      properties:
        key:
          type: string
          minLength: 1
          description: Jira issue key
        fields:
          $ref: '#/components/schemas/JiraIssueFieldsRequest'
      required:
      - fields
      - key
      description: ''
    K8sDefaultConfiguration:
      type: object
      description: ''
      properties:
        default_controller_vcpus:
          type: integer
          maximum: 64
          minimum: 1
        default_controller_ram_gb:
          type: integer
          maximum: 128
          minimum: 1
        default_controller_system_disk_gb:
          type: integer
          maximum: 500
          minimum: 1
        default_controller_etcd_disk_gb:
          type: integer
          maximum: 1000
          minimum: 1
        default_lb_vcpus:
          type: integer
          maximum: 32
          minimum: 1
        default_lb_ram_gb:
          type: integer
          maximum: 256
          minimum: 1
        default_lb_system_disk_gb:
          type: integer
          maximum: 500
          minimum: 1
        default_lb_logs_disk_gb:
          type: integer
          maximum: 2000
          minimum: 1
        minimal_worker_vcpus:
          type: integer
          maximum: 32
          minimum: 1
        minimal_worker_ram_gb:
          type: integer
          maximum: 64
          minimum: 1
        default_worker_data_disk_gb:
          type: integer
          maximum: 10000
          minimum: 1
        default_storage_data_disk_gb:
          type: integer
          maximum: 10000
          minimum: 1
        default_storage_san_disk_gb:
          type: integer
          maximum: 50000
          minimum: 1
        available_kubernetes_versions:
          type: string
          description: Comma-separated list of Kubernetes versions (e.g., 1.32.0,1.33.0,1.34.0)
    K8sDefaultConfigurationRequest:
      type: object
      description: ''
      properties:
        default_controller_vcpus:
          type: integer
          maximum: 64
          minimum: 1
        default_controller_ram_gb:
          type: integer
          maximum: 128
          minimum: 1
        default_controller_system_disk_gb:
          type: integer
          maximum: 500
          minimum: 1
        default_controller_etcd_disk_gb:
          type: integer
          maximum: 1000
          minimum: 1
        default_lb_vcpus:
          type: integer
          maximum: 32
          minimum: 1
        default_lb_ram_gb:
          type: integer
          maximum: 256
          minimum: 1
        default_lb_system_disk_gb:
          type: integer
          maximum: 500
          minimum: 1
        default_lb_logs_disk_gb:
          type: integer
          maximum: 2000
          minimum: 1
        minimal_worker_vcpus:
          type: integer
          maximum: 32
          minimum: 1
        minimal_worker_ram_gb:
          type: integer
          maximum: 64
          minimum: 1
        default_worker_data_disk_gb:
          type: integer
          maximum: 10000
          minimum: 1
        default_storage_data_disk_gb:
          type: integer
          maximum: 10000
          minimum: 1
        default_storage_san_disk_gb:
          type: integer
          maximum: 50000
          minimum: 1
        available_kubernetes_versions:
          type: string
          description: Comma-separated list of Kubernetes versions (e.g., 1.32.0,1.33.0,1.34.0)
    KeycloakGroup:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          readOnly: true
          title: Group name
        backend_id:
          type: string
          readOnly: true
        scope_type:
          type: string
          readOnly: true
        scope_uuid:
          type: string
          format: uuid
          description: UUID of the cluster or project
        scope_name:
          type: string
          nullable: true
          description: Get the name of the cluster or project
          readOnly: true
        role:
          type: string
          format: uri
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - backend_id
      - created
      - modified
      - name
      - role
      - scope_name
      - scope_type
      - scope_uuid
      - url
      - uuid
      description: ''
    KeycloakUserGroupMembership:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        username:
          type: string
          description: Keycloak user username
          maxLength: 255
        email:
          type: string
          format: email
          description: User's email for notifications
          maxLength: 254
        first_name:
          type: string
          readOnly: true
        last_name:
          type: string
          readOnly: true
        group:
          type: string
          format: uri
          readOnly: true
        group_name:
          type: string
          readOnly: true
        group_role:
          type: string
          readOnly: true
        group_scope_type:
          type: string
          readOnly: true
        group_scope_name:
          type: string
          nullable: true
          description: Get the name of the cluster or project
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/KeycloakUserGroupMembershipState'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        last_checked:
          type: string
          format: date-time
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
      required:
      - created
      - email
      - error_message
      - error_traceback
      - first_name
      - group
      - group_name
      - group_role
      - group_scope_name
      - group_scope_type
      - last_checked
      - last_name
      - modified
      - state
      - url
      - username
      - uuid
      description: ''
    KeycloakUserGroupMembershipRequest:
      type: object
      properties:
        username:
          type: string
          minLength: 1
          description: Keycloak user username
          maxLength: 255
        email:
          type: string
          format: email
          minLength: 1
          description: User's email for notifications
          maxLength: 254
        scope_uuid:
          type: string
          format: uuid
          writeOnly: true
          description: UUID of a cluster or a project in Rancher
        role:
          type: string
          format: uri
          writeOnly: true
      required:
      - email
      - role
      - scope_uuid
      - username
      description: ''
    KeycloakUserGroupMembershipState:
      enum:
      - pending
      - active
      type: string
      description: ''
    KeywordSearchModeEnum:
      enum:
      - expertise_only
      - full_text
      type: string
      description: ''
    KindEnum:
      enum:
      - default
      - course
      - public
      type: string
      description: ''
    LexisLink:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        robot_account:
          type: string
          format: uri
          readOnly: true
        robot_account_username:
          type: string
          readOnly: true
        robot_account_type:
          type: string
          readOnly: true
        state:
          type: string
          readOnly: true
        resource_uuid:
          type: string
          format: uuid
          readOnly: true
        resource_name:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        resource_backend_id:
          type: string
          readOnly: true
        resource_end_date:
          type: string
          format: date-time
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        heappe_project_id:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
      required:
      - created
      - customer_name
      - customer_uuid
      - modified
      - project_name
      - project_uuid
      - resource_backend_id
      - resource_end_date
      - resource_name
      - resource_type
      - resource_uuid
      - robot_account
      - robot_account_type
      - robot_account_username
      - state
      - url
      - uuid
      description: ''
    LexisLinkCreateRequest:
      type: object
      properties:
        resource:
          type: string
          format: uri
          writeOnly: true
      required:
      - resource
      description: ''
    LexisLinkRequest:
      type: object
      properties:
        heappe_project_id:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
      description: ''
    LicenseSuggestion:
      type: object
      description: ''
      properties:
        resource_uuid:
          type: string
          format: uuid
        resource_name:
          type: string
        license_reference:
          type: string
        license_name:
          type: string
        confidence:
          type: number
          format: double
          description: Confidence score (0-1) based on name similarity.
      required:
      - confidence
      - license_name
      - license_reference
      - resource_name
      - resource_uuid
    LimitPeriodEnum:
      enum:
      - month
      - quarterly
      - annual
      - total
      type: string
      description: ''
    LimitTypeEnum:
      enum:
      - GrpTRESMins
      - MaxTRESMins
      - GrpTRES
      type: string
      description: ''
    LinkOpenstackRequest:
      type: object
      properties:
        instance:
          type: string
          format: uri
          writeOnly: true
      required:
      - instance
      description: ''
    LinkResourceRequestRequest:
      type: object
      description: ''
      properties:
        resource_uuid:
          type: string
          format: uuid
          description: UUID of the Waldur resource to link.
        license_reference:
          type: string
          minLength: 1
          description: Arrow license reference to set as backend_id (e.g., XSP12345).
      required:
      - license_reference
      - resource_uuid
    LinkResourceResponse:
      type: object
      description: ''
      properties:
        resource_uuid:
          type: string
          format: uuid
        resource_name:
          type: string
        license_reference:
          type: string
        previous_backend_id:
          type: string
        success:
          type: boolean
      required:
      - license_reference
      - previous_backend_id
      - resource_name
      - resource_uuid
      - success
    LinkToInvoice:
      type: object
      properties:
        invoice:
          type: string
          format: uri
      required:
      - invoice
      description: ''
    LinkToInvoiceRequest:
      type: object
      properties:
        invoice:
          type: string
          format: uri
      required:
      - invoice
      description: ''
    LockStats:
      type: object
      description: ''
      properties:
        total_locks:
          type: integer
          readOnly: true
          description: Total number of locks currently held
        waiting_locks:
          type: integer
          readOnly: true
          description: Number of locks being waited for
        access_exclusive_locks:
          type: integer
          readOnly: true
          description: Number of AccessExclusive locks (blocks all access)
      required:
      - access_exclusive_locks
      - total_locks
      - waiting_locks
    Logout:
      type: object
      properties:
        logout_url:
          type: string
          format: uri
          readOnly: true
          description: URL to redirect to after logout
      required:
      - logout_url
      description: ''
    MaintenanceActionResponse:
      type: object
      description: ''
      properties:
        detail:
          type: string
          description: Response message describing the action result
      required:
      - detail
    MaintenanceAnnouncement:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        message:
          type: string
          maxLength: 2000
        internal_notes:
          type: string
          maxLength: 2000
        maintenance_type:
          allOf:
          - $ref: '#/components/schemas/MaintenanceTypeEnum'
          description: Type of maintenance being performed
          minimum: 0
          maximum: 32767
        external_reference_url:
          type: string
          format: uri
          description: Optional reference to an external maintenance tracker
          maxLength: 200
        state:
          allOf:
          - $ref: '#/components/schemas/MaintenanceAnnouncementStateEnum'
          readOnly: true
        scheduled_start:
          type: string
          format: date-time
          description: When the maintenance is scheduled to begin
        scheduled_end:
          type: string
          format: date-time
          description: When the maintenance is scheduled to complete
        actual_start:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When the maintenance actually began
        actual_end:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When the maintenance actually completed
        service_provider:
          type: string
          format: uri
          description: Service provider announcing the maintenance
        created_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        affected_offerings:
          type: array
          items:
            $ref: '#/components/schemas/MaintenanceAnnouncementOffering'
          readOnly: true
        service_provider_name:
          type: string
          readOnly: true
        backend_id:
          type: string
          readOnly: true
      required:
      - actual_end
      - actual_start
      - affected_offerings
      - backend_id
      - created_by
      - name
      - scheduled_end
      - scheduled_start
      - service_provider
      - service_provider_name
      - state
      - url
      - uuid
      description: ''
    MaintenanceAnnouncementOffering:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        maintenance:
          type: string
          format: uri
        offering:
          type: string
          format: uri
        impact_level:
          allOf:
          - $ref: '#/components/schemas/ImpactLevelEnum'
          description: Expected impact on this offering
          minimum: 0
          maximum: 32767
        impact_level_display:
          allOf:
          - $ref: '#/components/schemas/ImpactLevelDisplayEnum'
          readOnly: true
        impact_description:
          type: string
          description: Specific description of how this offering will be affected
        offering_name:
          type: string
          readOnly: true
      required:
      - impact_level_display
      - maintenance
      - offering
      - offering_name
      - url
      - uuid
      description: ''
    MaintenanceAnnouncementOfferingRequest:
      type: object
      properties:
        maintenance:
          type: string
          format: uri
        offering:
          type: string
          format: uri
        impact_level:
          allOf:
          - $ref: '#/components/schemas/ImpactLevelEnum'
          description: Expected impact on this offering
          minimum: 0
          maximum: 32767
        impact_description:
          type: string
          description: Specific description of how this offering will be affected
      required:
      - maintenance
      - offering
      description: ''
    MaintenanceAnnouncementOfferingTemplate:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        maintenance_template:
          type: string
          format: uri
        offering:
          type: string
          format: uri
        offering_name:
          type: string
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        impact_level:
          allOf:
          - $ref: '#/components/schemas/ImpactLevelEnum'
          description: Expected impact on this offering
          minimum: 0
          maximum: 32767
        impact_description:
          type: string
          description: Specific description of how this offering will be affected
      required:
      - maintenance_template
      - offering
      - offering_name
      - offering_uuid
      - url
      - uuid
      description: ''
    MaintenanceAnnouncementOfferingTemplateRequest:
      type: object
      properties:
        maintenance_template:
          type: string
          format: uri
        offering:
          type: string
          format: uri
        impact_level:
          allOf:
          - $ref: '#/components/schemas/ImpactLevelEnum'
          description: Expected impact on this offering
          minimum: 0
          maximum: 32767
        impact_description:
          type: string
          description: Specific description of how this offering will be affected
      required:
      - maintenance_template
      - offering
      description: ''
    MaintenanceAnnouncementRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        message:
          type: string
          maxLength: 2000
        internal_notes:
          type: string
          maxLength: 2000
        maintenance_type:
          allOf:
          - $ref: '#/components/schemas/MaintenanceTypeEnum'
          description: Type of maintenance being performed
          minimum: 0
          maximum: 32767
        external_reference_url:
          type: string
          format: uri
          description: Optional reference to an external maintenance tracker
          maxLength: 200
        scheduled_start:
          type: string
          format: date-time
          description: When the maintenance is scheduled to begin
        scheduled_end:
          type: string
          format: date-time
          description: When the maintenance is scheduled to complete
        service_provider:
          type: string
          format: uri
          description: Service provider announcing the maintenance
      required:
      - name
      - scheduled_end
      - scheduled_start
      - service_provider
      description: ''
    MaintenanceAnnouncementStateEnum:
      enum:
      - Draft
      - Scheduled
      - In progress
      - Completed
      - Cancelled
      type: string
      description: ''
    MaintenanceAnnouncementTemplate:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        message:
          type: string
          maxLength: 2000
        maintenance_type:
          allOf:
          - $ref: '#/components/schemas/MaintenanceTypeEnum'
          description: Type of maintenance being performed
          minimum: 0
          maximum: 32767
        service_provider:
          type: string
          format: uri
          description: Service provider announcing the maintenance
        affected_offerings:
          type: array
          items:
            $ref: '#/components/schemas/MaintenanceAnnouncementOffering'
          readOnly: true
      required:
      - affected_offerings
      - name
      - service_provider
      - url
      - uuid
      description: ''
    MaintenanceAnnouncementTemplateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        message:
          type: string
          maxLength: 2000
        maintenance_type:
          allOf:
          - $ref: '#/components/schemas/MaintenanceTypeEnum'
          description: Type of maintenance being performed
          minimum: 0
          maximum: 32767
        service_provider:
          type: string
          format: uri
          description: Service provider announcing the maintenance
      required:
      - name
      - service_provider
      description: ''
    MaintenanceProviderStats:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          description: Service provider UUID
        name:
          type: string
          description: Service provider name
        total:
          type: integer
          description: Total maintenances
        active:
          type: integer
          description: Active maintenances
        scheduled:
          type: integer
          description: Scheduled maintenances
        completed:
          type: integer
          description: Completed maintenances
      required:
      - active
      - completed
      - name
      - scheduled
      - total
      - uuid
    MaintenanceStats:
      type: object
      description: ''
      properties:
        oldest_transaction_age:
          type: integer
          readOnly: true
          nullable: true
          description: Age of the oldest transaction in transactions
        tables_needing_vacuum:
          type: integer
          readOnly: true
          description: Number of tables with high dead tuple ratio
        total_dead_tuples:
          type: integer
          readOnly: true
          description: Total estimated dead tuples across all tables
        total_live_tuples:
          type: integer
          readOnly: true
          description: Total estimated live tuples across all tables
        dead_tuple_ratio_percent:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: Ratio of dead tuples to total tuples
      required:
      - dead_tuple_ratio_percent
      - oldest_transaction_age
      - tables_needing_vacuum
      - total_dead_tuples
      - total_live_tuples
    MaintenanceStatsResponse:
      type: object
      description: ''
      properties:
        summary:
          allOf:
          - $ref: '#/components/schemas/MaintenanceStatsSummary'
          description: Summary statistics
        by_state:
          type: object
          additionalProperties:
            type: integer
          description: Total counts grouped by state
        by_type:
          type: object
          additionalProperties:
            type: integer
          description: Total counts grouped by maintenance type
        by_impact_level:
          type: object
          additionalProperties:
            type: integer
          description: Total counts grouped by max impact level
        daily:
          type: array
          items:
            $ref: '#/components/schemas/DailyMaintenanceStats'
          description: Daily breakdown
        providers:
          type: array
          items:
            $ref: '#/components/schemas/MaintenanceProviderStats'
          description: Statistics per provider
      required:
      - by_impact_level
      - by_state
      - by_type
      - daily
      - providers
      - summary
    MaintenanceStatsSummary:
      type: object
      description: ''
      properties:
        total:
          type: integer
          description: Total number of maintenance announcements
        active:
          type: integer
          description: Number of currently active maintenances
        scheduled:
          type: integer
          description: Number of scheduled maintenances
        completed:
          type: integer
          description: Number of completed maintenances
        average_duration_hours:
          type: number
          format: double
          nullable: true
          description: Average duration of completed maintenances in hours
        on_time_completion_rate:
          type: number
          format: double
          nullable: true
          description: Percentage of maintenances completed on time
      required:
      - active
      - average_duration_hours
      - completed
      - on_time_completion_rate
      - scheduled
      - total
    MaintenanceTypeEnum:
      enum:
      - 1
      - 2
      - 3
      - 4
      - 5
      type: integer
      description: ''
    ManagedProject:
      type: object
      description: ''
      properties:
        state:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        reviewed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp when the review was completed
        reviewed_by_full_name:
          type: string
          readOnly: true
        reviewed_by_uuid:
          type: string
          format: uuid
          readOnly: true
        review_comment:
          type: string
          nullable: true
          description: Optional comment provided during review
        identifier:
          type: string
          title: ID
          maxLength: 64
        destination:
          type: string
          description: The destination used to send instructions from the remote portal.
          maxLength: 256
        details:
          readOnly: true
          description: Details of the project as provided by the remote OpenPortal.
        project:
          type: string
          format: uri
        project_data:
          allOf:
          - $ref: '#/components/schemas/Project'
          readOnly: true
        project_template:
          type: string
          format: uri
        project_template_data:
          allOf:
          - $ref: '#/components/schemas/ProjectTemplate'
          readOnly: true
        local_identifier:
          type: string
          nullable: true
          title: Local ID
          description: The local project identifier in this portal.
          maxLength: 64
      required:
      - created
      - destination
      - details
      - identifier
      - project
      - project_data
      - project_template
      - project_template_data
      - reviewed_at
      - reviewed_by_full_name
      - reviewed_by_uuid
      - state
    ManagedRancherCreateNodeRequest:
      type: object
      description: ''
      properties:
        role:
          $ref: '#/components/schemas/RancherNodeRoleEnum'
        system_volume_size:
          type: integer
          writeOnly: true
          minimum: 64
        system_volume_type:
          type: string
          format: uri
          writeOnly: true
          nullable: true
        memory:
          type: integer
          writeOnly: true
        cpu:
          type: integer
          writeOnly: true
        subnet:
          type: string
          format: uri
          writeOnly: true
          nullable: true
        flavor:
          type: string
          format: uri
          writeOnly: true
          nullable: true
        data_volumes:
          type: array
          items:
            $ref: '#/components/schemas/DataVolumeRequest'
          writeOnly: true
        ssh_public_key:
          type: string
          format: uri
          writeOnly: true
        tenant:
          type: string
          format: uri
          writeOnly: true
      required:
      - role
      - subnet
    Mapping:
      type: object
      properties:
        volume_types:
          type: array
          items:
            $ref: '#/components/schemas/VolumeTypeMapping'
        subnets:
          type: array
          items:
            $ref: '#/components/schemas/SubNetMapping'
        skip_connection_extnet:
          type: boolean
          default: false
        sync_instance_ports:
          type: boolean
          default: false
        networks:
          type: array
          items:
            type: string
            format: uuid
      description: ''
    MappingRequest:
      type: object
      properties:
        volume_types:
          type: array
          items:
            $ref: '#/components/schemas/VolumeTypeMappingRequest'
        subnets:
          type: array
          items:
            $ref: '#/components/schemas/SubNetMappingRequest'
        skip_connection_extnet:
          type: boolean
          default: false
        sync_instance_ports:
          type: boolean
          default: false
        networks:
          type: array
          items:
            type: string
            format: uuid
      description: ''
    MarketplaceCategory:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        title:
          type: string
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: uri
          nullable: true
        default_vm_category:
          type: boolean
          description: Set to "true" if this category is for OpenStack VM. Only one
            category can have "true" value.
        default_volume_category:
          type: boolean
          description: Set to true if this category is for OpenStack Volume. Only
            one category can have "true" value.
        default_tenant_category:
          type: boolean
          description: Set to true if this category is for OpenStack Tenant. Only
            one category can have "true" value.
        offering_count:
          type: integer
          readOnly: true
        available_offerings_count:
          type: integer
          readOnly: true
        sections:
          type: array
          items:
            $ref: '#/components/schemas/NestedSection'
          readOnly: true
        columns:
          type: array
          items:
            $ref: '#/components/schemas/NestedColumn'
          readOnly: true
        components:
          type: array
          items:
            $ref: '#/components/schemas/CategoryComponent'
          readOnly: true
        articles:
          type: array
          items:
            $ref: '#/components/schemas/CategoryHelpArticle'
          readOnly: true
        group:
          type: string
          format: uri
          nullable: true
      required: []
    MarketplaceCategoryRequest:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: binary
          nullable: true
        default_vm_category:
          type: boolean
          description: Set to "true" if this category is for OpenStack VM. Only one
            category can have "true" value.
        default_volume_category:
          type: boolean
          description: Set to true if this category is for OpenStack Volume. Only
            one category can have "true" value.
        default_tenant_category:
          type: boolean
          description: Set to true if this category is for OpenStack Tenant. Only
            one category can have "true" value.
        group:
          type: string
          format: uri
          nullable: true
      required:
      - title
    MarketplaceCustomerStats:
      type: object
      properties:
        name:
          type: string
          readOnly: true
          description: Name from the record
        uuid:
          type: string
          readOnly: true
          description: UUID from the record
        count:
          type: integer
          readOnly: true
          description: Count value from the record
        abbreviation:
          type: string
          readOnly: true
          description: Customer abbreviation from the record
      required:
      - abbreviation
      - count
      - name
      - uuid
      description: ''
    MarketplaceProviderCustomer:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        abbreviation:
          type: string
          maxLength: 12
        phone_number:
          type: string
          maxLength: 255
        email:
          type: string
          format: email
          title: Email address
          maxLength: 75
        payment_profiles:
          type: array
          items:
            $ref: '#/components/schemas/PaymentProfile'
          readOnly: true
        billing_price_estimate:
          allOf:
          - $ref: '#/components/schemas/NestedPriceEstimate'
          readOnly: true
        projects_count:
          type: integer
          readOnly: true
        users_count:
          type: integer
          readOnly: true
        projects:
          type: array
          items:
            $ref: '#/components/schemas/ProviderProject'
          readOnly: true
        users:
          type: array
          items:
            $ref: '#/components/schemas/ProviderUser'
          readOnly: true
      required: []
    MarketplaceProviderCustomerProject:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 500
        description:
          type: string
          maxLength: 4096
        end_date:
          type: string
          format: date
          nullable: true
          description: The date is inclusive. Once reached, all project resource will
            be scheduled for termination.
        resources_count:
          type: integer
          readOnly: true
        users_count:
          type: integer
          readOnly: true
        billing_price_estimate:
          allOf:
          - $ref: '#/components/schemas/NestedPriceEstimate'
          readOnly: true
      required: []
    MarketplaceServiceProviderUser:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          pattern: ^[0-9a-z_.@+-]+$
          maxLength: 128
        full_name:
          type: string
          readOnly: true
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
        organization:
          type: string
          maxLength: 255
        email:
          type: string
          format: email
          title: Email address
          maxLength: 320
        phone_number:
          type: string
          maxLength: 255
        projects_count:
          type: integer
          readOnly: true
        registration_method:
          type: string
          description: Indicates what registration method was used.
          maxLength: 50
        affiliations:
          description: Person's affiliation within organization such as student, faculty,
            staff.
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
      required: []
    MatchingAlgorithm:
      enum:
      - minmax
      - fairflow
      - hungarian
      type: string
      description: ''
    MatchingConfiguration:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        affinity_method:
          $ref: '#/components/schemas/AffinityMethodEnum'
        keyword_weight:
          type: number
          format: double
          minimum: 0.0
        text_weight:
          type: number
          format: double
          minimum: 0.0
        min_reviewers_per_proposal:
          type: integer
          maximum: 2147483647
          minimum: 0
        max_reviewers_per_proposal:
          type: integer
          maximum: 2147483647
          minimum: 0
        min_proposals_per_reviewer:
          type: integer
          maximum: 2147483647
          minimum: 0
        max_proposals_per_reviewer:
          type: integer
          maximum: 2147483647
          minimum: 0
        algorithm:
          $ref: '#/components/schemas/MatchingAlgorithm'
        min_affinity_threshold:
          type: number
          format: double
          minimum: 0.0
          description: Minimum affinity score for FairFlow algorithm
        use_reviewer_bids:
          type: boolean
        bid_weight:
          type: number
          format: double
          minimum: 0.0
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - call_name
      - call_uuid
      - created
      - modified
      - uuid
    MergedPluginOptions:
      type: object
      properties:
        auto_approve_remote_orders:
          type: boolean
          description: If set to True, an order can be processed without approval
        resource_expiration_threshold:
          type: integer
          default: 30
          description: Resource expiration threshold in days.
        service_provider_can_create_offering_user:
          type: boolean
          description: Service provider can create offering user
        max_resource_termination_offset_in_days:
          type: integer
          minimum: 0
          description: Maximum resource termination offset in days
        default_resource_termination_offset_in_days:
          type: integer
          minimum: 0
          description: If set, it will be used as a default resource termination offset
            in days
        is_resource_termination_date_required:
          type: boolean
          description: If set to True, resource termination date is required
        latest_date_for_resource_termination:
          type: string
          description: 'If set, it will be used as a latest date for resource termination.
            Format: YYYY-MM-DD'
        auto_approve_in_service_provider_projects:
          type: boolean
          description: Skip approval of public offering belonging to the same organization
            under which the request is done
        disable_autoapprove:
          type: boolean
          description: If set to True, orders for this offering will always require
            manual approval, overriding auto_approve_in_service_provider_projects
        supports_downscaling:
          type: boolean
          description: If set to True, it will be possible to downscale resources
        supports_pausing:
          type: boolean
          description: If set to True, it will be possible to pause resources
        minimal_team_count_for_provisioning:
          type: integer
          minimum: 1
          description: Minimal team count required for provisioning of resources
        maximal_resource_count_per_project:
          type: integer
          description: Maximal number of offering resources allowed per project
        unique_resource_per_attribute:
          type: string
          description: Attribute name to enforce uniqueness per value. E.g., 'storage_data_type'
            ensures only one resource per storage type per project.
        required_team_role_for_provisioning:
          type: string
          description: Required user role in a project for provisioning of resources
        enable_purchase_order_upload:
          type: boolean
          description: If set to True, users will be able to upload purchase orders.
        require_purchase_order_upload:
          type: boolean
          description: If set to True, users will be required to upload purchase orders.
        conceal_billing_data:
          type: boolean
          description: If set to True, pricing and components tab would be concealed.
        create_orders_on_resource_option_change:
          type: boolean
          description: If set to True, create orders when options of related resources
            are changed.
        can_restore_resource:
          type: boolean
          description: If set to True, resource can be restored.
        enable_provider_consumer_messaging:
          type: boolean
          description: If set to True, service providers can send messages with attachments
            to consumers on pending orders, and consumers can respond.
        notify_about_provider_consumer_messages:
          type: boolean
          description: If set to True, send email notifications when providers or
            consumers exchange messages on pending orders.
        restrict_deletion_with_active_resources:
          type: boolean
          description: If set to True, offering cannot be deleted while it has non-terminated
            resources.
        default_internal_network_mtu:
          type: integer
          maximum: 9000
          minimum: 68
          description: If set, it will be used as a default MTU for the first network
            in a tenant
        max_instances:
          type: integer
          minimum: 1
          description: Default limit for number of instances in OpenStack tenant
        max_volumes:
          type: integer
          minimum: 1
          description: Default limit for number of volumes in OpenStack tenant
        max_security_groups:
          type: integer
          minimum: 1
          description: Default limit for number of security groups in OpenStack tenant
        storage_mode:
          allOf:
          - $ref: '#/components/schemas/StorageModeEnum'
          description: Storage mode for OpenStack offering
        snapshot_size_limit_gb:
          type: integer
          minimum: 1
          description: Default limit for snapshot size in GB
        heappe_cluster_id:
          type: string
          description: HEAppE cluster id
        heappe_local_base_path:
          type: string
          description: HEAppE local base path
        heappe_url:
          type: string
          description: HEAppE url
        heappe_username:
          type: string
          description: HEAppE username
        homedir_prefix:
          type: string
          default: /home/
          description: GLAuth homedir prefix
        scratch_project_directory:
          type: string
          description: HEAppE scratch project directory
        project_permanent_directory:
          type: string
          description: HEAppE project permanent directory
        initial_primarygroup_number:
          type: integer
          minimum: 0
          default: 5000
          description: GLAuth initial primary group number
        initial_uidnumber:
          type: integer
          minimum: 0
          default: 5000
          description: GLAuth initial uidnumber
        initial_usergroup_number:
          type: integer
          minimum: 0
          default: 6000
          description: GLAuth initial usergroup number
        username_anonymized_prefix:
          type: string
          default: waldur_
          description: GLAuth prefix for anonymized usernames
        username_generation_policy:
          allOf:
          - $ref: '#/components/schemas/UsernameGenerationPolicyEnum'
          default: service_provider
          description: GLAuth username generation policy
        enable_issues_for_membership_changes:
          type: boolean
          description: Enable issues for membership changes
        deployment_mode:
          allOf:
          - $ref: '#/components/schemas/DeploymentModeEnum'
          description: Rancher deployment mode
        flavors_regex:
          type: string
          description: Regular expression to limit flavors list
        openstack_offering_uuid_list:
          type: array
          items:
            type: string
          description: List of UUID of OpenStack offerings where tenant can be created
        managed_rancher_server_flavor_name:
          type: string
          description: Flavor name for managed Rancher server instances
        managed_rancher_server_system_volume_size_gb:
          type: integer
          description: System volume size in GB for managed Rancher server
        managed_rancher_server_system_volume_type_name:
          type: string
          description: System volume type name for managed Rancher server
        managed_rancher_server_data_volume_size_gb:
          type: integer
          description: Data volume size in GB for managed Rancher server
        managed_rancher_server_data_volume_type_name:
          type: string
          description: Data volume type name for managed Rancher server
        managed_rancher_worker_system_volume_size_gb:
          type: integer
          description: System volume size in GB for managed Rancher worker nodes
        managed_rancher_worker_system_volume_type_name:
          type: string
          description: System volume type name for managed Rancher worker nodes
        managed_rancher_load_balancer_flavor_name:
          type: string
          description: Flavor name for managed Rancher load balancer
        managed_rancher_load_balancer_system_volume_size_gb:
          type: integer
          description: System volume size in GB for managed Rancher load balancer
        managed_rancher_load_balancer_system_volume_type_name:
          type: string
          description: System volume type name for managed Rancher load balancer
        managed_rancher_load_balancer_data_volume_size_gb:
          type: integer
          description: Data volume size in GB for managed Rancher load balancer
        managed_rancher_load_balancer_data_volume_type_name:
          type: string
          description: Data volume type name for managed Rancher load balancer
        managed_rancher_tenant_max_cpu:
          type: integer
          description: Max number of vCPUs for tenants
        managed_rancher_tenant_max_ram:
          type: integer
          description: Max number of RAM for tenants (GB)
        managed_rancher_tenant_max_disk:
          type: integer
          description: Max size of disk space for tenants (GB)
        account_name_generation_policy:
          nullable: true
          description: Slurm account name generation policy
          oneOf:
          - $ref: '#/components/schemas/AccountNameGenerationPolicyEnum'
          - $ref: '#/components/schemas/NullEnum'
        enable_display_of_order_actions_for_service_provider:
          type: boolean
          default: true
          description: Enable display of order actions for service provider
        slurm_periodic_policy_enabled:
          type: boolean
          default: false
          description: Enable SLURM periodic usage policy configuration. When enabled,
            allows configuring QoS-based threshold enforcement, carryover logic, and
            fairshare decay for site-agent managed SLURM offerings.
        auto_approve_marketplace_script:
          type: boolean
          default: true
          description: If set to False, all orders require manual provider approval,
            including for service provider owners and staff
        highlight_backend_id_display:
          type: boolean
          default: false
          description: Defines if backend_id should be shown more prominently by the
            UI
        backend_id_display_label:
          type: string
          default: Backend ID
          description: Label used by UI for showing value of the backend_id
        disabled_resource_actions:
          type: array
          items:
            type: string
          description: List of disabled marketplace resource actions for this offering.
      description: ''
    MergedPluginOptionsRequest:
      type: object
      properties:
        auto_approve_remote_orders:
          type: boolean
          description: If set to True, an order can be processed without approval
        resource_expiration_threshold:
          type: integer
          default: 30
          description: Resource expiration threshold in days.
        service_provider_can_create_offering_user:
          type: boolean
          description: Service provider can create offering user
        max_resource_termination_offset_in_days:
          type: integer
          minimum: 0
          description: Maximum resource termination offset in days
        default_resource_termination_offset_in_days:
          type: integer
          minimum: 0
          description: If set, it will be used as a default resource termination offset
            in days
        is_resource_termination_date_required:
          type: boolean
          description: If set to True, resource termination date is required
        latest_date_for_resource_termination:
          type: string
          minLength: 1
          description: 'If set, it will be used as a latest date for resource termination.
            Format: YYYY-MM-DD'
        auto_approve_in_service_provider_projects:
          type: boolean
          description: Skip approval of public offering belonging to the same organization
            under which the request is done
        disable_autoapprove:
          type: boolean
          description: If set to True, orders for this offering will always require
            manual approval, overriding auto_approve_in_service_provider_projects
        supports_downscaling:
          type: boolean
          description: If set to True, it will be possible to downscale resources
        supports_pausing:
          type: boolean
          description: If set to True, it will be possible to pause resources
        minimal_team_count_for_provisioning:
          type: integer
          minimum: 1
          description: Minimal team count required for provisioning of resources
        maximal_resource_count_per_project:
          type: integer
          description: Maximal number of offering resources allowed per project
        unique_resource_per_attribute:
          type: string
          minLength: 1
          description: Attribute name to enforce uniqueness per value. E.g., 'storage_data_type'
            ensures only one resource per storage type per project.
        required_team_role_for_provisioning:
          type: string
          minLength: 1
          description: Required user role in a project for provisioning of resources
        enable_purchase_order_upload:
          type: boolean
          description: If set to True, users will be able to upload purchase orders.
        require_purchase_order_upload:
          type: boolean
          description: If set to True, users will be required to upload purchase orders.
        conceal_billing_data:
          type: boolean
          description: If set to True, pricing and components tab would be concealed.
        create_orders_on_resource_option_change:
          type: boolean
          description: If set to True, create orders when options of related resources
            are changed.
        can_restore_resource:
          type: boolean
          description: If set to True, resource can be restored.
        enable_provider_consumer_messaging:
          type: boolean
          description: If set to True, service providers can send messages with attachments
            to consumers on pending orders, and consumers can respond.
        notify_about_provider_consumer_messages:
          type: boolean
          description: If set to True, send email notifications when providers or
            consumers exchange messages on pending orders.
        restrict_deletion_with_active_resources:
          type: boolean
          description: If set to True, offering cannot be deleted while it has non-terminated
            resources.
        default_internal_network_mtu:
          type: integer
          maximum: 9000
          minimum: 68
          description: If set, it will be used as a default MTU for the first network
            in a tenant
        max_instances:
          type: integer
          minimum: 1
          description: Default limit for number of instances in OpenStack tenant
        max_volumes:
          type: integer
          minimum: 1
          description: Default limit for number of volumes in OpenStack tenant
        max_security_groups:
          type: integer
          minimum: 1
          description: Default limit for number of security groups in OpenStack tenant
        storage_mode:
          allOf:
          - $ref: '#/components/schemas/StorageModeEnum'
          description: Storage mode for OpenStack offering
        snapshot_size_limit_gb:
          type: integer
          minimum: 1
          description: Default limit for snapshot size in GB
        heappe_cluster_id:
          type: string
          minLength: 1
          description: HEAppE cluster id
        heappe_local_base_path:
          type: string
          minLength: 1
          description: HEAppE local base path
        heappe_url:
          type: string
          minLength: 1
          description: HEAppE url
        heappe_username:
          type: string
          minLength: 1
          description: HEAppE username
        homedir_prefix:
          type: string
          minLength: 1
          default: /home/
          description: GLAuth homedir prefix
        scratch_project_directory:
          type: string
          minLength: 1
          description: HEAppE scratch project directory
        project_permanent_directory:
          type: string
          minLength: 1
          description: HEAppE project permanent directory
        initial_primarygroup_number:
          type: integer
          minimum: 0
          default: 5000
          description: GLAuth initial primary group number
        initial_uidnumber:
          type: integer
          minimum: 0
          default: 5000
          description: GLAuth initial uidnumber
        initial_usergroup_number:
          type: integer
          minimum: 0
          default: 6000
          description: GLAuth initial usergroup number
        username_anonymized_prefix:
          type: string
          minLength: 1
          default: waldur_
          description: GLAuth prefix for anonymized usernames
        username_generation_policy:
          allOf:
          - $ref: '#/components/schemas/UsernameGenerationPolicyEnum'
          default: service_provider
          description: GLAuth username generation policy
        enable_issues_for_membership_changes:
          type: boolean
          description: Enable issues for membership changes
        deployment_mode:
          allOf:
          - $ref: '#/components/schemas/DeploymentModeEnum'
          description: Rancher deployment mode
        flavors_regex:
          type: string
          minLength: 1
          description: Regular expression to limit flavors list
        openstack_offering_uuid_list:
          type: array
          items:
            type: string
            minLength: 1
          description: List of UUID of OpenStack offerings where tenant can be created
        managed_rancher_server_flavor_name:
          type: string
          minLength: 1
          description: Flavor name for managed Rancher server instances
        managed_rancher_server_system_volume_size_gb:
          type: integer
          description: System volume size in GB for managed Rancher server
        managed_rancher_server_system_volume_type_name:
          type: string
          minLength: 1
          description: System volume type name for managed Rancher server
        managed_rancher_server_data_volume_size_gb:
          type: integer
          description: Data volume size in GB for managed Rancher server
        managed_rancher_server_data_volume_type_name:
          type: string
          minLength: 1
          description: Data volume type name for managed Rancher server
        managed_rancher_worker_system_volume_size_gb:
          type: integer
          description: System volume size in GB for managed Rancher worker nodes
        managed_rancher_worker_system_volume_type_name:
          type: string
          minLength: 1
          description: System volume type name for managed Rancher worker nodes
        managed_rancher_load_balancer_flavor_name:
          type: string
          minLength: 1
          description: Flavor name for managed Rancher load balancer
        managed_rancher_load_balancer_system_volume_size_gb:
          type: integer
          description: System volume size in GB for managed Rancher load balancer
        managed_rancher_load_balancer_system_volume_type_name:
          type: string
          minLength: 1
          description: System volume type name for managed Rancher load balancer
        managed_rancher_load_balancer_data_volume_size_gb:
          type: integer
          description: Data volume size in GB for managed Rancher load balancer
        managed_rancher_load_balancer_data_volume_type_name:
          type: string
          minLength: 1
          description: Data volume type name for managed Rancher load balancer
        managed_rancher_tenant_max_cpu:
          type: integer
          description: Max number of vCPUs for tenants
        managed_rancher_tenant_max_ram:
          type: integer
          description: Max number of RAM for tenants (GB)
        managed_rancher_tenant_max_disk:
          type: integer
          description: Max size of disk space for tenants (GB)
        account_name_generation_policy:
          nullable: true
          description: Slurm account name generation policy
          oneOf:
          - $ref: '#/components/schemas/AccountNameGenerationPolicyEnum'
          - $ref: '#/components/schemas/NullEnum'
        enable_display_of_order_actions_for_service_provider:
          type: boolean
          default: true
          description: Enable display of order actions for service provider
        slurm_periodic_policy_enabled:
          type: boolean
          default: false
          description: Enable SLURM periodic usage policy configuration. When enabled,
            allows configuring QoS-based threshold enforcement, carryover logic, and
            fairshare decay for site-agent managed SLURM offerings.
        auto_approve_marketplace_script:
          type: boolean
          default: true
          description: If set to False, all orders require manual provider approval,
            including for service provider owners and staff
        highlight_backend_id_display:
          type: boolean
          default: false
          description: Defines if backend_id should be shown more prominently by the
            UI
        backend_id_display_label:
          type: string
          default: Backend ID
          description: Label used by UI for showing value of the backend_id
        disabled_resource_actions:
          type: array
          items:
            type: string
            minLength: 1
          description: List of disabled marketplace resource actions for this offering.
      description: ''
    MergedSecretOptions:
      type: object
      properties:
        heappe_cluster_password:
          type: string
          description: HEAppE cluster password
        heappe_password:
          type: string
          description: HEAppE password
        ipv4_external_ip_mapping:
          type: array
          items:
            $ref: '#/components/schemas/IPMapping'
          description: OpenStack IPv4 external IP mapping
        openstack_api_tls_certificate:
          type: string
          description: TLS certificate for OpenStack API connection verification
        dns_nameservers:
          type: array
          items:
            type: string
          description: Default value for new subnets DNS name servers. Should be defined
            as list.
        shared_user_password:
          type: string
          description: GLAuth shared user password
        template_confirmation_comment:
          type: string
          description: Template confirmation comment
        language:
          type: string
          description: 'Script language: Python or Bash'
        environ:
          description: Script environment variables
        create:
          type: string
          description: Script for resource creation
        terminate:
          type: string
          description: Script for resource termination
        update:
          type: string
          description: Script for resource update
        pull:
          type: string
          description: Script for regular resource pull
        api_url:
          type: string
          description: API URL
        token:
          type: string
          description: Waldur access token
        customer_uuid:
          type: string
          description: Organization UUID
        backend_url:
          type: string
          title: Rancher server URL
          maxLength: 200
        username:
          type: string
          title: Rancher access key
          maxLength: 100
        password:
          type: string
          title: Rancher secret key
          maxLength: 100
        cloud_init_template:
          type: string
          description: Cloud-init template for Rancher cluster node initialization
        managed_rancher_load_balancer_cloud_init_template:
          type: string
          description: Cloud-init template for managed Rancher load balancer initialization
        vault_host:
          type: string
          description: Host of the Vault server
        vault_port:
          type: integer
          description: Port of the Vault server
        vault_token:
          type: string
          description: Token for the Vault server
        vault_tls_verify:
          type: boolean
          description: Whether to verify the Vault server certificate
        keycloak_url:
          type: string
          description: URL of the Keycloak server
        keycloak_realm:
          type: string
          description: Keycloak realm for Rancher
        keycloak_user_realm:
          type: string
          description: Keycloak user realm for auth
        keycloak_username:
          type: string
          description: Username of the Keycloak integration user
        keycloak_password:
          type: string
          description: Password of the Keycloak integration user
        keycloak_sync_frequency:
          type: integer
          description: Frequency in minutes for syncing Keycloak users
        keycloak_ssl_verify:
          type: boolean
          description: Indicates whether verify SSL certificates
        argocd_k8s_namespace:
          type: string
          description: Namespace where ArgoCD is deployed
        argocd_k8s_kubeconfig:
          type: string
          description: Kubeconfig with access to namespace where ArgoCD is deployed
        base_image_name:
          type: string
          description: Base image name
        private_registry_url:
          type: string
          description: URL of a private registry for a cluster
        private_registry_user:
          type: string
          description: Username for accessing a private registry
        private_registry_password:
          type: string
          description: Password for accessing a private registry
        k8s_version:
          type: string
          description: Kubernetes version
        node_disk_driver:
          allOf:
          - $ref: '#/components/schemas/NodeDiskDriverEnum'
          description: OpenStack disk driver for Rancher nodes
      description: ''
    MergedSecretOptionsRequest:
      type: object
      properties:
        heappe_cluster_password:
          type: string
          minLength: 1
          description: HEAppE cluster password
        heappe_password:
          type: string
          minLength: 1
          description: HEAppE password
        ipv4_external_ip_mapping:
          type: array
          items:
            $ref: '#/components/schemas/IPMappingRequest'
          description: OpenStack IPv4 external IP mapping
        openstack_api_tls_certificate:
          type: string
          description: TLS certificate for OpenStack API connection verification
        dns_nameservers:
          type: array
          items:
            type: string
            minLength: 1
          description: Default value for new subnets DNS name servers. Should be defined
            as list.
        shared_user_password:
          type: string
          minLength: 1
          description: GLAuth shared user password
        template_confirmation_comment:
          type: string
          minLength: 1
          description: Template confirmation comment
        language:
          type: string
          minLength: 1
          description: 'Script language: Python or Bash'
        environ:
          description: Script environment variables
        create:
          type: string
          minLength: 1
          description: Script for resource creation
        terminate:
          type: string
          minLength: 1
          description: Script for resource termination
        update:
          type: string
          minLength: 1
          description: Script for resource update
        pull:
          type: string
          minLength: 1
          description: Script for regular resource pull
        api_url:
          type: string
          minLength: 1
          description: API URL
        token:
          type: string
          minLength: 1
          description: Waldur access token
        customer_uuid:
          type: string
          minLength: 1
          description: Organization UUID
        backend_url:
          type: string
          minLength: 1
          title: Rancher server URL
          maxLength: 200
        username:
          type: string
          minLength: 1
          title: Rancher access key
          maxLength: 100
        password:
          type: string
          minLength: 1
          title: Rancher secret key
          maxLength: 100
        cloud_init_template:
          type: string
          minLength: 1
          description: Cloud-init template for Rancher cluster node initialization
        managed_rancher_load_balancer_cloud_init_template:
          type: string
          description: Cloud-init template for managed Rancher load balancer initialization
        vault_host:
          type: string
          minLength: 1
          description: Host of the Vault server
        vault_port:
          type: integer
          description: Port of the Vault server
        vault_token:
          type: string
          minLength: 1
          description: Token for the Vault server
        vault_tls_verify:
          type: boolean
          description: Whether to verify the Vault server certificate
        keycloak_url:
          type: string
          minLength: 1
          description: URL of the Keycloak server
        keycloak_realm:
          type: string
          minLength: 1
          description: Keycloak realm for Rancher
        keycloak_user_realm:
          type: string
          minLength: 1
          description: Keycloak user realm for auth
        keycloak_username:
          type: string
          minLength: 1
          description: Username of the Keycloak integration user
        keycloak_password:
          type: string
          minLength: 1
          description: Password of the Keycloak integration user
        keycloak_sync_frequency:
          type: integer
          description: Frequency in minutes for syncing Keycloak users
        keycloak_ssl_verify:
          type: boolean
          description: Indicates whether verify SSL certificates
        argocd_k8s_namespace:
          type: string
          minLength: 1
          description: Namespace where ArgoCD is deployed
        argocd_k8s_kubeconfig:
          type: string
          minLength: 1
          description: Kubeconfig with access to namespace where ArgoCD is deployed
        base_image_name:
          type: string
          minLength: 1
          description: Base image name
        private_registry_url:
          type: string
          minLength: 1
          description: URL of a private registry for a cluster
        private_registry_user:
          type: string
          minLength: 1
          description: Username for accessing a private registry
        private_registry_password:
          type: string
          minLength: 1
          description: Password for accessing a private registry
        k8s_version:
          type: string
          minLength: 1
          description: Kubernetes version
        node_disk_driver:
          allOf:
          - $ref: '#/components/schemas/NodeDiskDriverEnum'
          description: OpenStack disk driver for Rancher nodes
      description: ''
    Message:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        thread:
          type: string
          format: uuid
          readOnly: true
        role:
          allOf:
          - $ref: '#/components/schemas/MessageRoleEnum'
          readOnly: true
        content:
          type: string
        sequence_index:
          type: integer
          readOnly: true
        replaces:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - content
      - created
      - replaces
      - role
      - sequence_index
      - thread
      - uuid
      description: ''
    MessageResponse:
      type: object
      description: ''
      properties:
        message:
          type: string
      required:
      - message
    MessageRoleEnum:
      enum:
      - user
      - assistant
      type: string
      description: ''
    MessageStateCache:
      type: object
      description: ''
      properties:
        cache_ttl:
          type: integer
          readOnly: true
          description: Cache TTL in seconds
        description:
          type: string
          readOnly: true
          description: Cache description
        filter:
          allOf:
          - $ref: '#/components/schemas/MessageStateCacheFilter'
          readOnly: true
          description: Applied filters
      required:
      - cache_ttl
      - description
      - filter
    MessageStateCacheFilter:
      type: object
      description: ''
      properties:
        resource_uuid:
          type: string
          readOnly: true
          nullable: true
          description: Filter by resource UUID
        message_type:
          type: string
          readOnly: true
          nullable: true
          description: Filter by message type
      required:
      - message_type
      - resource_uuid
    MessageTemplate:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        subject:
          type: string
        body:
          type: string
      required:
      - body
      - name
      - subject
      - url
      - uuid
      description: ''
    MessageTemplateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        subject:
          type: string
          minLength: 1
        body:
          type: string
          minLength: 1
      required:
      - body
      - name
      - subject
      description: ''
    MetricsReset:
      type: object
      description: ''
      properties:
        status:
          type: string
          readOnly: true
          description: Operation status
      required:
      - status
    MigrationCreate:
      type: object
      properties:
        mappings:
          $ref: '#/components/schemas/Mapping'
        src_resource:
          type: string
          format: uuid
      required:
      - src_resource
      description: ''
    MigrationCreateRequest:
      type: object
      properties:
        name:
          type: string
          writeOnly: true
          minLength: 1
        description:
          type: string
          writeOnly: true
          minLength: 1
        mappings:
          $ref: '#/components/schemas/MappingRequest'
        src_resource:
          type: string
          format: uuid
        dst_offering:
          type: string
          format: uuid
          writeOnly: true
        dst_plan:
          type: string
          format: uuid
          writeOnly: true
      required:
      - dst_offering
      - dst_plan
      - src_resource
      description: ''
    MigrationDetails:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        mappings:
          $ref: '#/components/schemas/Mapping'
        created_by_uuid:
          type: string
          format: uuid
          readOnly: true
        created_by_full_name:
          type: string
          readOnly: true
        src_offering_uuid:
          type: string
          format: uuid
          readOnly: true
        src_offering_name:
          type: string
          readOnly: true
        dst_offering_uuid:
          type: string
          format: uuid
          readOnly: true
        dst_offering_name:
          type: string
          readOnly: true
        src_resource_uuid:
          type: string
          format: uuid
          readOnly: true
        src_resource_name:
          type: string
          readOnly: true
        dst_resource_uuid:
          type: string
          format: uuid
          readOnly: true
        dst_resource_name:
          type: string
          readOnly: true
        dst_resource_state:
          type: string
          readOnly: true
        state:
          type: string
          readOnly: true
        error_message:
          type: string
        error_traceback:
          type: string
      required:
      - created
      - created_by_full_name
      - created_by_uuid
      - dst_offering_name
      - dst_offering_uuid
      - dst_resource_name
      - dst_resource_state
      - dst_resource_uuid
      - mappings
      - modified
      - src_offering_name
      - src_offering_uuid
      - src_resource_name
      - src_resource_uuid
      - state
      - uuid
      description: ''
    MigrationDetailsRequest:
      type: object
      properties:
        mappings:
          $ref: '#/components/schemas/MappingRequest'
        error_message:
          type: string
        error_traceback:
          type: string
      required:
      - mappings
      description: ''
    MinimalConsumptionLogicEnum:
      enum:
      - fixed
      - linear
      type: string
      description: ''
    MoveOfferingRequest:
      type: object
      properties:
        customer:
          type: string
          format: uri
          description: Target customer URL with service provider profile where the
            offering should be moved
        preserve_permissions:
          type: boolean
          description: Whether to preserve existing permissions when moving the offering
      required:
      - customer
      - preserve_permissions
      description: ''
    MoveProjectRequest:
      type: object
      properties:
        customer:
          type: string
          format: uri
        preserve_permissions:
          type: boolean
      required:
      - customer
      - preserve_permissions
      description: ''
    MoveResourceRequest:
      type: object
      properties:
        project:
          allOf:
          - $ref: '#/components/schemas/ProjectHyperlinkRequest'
          writeOnly: true
          description: Target project URL where the resource should be moved
      required:
      - project
      description: ''
    MyAssignmentBatch:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        call_uuid:
          type: string
          format: uuid
        call_name:
          type: string
        status:
          type: string
        status_display:
          type: string
        sent_at:
          type: string
          format: date-time
        expires_at:
          type: string
          format: date-time
          nullable: true
        is_expired:
          type: boolean
        items_count:
          type: integer
        items_pending_count:
          type: integer
        manager_notes:
          type: string
      required:
      - call_name
      - call_uuid
      - expires_at
      - is_expired
      - items_count
      - items_pending_count
      - manager_notes
      - sent_at
      - status
      - status_display
      - uuid
    MyAssignmentBatchDetail:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        call_uuid:
          type: string
          format: uuid
        call_name:
          type: string
        status:
          type: string
        status_display:
          type: string
        sent_at:
          type: string
          format: date-time
        expires_at:
          type: string
          format: date-time
          nullable: true
        is_expired:
          type: boolean
        items_count:
          type: integer
        items_pending_count:
          type: integer
        manager_notes:
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/MyAssignmentItem'
      required:
      - call_name
      - call_uuid
      - expires_at
      - is_expired
      - items
      - items_count
      - items_pending_count
      - manager_notes
      - sent_at
      - status
      - status_display
      - uuid
    MyAssignmentItem:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        proposal_uuid:
          type: string
          format: uuid
        proposal_name:
          type: string
        proposal_slug:
          type: string
        proposal_summary:
          type: string
        status:
          type: string
        status_display:
          type: string
        affinity_score:
          type: number
          format: double
          nullable: true
        has_coi:
          type: boolean
      required:
      - affinity_score
      - has_coi
      - proposal_name
      - proposal_slug
      - proposal_summary
      - proposal_uuid
      - status
      - status_display
      - uuid
    NameEnum:
      enum:
      - EESSI
      - Spack
      type: string
      description: ''
    NameUUID:
      type: object
      properties:
        name:
          type: string
          readOnly: true
          description: Name of the entity
        uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the entity
      required:
      - name
      - uuid
      description: ''
    NestedAgentProcessor:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          maxLength: 150
        last_run:
          type: string
          format: date-time
          nullable: true
        backend_type:
          type: string
          description: Type of the backend, for example SLURM.
          maxLength: 100
        backend_version:
          type: string
          nullable: true
          maxLength: 100
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - backend_type
      - created
      - modified
      - name
      - url
      - uuid
      description: ''
    NestedAgentService:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          maxLength: 150
        mode:
          type: string
          nullable: true
          maxLength: 100
        state:
          allOf:
          - $ref: '#/components/schemas/AgentServiceState'
          readOnly: true
        statistics: {}
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - created
      - modified
      - name
      - state
      - url
      - uuid
      description: ''
    NestedAgentServiceRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        mode:
          type: string
          nullable: true
          maxLength: 100
        statistics: {}
      required:
      - name
      description: ''
    NestedAttribute:
      type: object
      properties:
        key:
          type: string
          pattern: ^[a-zA-Z0-9_\-\/:]+$
          maxLength: 255
        title:
          type: string
          maxLength: 255
        type:
          $ref: '#/components/schemas/NestedAttributeTypeEnum'
        options:
          type: array
          items:
            $ref: '#/components/schemas/NestedAttributeOption'
        required:
          type: boolean
          description: A value must be provided for the attribute.
        default:
          nullable: true
      required: []
      description: ''
    NestedAttributeOption:
      type: object
      properties:
        key:
          type: string
          pattern: ^[a-zA-Z0-9_\-\/:]+$
          maxLength: 255
        title:
          type: string
          maxLength: 255
      required: []
      description: ''
    NestedAttributeOptionRequest:
      type: object
      properties:
        key:
          type: string
          minLength: 1
          pattern: ^[a-zA-Z0-9_\-\/:]+$
          maxLength: 255
        title:
          type: string
          minLength: 1
          maxLength: 255
      required:
      - key
      - title
      description: ''
    NestedAttributeRequest:
      type: object
      properties:
        key:
          type: string
          minLength: 1
          pattern: ^[a-zA-Z0-9_\-\/:]+$
          maxLength: 255
        title:
          type: string
          minLength: 1
          maxLength: 255
        type:
          $ref: '#/components/schemas/NestedAttributeTypeEnum'
        options:
          type: array
          items:
            $ref: '#/components/schemas/NestedAttributeOptionRequest'
        required:
          type: boolean
          description: A value must be provided for the attribute.
        default:
          nullable: true
      required:
      - key
      - options
      - title
      - type
      description: ''
    NestedAttributeTypeEnum:
      enum:
      - boolean
      - string
      - text
      - integer
      - choice
      - list
      type: string
      description: ''
    NestedCampaign:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        start_date:
          type: string
          format: date
          description: Starting from this date, the campaign is active.
        end_date:
          type: string
          format: date
          description: The last day the campaign is active.
        discount_type:
          $ref: '#/components/schemas/DiscountTypeEnum'
        discount:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        stock:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        description:
          type: string
          maxLength: 4096
        months:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: How many months in a row should the related service (when activated)
            get special deal (0 for indefinitely until active)
        service_provider:
          type: string
          format: uri
      required: []
    NestedColumn:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        index:
          type: integer
          maximum: 32767
          minimum: 0
          description: Index allows to reorder columns.
        title:
          type: string
          description: Title is rendered as column header.
          maxLength: 255
        attribute:
          type: string
          description: Resource attribute is rendered as table cell.
          maxLength: 255
        widget:
          nullable: true
          description: Widget field allows to customise table cell rendering.
          oneOf:
          - $ref: '#/components/schemas/WidgetEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
      required: []
      description: ''
    NestedColumnRequest:
      type: object
      properties:
        index:
          type: integer
          maximum: 32767
          minimum: 0
          description: Index allows to reorder columns.
        title:
          type: string
          minLength: 1
          description: Title is rendered as column header.
          maxLength: 255
        attribute:
          type: string
          description: Resource attribute is rendered as table cell.
          maxLength: 255
        widget:
          nullable: true
          description: Widget field allows to customise table cell rendering.
          oneOf:
          - $ref: '#/components/schemas/WidgetEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
      required:
      - index
      - title
      description: ''
    NestedCustomerUsagePolicyComponent:
      type: object
      properties:
        type:
          type: string
          readOnly: true
        limit:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
        period_name:
          type: string
          readOnly: true
        component:
          type: string
          format: uuid
      required:
      - component
      - limit
      - period_name
      - type
      description: ''
    NestedCustomerUsagePolicyComponentRequest:
      type: object
      properties:
        limit:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
        component:
          type: string
          format: uuid
      required:
      - component
      - limit
      description: ''
    NestedEndpoint:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        url:
          type: string
          description: URL of the access endpoint
      required: []
      description: ''
    NestedEndpointRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        url:
          type: string
          minLength: 1
          description: URL of the access endpoint
      required:
      - name
      - url
      description: ''
    NestedFeedback:
      type: object
      properties:
        evaluation:
          type: integer
          readOnly: true
          description: Customer satisfaction rating (1-5 stars)
        evaluation_number:
          type: integer
          readOnly: true
          description: Numeric value of the rating
        comment:
          type: string
        state:
          type: string
          readOnly: true
          description: Current state of the feedback
      required:
      - evaluation
      - evaluation_number
      - state
      description: ''
    NestedFeedbackRequest:
      type: object
      properties:
        comment:
          type: string
      description: ''
    NestedOfferingComponentLimit:
      type: object
      properties:
        type:
          type: string
        limit:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
      required:
      - limit
      - type
      description: ''
    NestedOfferingComponentLimitRequest:
      type: object
      properties:
        type:
          type: string
          minLength: 1
        limit:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
      required:
      - limit
      - type
      description: ''
    NestedOfferingFile:
      type: object
      properties:
        name:
          type: string
          maxLength: 150
        created:
          type: string
          format: date-time
          readOnly: true
        file:
          type: string
          format: uri
      required: []
      description: ''
    NestedOfferingFileRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        file:
          type: string
          format: binary
      required:
      - file
      - name
      description: ''
    NestedPartition:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        partition_name:
          type: string
          description: Name of the SLURM partition
          maxLength: 255
        cpu_bind:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default task binding policy (SLURM cpu_bind)
        def_cpu_per_gpu:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default CPUs allocated per GPU
        max_cpus_per_node:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum allocated CPUs per node
        max_cpus_per_socket:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum allocated CPUs per socket
        def_mem_per_cpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per CPU in MB
        def_mem_per_gpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per GPU in MB
        def_mem_per_node:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per node in MB
        max_mem_per_cpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Maximum memory per CPU in MB
        max_mem_per_node:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Maximum memory per node in MB
        default_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default time limit in minutes
        max_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum time limit in minutes
        grace_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Preemption grace time in seconds
        max_nodes:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum nodes per job
        min_nodes:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Minimum nodes per job
        exclusive_topo:
          type: boolean
          description: Exclusive topology access required
        exclusive_user:
          type: boolean
          description: Exclusive user access required
        priority_tier:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Priority tier for scheduling and preemption
        qos:
          type: string
          description: Quality of Service (QOS) name
          maxLength: 255
        req_resv:
          type: boolean
          description: Require reservation for job allocation
      required: []
    NestedPartitionRequest:
      type: object
      description: ''
      properties:
        partition_name:
          type: string
          minLength: 1
          description: Name of the SLURM partition
          maxLength: 255
        cpu_bind:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default task binding policy (SLURM cpu_bind)
        def_cpu_per_gpu:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default CPUs allocated per GPU
        max_cpus_per_node:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum allocated CPUs per node
        max_cpus_per_socket:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum allocated CPUs per socket
        def_mem_per_cpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per CPU in MB
        def_mem_per_gpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per GPU in MB
        def_mem_per_node:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per node in MB
        max_mem_per_cpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Maximum memory per CPU in MB
        max_mem_per_node:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Maximum memory per node in MB
        default_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default time limit in minutes
        max_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum time limit in minutes
        grace_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Preemption grace time in seconds
        max_nodes:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum nodes per job
        min_nodes:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Minimum nodes per job
        exclusive_topo:
          type: boolean
          description: Exclusive topology access required
        exclusive_user:
          type: boolean
          description: Exclusive user access required
        priority_tier:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Priority tier for scheduling and preemption
        qos:
          type: string
          description: Quality of Service (QOS) name
          maxLength: 255
        req_resv:
          type: boolean
          description: Require reservation for job allocation
      required:
      - partition_name
    NestedPlanComponent:
      type: object
      properties:
        type:
          type: string
          description: Unique internal name of the measured unit, for example floating_ip.
          readOnly: true
        name:
          type: string
          description: Display name for the measured unit, for example, Floating IP.
          readOnly: true
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          readOnly: true
        amount:
          type: integer
          maximum: 2147483647
          minimum: 0
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          title: Price per unit per billing period.
        future_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          nullable: true
          title: Price per unit for future month.
        discount_threshold:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Minimum amount to be eligible for discount.
        discount_rate:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Discount rate in percentage.
      required: []
      description: ''
    NestedPlanComponentRequest:
      type: object
      properties:
        amount:
          type: integer
          maximum: 2147483647
          minimum: 0
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          title: Price per unit per billing period.
        future_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          nullable: true
          title: Price per unit for future month.
        discount_threshold:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Minimum amount to be eligible for discount.
        discount_rate:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Discount rate in percentage.
      description: ''
    NestedPriceEstimate:
      type: object
      properties:
        total:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
        current:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
        tax:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
        tax_current:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
      required: []
      description: ''
    NestedProject:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
      required:
      - url
      - uuid
    NestedProjectPermission:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          readOnly: true
        name:
          type: string
          readOnly: true
        role_name:
          type: string
          readOnly: true
        expiration_time:
          type: string
          format: date-time
          nullable: true
      required: []
      description: ''
    NestedProviderOffering:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        type:
          type: string
          maxLength: 100
        name:
          type: string
          maxLength: 150
      required:
      - name
      - type
      - url
      - uuid
      description: ''
    NestedProviderOfferingRequest:
      type: object
      properties:
        type:
          type: string
          minLength: 1
          maxLength: 100
        name:
          type: string
          minLength: 1
          maxLength: 150
      required:
      - name
      - type
      description: ''
    NestedPublicOffering:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        type:
          type: string
          maxLength: 100
        name:
          type: string
          maxLength: 150
      required:
      - name
      - type
      - url
      - uuid
      description: ''
    NestedPublicOfferingRequest:
      type: object
      properties:
        type:
          type: string
          minLength: 1
          maxLength: 100
        name:
          type: string
          minLength: 1
          maxLength: 150
      required:
      - name
      - type
      description: ''
    NestedRemoteLocalCategory:
      type: object
      properties:
        local_category:
          type: string
          format: uri
        remote_category:
          type: string
          format: uuid
        local_category_name:
          type: string
          readOnly: true
        local_category_uuid:
          type: string
          format: uuid
          readOnly: true
        remote_category_name:
          type: string
          maxLength: 255
      required:
      - local_category
      - local_category_name
      - local_category_uuid
      - remote_category
      description: ''
    NestedRemoteLocalCategoryRequest:
      type: object
      properties:
        local_category:
          type: string
          format: uri
        remote_category:
          type: string
          format: uuid
        remote_category_name:
          type: string
          minLength: 1
          maxLength: 255
      required:
      - local_category
      - remote_category
      description: ''
    NestedRequestedOffering:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/RequestedOfferingStates'
          readOnly: true
        offering:
          type: string
          format: uri
        offering_name:
          type: string
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        provider_name:
          type: string
          readOnly: true
        category_uuid:
          type: string
          format: uuid
          readOnly: true
        category_name:
          type: string
          readOnly: true
        call_managing_organisation:
          type: string
          readOnly: true
        attributes: {}
        plan:
          type: string
          format: uri
          nullable: true
        plan_details:
          allOf:
          - $ref: '#/components/schemas/BasePublicPlan'
          readOnly: true
        options:
          allOf:
          - $ref: '#/components/schemas/OfferingOptions'
          readOnly: true
        components:
          type: array
          items:
            $ref: '#/components/schemas/OfferingComponent'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required: []
      description: ''
    NestedRequestedOfferingRequest:
      type: object
      properties:
        offering:
          type: string
          format: uri
        attributes: {}
        plan:
          type: string
          format: uri
          nullable: true
      required:
      - offering
      description: ''
    NestedRole:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        url:
          type: string
          format: uri
          readOnly: true
      required: []
      description: ''
    NestedRoleRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
      required:
      - name
      description: ''
    NestedRound:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          readOnly: true
        start_time:
          type: string
          format: date-time
        cutoff_time:
          type: string
          format: date-time
        status:
          allOf:
          - $ref: '#/components/schemas/RoundStatus'
          readOnly: true
        review_strategy:
          $ref: '#/components/schemas/ReviewStrategyEnum'
        deciding_entity:
          $ref: '#/components/schemas/DecidingEntityEnum'
        allocation_time:
          $ref: '#/components/schemas/AllocationTimeEnum'
        allocation_date:
          type: string
          format: date-time
          nullable: true
        minimal_average_scoring:
          type: string
          format: decimal
          pattern: ^-?\d{0,4}(?:\.\d{0,1})?$
          nullable: true
        review_duration_in_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        minimum_number_of_reviewers:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
      required: []
      description: ''
    NestedRoundRequest:
      type: object
      properties:
        slug:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        start_time:
          type: string
          format: date-time
        cutoff_time:
          type: string
          format: date-time
        review_strategy:
          $ref: '#/components/schemas/ReviewStrategyEnum'
        deciding_entity:
          $ref: '#/components/schemas/DecidingEntityEnum'
        allocation_time:
          $ref: '#/components/schemas/AllocationTimeEnum'
        allocation_date:
          type: string
          format: date-time
          nullable: true
        minimal_average_scoring:
          type: string
          format: decimal
          pattern: ^-?\d{0,4}(?:\.\d{0,1})?$
          nullable: true
        review_duration_in_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        minimum_number_of_reviewers:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
      required:
      - cutoff_time
      - start_time
      description: ''
    NestedScreenshot:
      type: object
      properties:
        name:
          type: string
          maxLength: 150
        uuid:
          type: string
          format: uuid
          readOnly: true
        description:
          type: string
          maxLength: 4096
        image:
          type: string
          format: uri
        thumbnail:
          type: string
          format: uri
          readOnly: true
          nullable: true
        created:
          type: string
          format: date-time
          readOnly: true
      required: []
      description: ''
    NestedScreenshotRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        image:
          type: string
          format: binary
      required:
      - image
      - name
      description: ''
    NestedSection:
      type: object
      properties:
        key:
          type: string
          maxLength: 255
        title:
          type: string
          maxLength: 255
        attributes:
          type: array
          items:
            $ref: '#/components/schemas/NestedAttribute'
          readOnly: true
        is_standalone:
          type: boolean
          description: Whether section is rendered as a separate tab.
      required: []
      description: ''
    NestedSectionRequest:
      type: object
      properties:
        key:
          type: string
          minLength: 1
          maxLength: 255
        title:
          type: string
          minLength: 1
          maxLength: 255
        is_standalone:
          type: boolean
          description: Whether section is rendered as a separate tab.
      required:
      - key
      - title
      description: ''
    NestedSecurityGroupRule:
      type: object
      properties:
        ethertype:
          allOf:
          - $ref: '#/components/schemas/EthertypeEnum'
          description: IP protocol version - either 'IPv4' or 'IPv6'
        direction:
          allOf:
          - $ref: '#/components/schemas/DirectionEnum'
          description: Traffic direction - either 'ingress' (incoming) or 'egress'
            (outgoing)
        protocol:
          description: The network protocol (TCP, UDP, ICMP, or empty for any protocol)
          oneOf:
          - $ref: '#/components/schemas/ProtocolEnum'
          - $ref: '#/components/schemas/BlankEnum'
        from_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Starting port number in the range (1-65535)
        to_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Ending port number in the range (1-65535)
        cidr:
          type: string
          nullable: true
          description: CIDR notation for the source/destination network address range
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        remote_group_name:
          type: string
          readOnly: true
        remote_group_uuid:
          type: string
          format: uuid
          readOnly: true
        id:
          type: integer
          readOnly: true
      required: []
      description: ''
    NestedSecurityGroupRuleRequest:
      type: object
      properties:
        ethertype:
          allOf:
          - $ref: '#/components/schemas/EthertypeEnum'
          description: IP protocol version - either 'IPv4' or 'IPv6'
        direction:
          allOf:
          - $ref: '#/components/schemas/DirectionEnum'
          description: Traffic direction - either 'ingress' (incoming) or 'egress'
            (outgoing)
        protocol:
          description: The network protocol (TCP, UDP, ICMP, or empty for any protocol)
          oneOf:
          - $ref: '#/components/schemas/ProtocolEnum'
          - $ref: '#/components/schemas/BlankEnum'
        from_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Starting port number in the range (1-65535)
        to_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Ending port number in the range (1-65535)
        cidr:
          type: string
          nullable: true
          description: CIDR notation for the source/destination network address range
          maxLength: 255
        description:
          type: string
          maxLength: 4096
      description: ''
    NestedSoftwareCatalog:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        catalog:
          allOf:
          - $ref: '#/components/schemas/CatalogSummary'
          readOnly: true
        enabled_cpu_family:
          description: 'List of enabled CPU families: [''x86_64'', ''aarch64'']'
        enabled_cpu_microarchitectures:
          description: 'List of enabled CPU microarchitectures: [''generic'', ''zen3'']'
        package_count:
          type: integer
          readOnly: true
        partition:
          allOf:
          - $ref: '#/components/schemas/PartitionSummary'
          readOnly: true
          nullable: true
      required: []
      description: ''
    NestedSoftwareCatalogRequest:
      type: object
      properties:
        enabled_cpu_family:
          description: 'List of enabled CPU families: [''x86_64'', ''aarch64'']'
        enabled_cpu_microarchitectures:
          description: 'List of enabled CPU microarchitectures: [''generic'', ''zen3'']'
      description: ''
    NestedSoftwareTarget:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        target_type:
          type: string
          description: Type of target (architecture, platform, variant, etc.)
          maxLength: 50
        target_name:
          type: string
          description: Target identifier (x86_64/generic, linux, variant_name, etc.)
          maxLength: 100
        target_subtype:
          type: string
          description: Target subtype (microarchitecture, distribution, etc.)
          maxLength: 50
        location:
          type: string
          description: Target location (CVMFS path, download URL, etc.)
          maxLength: 500
        metadata:
          description: Target-specific metadata (build options, system requirements,
            etc.)
      required:
      - uuid
    NestedSoftwareTargetRequest:
      type: object
      description: ''
      properties:
        target_type:
          type: string
          minLength: 1
          description: Type of target (architecture, platform, variant, etc.)
          maxLength: 50
        target_name:
          type: string
          minLength: 1
          description: Target identifier (x86_64/generic, linux, variant_name, etc.)
          maxLength: 100
        target_subtype:
          type: string
          description: Target subtype (microarchitecture, distribution, etc.)
          maxLength: 50
        location:
          type: string
          description: Target location (CVMFS path, download URL, etc.)
          maxLength: 500
        metadata:
          description: Target-specific metadata (build options, system requirements,
            etc.)
    NestedSoftwareVersion:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        version:
          type: string
          maxLength: 100
        release_date:
          type: string
          format: date
          nullable: true
        targets:
          type: array
          items:
            $ref: '#/components/schemas/NestedSoftwareTarget'
          readOnly: true
        module:
          type: object
          additionalProperties: {}
          readOnly: true
        required_modules:
          type: array
          items: {}
          readOnly: true
        extensions:
          type: array
          items: {}
          readOnly: true
        toolchain:
          type: object
          additionalProperties: {}
          readOnly: true
        toolchain_families_compatibility:
          type: array
          items: {}
          readOnly: true
      required:
      - extensions
      - module
      - required_modules
      - targets
      - toolchain
      - toolchain_families_compatibility
      - uuid
      - version
    NestedSoftwareVersionRequest:
      type: object
      description: ''
      properties:
        version:
          type: string
          minLength: 1
          maxLength: 100
        release_date:
          type: string
          format: date
          nullable: true
      required:
      - version
    NestedTag:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 100
      required: []
      description: ''
    NestedTagRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 100
      required:
      - name
      description: ''
    NetworkRBACPolicy:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        network:
          type: string
          format: uri
        network_name:
          type: string
          readOnly: true
        target_tenant:
          type: string
          format: uri
        target_tenant_name:
          type: string
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        policy_type:
          allOf:
          - $ref: '#/components/schemas/PolicyTypeEnum'
          default: access_as_shared
          description: Type of access granted - either shared access or external network
            access
        created:
          type: string
          format: date-time
          readOnly: true
      required: []
    NetworkRBACPolicyRequest:
      type: object
      description: ''
      properties:
        network:
          type: string
          format: uri
        target_tenant:
          type: string
          format: uri
        policy_type:
          allOf:
          - $ref: '#/components/schemas/PolicyTypeEnum'
          default: access_as_shared
          description: Type of access granted - either shared access or external network
            access
      required:
      - network
      - target_tenant
    NodeDiskDriverEnum:
      enum:
      - sd
      - vd
      type: string
      description: ''
    Notification:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        key:
          type: string
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        enabled:
          type: boolean
          readOnly: true
          description: Indicates if notification is enabled or disabled
        created:
          type: string
          format: date-time
          readOnly: true
        templates:
          type: array
          items:
            $ref: '#/components/schemas/NotificationTemplateDetailSerializers'
          readOnly: true
        context_schema:
          type: object
          additionalProperties: {}
          description: |-
            Finds the notification definition in the global NOTIFICATIONS
            dictionary and returns its 'context' schema.
          readOnly: true
      required:
      - context_schema
      - created
      - enabled
      - key
      - templates
      - url
      - uuid
      description: ''
    NotificationRequest:
      type: object
      properties:
        key:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
          maxLength: 4096
      required:
      - key
      description: ''
    NotificationTemplateDetailSerializers:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        path:
          type: string
          description: 'Example: ''flatpages/default.html'''
          maxLength: 150
        name:
          type: string
          maxLength: 150
        content:
          type: string
          nullable: true
          readOnly: true
        original_content:
          type: string
          nullable: true
          readOnly: true
        is_content_overridden:
          type: boolean
          readOnly: true
      required:
      - content
      - is_content_overridden
      - name
      - original_content
      - path
      - url
      - uuid
      description: ''
    NotificationTemplateDetailSerializersRequest:
      type: object
      properties:
        path:
          type: string
          minLength: 1
          description: 'Example: ''flatpages/default.html'''
          maxLength: 150
        name:
          type: string
          minLength: 1
          maxLength: 150
      required:
      - name
      - path
      description: ''
    NotificationTemplateUpdateSerializersRequest:
      type: object
      properties:
        content:
          type: string
          minLength: 1
      required:
      - content
      description: ''
    NullEnum:
      enum:
      - null
      description: ''
    ObservableObjectTypeEnum:
      enum:
      - order
      - user_role
      - resource
      - offering_user
      - importable_resources
      - service_account
      - course_account
      - resource_periodic_limits
      type: string
      description: ''
    ObtainAuthTokenRequest:
      type: object
      description: ''
      properties:
        username:
          type: string
          minLength: 1
          description: Username for authentication
          maxLength: 128
        password:
          type: string
          minLength: 1
          description: Password for authentication
          maxLength: 128
      required:
      - password
      - username
    OecdFos2007CodeEnum:
      enum:
      - '1.1'
      - '1.2'
      - '1.3'
      - '1.4'
      - '1.5'
      - '1.6'
      - '1.7'
      - '2.1'
      - '2.2'
      - '2.3'
      - '2.4'
      - '2.5'
      - '2.6'
      - '2.7'
      - '2.8'
      - '2.9'
      - '2.10'
      - '2.11'
      - '2.12'
      - '3.1'
      - '3.2'
      - '3.3'
      - '3.4'
      - '3.5'
      - '4.1'
      - '4.2'
      - '4.3'
      - '4.4'
      - '4.5'
      - '5.1'
      - '5.2'
      - '5.3'
      - '5.4'
      - '5.5'
      - '5.6'
      - '5.7'
      - '5.8'
      - '5.9'
      - '6.1'
      - '6.2'
      - '6.3'
      - '6.4'
      - '6.5'
      type: string
      description: ''
    Offering:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        description:
          type: string
          maxLength: 4096
        full_description:
          type: string
        privacy_policy_link:
          type: string
          format: uri
          maxLength: 200
        access_url:
          type: string
          format: uri
          description: Publicly accessible offering access URL
          maxLength: 200
        endpoints:
          type: array
          items:
            $ref: '#/components/schemas/NestedEndpoint'
          readOnly: true
        software_catalogs:
          type: array
          items:
            $ref: '#/components/schemas/NestedSoftwareCatalog'
          readOnly: true
        partitions:
          type: array
          items:
            $ref: '#/components/schemas/NestedPartition'
          readOnly: true
        roles:
          type: array
          items:
            $ref: '#/components/schemas/NestedRole'
          readOnly: true
        customer:
          type: string
          format: uri
          nullable: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        customer_name:
          type: string
          readOnly: true
          nullable: true
        project:
          type: string
          format: uri
          readOnly: true
          nullable: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        project_name:
          type: string
          readOnly: true
          nullable: true
        category:
          type: string
          format: uri
        category_uuid:
          type: string
          format: uuid
          readOnly: true
        category_title:
          type: string
          readOnly: true
        attributes:
          type: object
          additionalProperties: {}
          readOnly: true
        options:
          allOf:
          - $ref: '#/components/schemas/OfferingOptions'
          readOnly: true
        resource_options:
          allOf:
          - $ref: '#/components/schemas/OfferingOptions'
          readOnly: true
        components:
          type: array
          items:
            $ref: '#/components/schemas/OfferingComponent'
          readOnly: true
        plugin_options:
          allOf:
          - $ref: '#/components/schemas/MergedPluginOptions'
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/OfferingState'
          readOnly: true
        vendor_details:
          type: string
        getting_started:
          type: string
        integration_guide:
          type: string
        thumbnail:
          type: string
          format: uri
          nullable: true
        order_count:
          type: integer
          readOnly: true
        plans:
          type: array
          items:
            $ref: '#/components/schemas/BasePublicPlan'
          readOnly: true
        screenshots:
          type: array
          items:
            $ref: '#/components/schemas/NestedScreenshot'
          readOnly: true
        type:
          type: string
          maxLength: 100
        shared:
          type: boolean
          description: Accessible to all customers.
        billable:
          type: boolean
          description: Purchase and usage is invoiced.
        scope:
          type: string
          readOnly: true
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        scope_name:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        scope_state:
          nullable: true
          readOnly: true
          oneOf:
          - $ref: '#/components/schemas/CoreStates'
          - $ref: '#/components/schemas/NullEnum'
        scope_error_message:
          type: string
          nullable: true
          readOnly: true
        files:
          type: array
          items:
            $ref: '#/components/schemas/NestedOfferingFile'
          readOnly: true
        quotas:
          type: array
          items:
            $ref: '#/components/schemas/Quota'
          readOnly: true
        paused_reason:
          type: string
          readOnly: true
        datacite_doi:
          type: string
          maxLength: 255
        citation_count:
          type: integer
          readOnly: true
          description: Number of citations of a DOI
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        backend_id:
          type: string
          maxLength: 255
        organization_groups:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationGroup'
          readOnly: true
        tags:
          type: array
          items:
            $ref: '#/components/schemas/NestedTag'
          readOnly: true
        image:
          type: string
          format: uri
          nullable: true
        total_customers:
          type: integer
          nullable: true
          readOnly: true
        total_cost:
          type: integer
          nullable: true
          readOnly: true
        total_cost_estimated:
          type: integer
          nullable: true
          readOnly: true
        parent_description:
          type: string
          readOnly: true
          nullable: true
        parent_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        parent_name:
          type: string
          readOnly: true
          nullable: true
        backend_metadata: {}
        has_compliance_requirements:
          type: boolean
          readOnly: true
        billing_type_classification:
          type: string
          description: |-
            Classify offering components by billing type.
            Returns 'limit_only', 'usage_only', or 'mixed'.
          readOnly: true
        compliance_checklist:
          type: string
          format: uri
          nullable: true
        user_has_consent:
          type: boolean
          readOnly: true
        is_accessible:
          type: boolean
          readOnly: true
        googlecalendar:
          $ref: '#/components/schemas/GoogleCalendar'
      required: []
    OfferingBackendIdRulesUpdateRequest:
      type: object
      properties:
        backend_id_rules:
          description: 'Validation rules for resource backend_id: format regex and
            uniqueness scope.'
      description: ''
    OfferingBackendMetadataRequest:
      type: object
      properties:
        backend_metadata: {}
      description: ''
    OfferingComplianceChecklistUpdateRequest:
      type: object
      properties:
        compliance_checklist:
          type: string
          format: uuid
          nullable: true
      description: ''
    OfferingComponent:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        billing_type:
          $ref: '#/components/schemas/BillingTypeEnum'
        type:
          type: string
          description: Unique internal name of the measured unit, for example floating_ip.
          pattern: ^[a-zA-Z0-9_\-\/:]+$
          maxLength: 50
        name:
          type: string
          description: Display name for the measured unit, for example, Floating IP.
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          maxLength: 30
        unit_factor:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          description: The conversion factor from backend units to measured_unit
        limit_period:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/LimitPeriodEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        limit_amount:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        article_code:
          type: string
          maxLength: 30
        max_value:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        min_value:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        max_available_limit:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        is_boolean:
          type: boolean
        default_limit:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        factor:
          type: integer
          nullable: true
          readOnly: true
        is_builtin:
          type: boolean
          readOnly: true
        is_prepaid:
          type: boolean
        overage_component:
          type: string
          format: uuid
          nullable: true
        min_prepaid_duration:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        max_prepaid_duration:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
      required: []
      description: ''
    OfferingComponentLimitRequest:
      type: object
      properties:
        min:
          type: integer
          minimum: 0
          description: Minimum allowed value
        max:
          type: integer
          minimum: 0
          description: Maximum allowed value
        max_available_limit:
          type: integer
          minimum: 0
          description: Maximum available limit across all resources
      required:
      - max
      - max_available_limit
      - min
      description: ''
    OfferingComponentRequest:
      type: object
      properties:
        billing_type:
          $ref: '#/components/schemas/BillingTypeEnum'
        type:
          type: string
          minLength: 1
          description: Unique internal name of the measured unit, for example floating_ip.
          pattern: ^[a-zA-Z0-9_\-\/:]+$
          maxLength: 50
        name:
          type: string
          minLength: 1
          description: Display name for the measured unit, for example, Floating IP.
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          maxLength: 30
        unit_factor:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          description: The conversion factor from backend units to measured_unit
        limit_period:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/LimitPeriodEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        limit_amount:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        article_code:
          type: string
          maxLength: 30
        max_value:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        min_value:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        max_available_limit:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        is_boolean:
          type: boolean
        default_limit:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        is_prepaid:
          type: boolean
        overage_component:
          type: string
          format: uuid
          nullable: true
        min_prepaid_duration:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        max_prepaid_duration:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
      required:
      - billing_type
      - name
      - type
      description: ''
    OfferingComponentStat:
      type: object
      properties:
        period:
          type: string
          readOnly: true
        billing_period:
          type: string
          readOnly: true
        date:
          type: string
          readOnly: true
        usage:
          type: integer
          readOnly: true
        description:
          type: string
          readOnly: true
        measured_unit:
          type: string
          readOnly: true
        type:
          type: string
          readOnly: true
        name:
          type: string
          readOnly: true
      required:
      - billing_period
      - date
      - description
      - measured_unit
      - name
      - period
      - type
      - usage
      description: ''
    OfferingCost:
      type: object
      properties:
        offering_uuid:
          type: string
          format: uuid
          description: UUID of the offering
        offering_name:
          type: string
          description: Name of the offering
        cost:
          type: number
          format: double
          description: Total cost for the offering
      required:
      - cost
      - offering_name
      - offering_uuid
      description: ''
    OfferingCostsSummary:
      type: object
      description: ''
      properties:
        total_cost:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Total cost of all active resources across all offerings
        offering_count:
          type: integer
          description: Number of offerings with active resources
        average_cost:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Average cost per offering
      required:
      - average_cost
      - offering_count
      - total_cost
    OfferingCountryStats:
      type: object
      properties:
        country:
          type: string
          description: Country code of the offering
        count:
          type: integer
          description: Number of offerings in this country
      required:
      - count
      - country
      description: ''
    OfferingCreateRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        description:
          type: string
        full_description:
          type: string
        privacy_policy_link:
          type: string
          format: uri
          maxLength: 200
        access_url:
          type: string
          format: uri
          description: Publicly accessible offering access URL
          maxLength: 200
        customer:
          type: string
          format: uri
          nullable: true
        category:
          type: string
          format: uri
        attributes: {}
        options:
          $ref: '#/components/schemas/OfferingOptionsRequest'
        resource_options:
          $ref: '#/components/schemas/OfferingOptionsRequest'
        components:
          type: array
          items:
            $ref: '#/components/schemas/OfferingComponentRequest'
        plugin_options:
          $ref: '#/components/schemas/MergedPluginOptionsRequest'
        vendor_details:
          type: string
        getting_started:
          type: string
        integration_guide:
          type: string
        thumbnail:
          type: string
          format: binary
          nullable: true
        plans:
          type: array
          items:
            $ref: '#/components/schemas/BaseProviderPlanRequest'
        type:
          type: string
          minLength: 1
          maxLength: 100
        shared:
          type: boolean
          description: Accessible to all customers.
        billable:
          type: boolean
          description: Purchase and usage is invoiced.
        datacite_doi:
          type: string
          maxLength: 255
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        backend_id:
          type: string
          maxLength: 255
        backend_id_rules:
          description: 'Validation rules for resource backend_id: format regex and
            uniqueness scope.'
        image:
          type: string
          format: binary
          nullable: true
        backend_metadata: {}
        compliance_checklist:
          type: string
          format: uri
          nullable: true
        limits:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/OfferingComponentLimitRequest'
          writeOnly: true
      required:
      - category
      - name
      - type
    OfferingDescriptionUpdateRequest:
      type: object
      description: ''
      properties:
        category:
          type: string
          format: uri
      required:
      - category
    OfferingEstimatedCostPolicy:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        scope:
          type: string
          format: uri
        scope_name:
          type: string
          readOnly: true
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
        actions:
          type: string
          maxLength: 255
        created:
          type: string
          format: date-time
          readOnly: true
        created_by_full_name:
          type: string
          readOnly: true
        created_by_username:
          type: string
          readOnly: true
        has_fired:
          type: boolean
          readOnly: true
        fired_datetime:
          type: string
          format: date-time
          readOnly: true
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        limit_cost:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
        period_name:
          type: string
          readOnly: true
        organization_groups:
          type: array
          items:
            type: string
            format: uri
        apply_to_all:
          type: boolean
          description: If True, policy applies to all customers. Mutually exclusive
            with organization_groups.
      required:
      - actions
      - created
      - created_by_full_name
      - created_by_username
      - fired_datetime
      - has_fired
      - limit_cost
      - period_name
      - scope
      - scope_name
      - scope_uuid
      - url
      - uuid
    OfferingEstimatedCostPolicyRequest:
      type: object
      description: ''
      properties:
        scope:
          type: string
          format: uri
        actions:
          type: string
          minLength: 1
          maxLength: 255
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        limit_cost:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
        organization_groups:
          type: array
          items:
            type: string
            format: uri
        apply_to_all:
          type: boolean
          description: If True, policy applies to all customers. Mutually exclusive
            with organization_groups.
      required:
      - actions
      - limit_cost
      - scope
    OfferingExportData:
      type: object
      description: ''
      properties:
        offering:
          $ref: '#/components/schemas/ExportOfferingData'
        components:
          type: array
          items:
            $ref: '#/components/schemas/ExportComponentData'
        plans:
          type: array
          items:
            $ref: '#/components/schemas/ExportPlanData'
        screenshots:
          type: array
          items:
            $ref: '#/components/schemas/ExportScreenshotData'
        files:
          type: array
          items:
            $ref: '#/components/schemas/ExportFileData'
        endpoints:
          type: array
          items:
            $ref: '#/components/schemas/ExportEndpointData'
        organization_groups:
          type: array
          items:
            $ref: '#/components/schemas/ExportOrganizationGroupData'
        terms_of_service:
          type: array
          items:
            $ref: '#/components/schemas/ExportTermsOfServiceData'
        plugin_options: {}
        secret_options: {}
        resource_options: {}
      required:
      - offering
    OfferingExportDataRequest:
      type: object
      description: ''
      properties:
        offering:
          $ref: '#/components/schemas/ExportOfferingDataRequest'
        components:
          type: array
          items:
            $ref: '#/components/schemas/ExportComponentDataRequest'
        plans:
          type: array
          items:
            $ref: '#/components/schemas/ExportPlanDataRequest'
        screenshots:
          type: array
          items:
            $ref: '#/components/schemas/ExportScreenshotDataRequest'
        files:
          type: array
          items:
            $ref: '#/components/schemas/ExportFileDataRequest'
        endpoints:
          type: array
          items:
            $ref: '#/components/schemas/ExportEndpointDataRequest'
        organization_groups:
          type: array
          items:
            $ref: '#/components/schemas/ExportOrganizationGroupDataRequest'
        terms_of_service:
          type: array
          items:
            $ref: '#/components/schemas/ExportTermsOfServiceDataRequest'
        plugin_options: {}
        secret_options: {}
        resource_options: {}
      required:
      - offering
    OfferingExportParametersRequest:
      type: object
      description: ''
      properties:
        include_components:
          type: boolean
          default: true
          description: Include offering components in export
        include_plans:
          type: boolean
          default: true
          description: Include offering plans in export
        include_screenshots:
          type: boolean
          default: true
          description: Include offering screenshots in export
        include_files:
          type: boolean
          default: true
          description: Include offering files in export
        include_endpoints:
          type: boolean
          default: true
          description: Include offering access endpoints in export
        include_organization_groups:
          type: boolean
          default: true
          description: Include organization groups associations in export
        include_terms_of_service:
          type: boolean
          default: true
          description: Include terms of service configurations in export
        include_plugin_options:
          type: boolean
          default: true
          description: Include plugin options in export
        include_secret_options:
          type: boolean
          default: false
          description: 'Include secret options in export (WARNING: sensitive data)'
        include_attributes:
          type: boolean
          default: true
          description: Include offering attributes in export
        include_options:
          type: boolean
          default: true
          description: Include offering options in export
        include_resource_options:
          type: boolean
          default: true
          description: Include resource options in export
    OfferingExportResponse:
      type: object
      description: ''
      properties:
        offering_uuid:
          type: string
          format: uuid
          description: UUID of the exported offering
        offering_name:
          type: string
          description: Name of the exported offering
        export_data:
          allOf:
          - $ref: '#/components/schemas/OfferingExportData'
          description: Complete export data containing the offering structure
        exported_components:
          type: array
          items:
            type: string
          description: List of exported component types
        export_timestamp:
          type: string
          format: date-time
          description: Timestamp when the export was completed
      required:
      - export_data
      - export_timestamp
      - exported_components
      - offering_name
      - offering_uuid
    OfferingFile:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        offering:
          type: string
          format: uri
        created:
          type: string
          format: date-time
          readOnly: true
        file:
          type: string
          format: uri
      required: []
    OfferingFileRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        offering:
          type: string
          format: uri
        file:
          type: string
          format: binary
      required:
      - file
      - name
      - offering
    OfferingGroups:
      type: object
      properties:
        customer_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          readOnly: true
        offerings:
          type: array
          items:
            $ref: '#/components/schemas/OfferingReference'
          readOnly: true
      required:
      - customer_name
      - customer_uuid
      - offerings
      description: ''
    OfferingImageRequest:
      type: object
      properties:
        image:
          type: string
          format: binary
      required:
      - image
      description: ''
    OfferingImportParametersRequest:
      type: object
      description: ''
      properties:
        customer:
          type: string
          format: uuid
          nullable: true
          description: Target customer for imported offering. If not provided, uses
            current user's customer
        category:
          type: string
          minLength: 1
          nullable: true
          description: Target category name for imported offering. If not provided,
            uses category from export data
        project:
          type: string
          format: uuid
          nullable: true
          description: Target project for imported offering (optional)
        import_components:
          type: boolean
          default: true
          description: Import offering components
        import_plans:
          type: boolean
          default: true
          description: Import offering plans
        import_screenshots:
          type: boolean
          default: true
          description: Import offering screenshots
        import_files:
          type: boolean
          default: true
          description: Import offering files
        import_endpoints:
          type: boolean
          default: true
          description: Import offering access endpoints
        import_organization_groups:
          type: boolean
          default: false
          description: Import organization groups associations (may fail if groups
            don't exist)
        import_terms_of_service:
          type: boolean
          default: true
          description: Import terms of service configurations
        import_plugin_options:
          type: boolean
          default: true
          description: Import plugin options
        import_secret_options:
          type: boolean
          default: false
          description: 'Import secret options (WARNING: will overwrite existing secrets)'
        overwrite_existing:
          type: boolean
          default: false
          description: Overwrite existing offering if one with the same name exists
        offering_data:
          allOf:
          - $ref: '#/components/schemas/OfferingExportDataRequest'
          description: The exported offering data to import
      required:
      - offering_data
    OfferingImportResponse:
      type: object
      description: ''
      properties:
        imported_offering_uuid:
          type: string
          format: uuid
          description: UUID of the imported offering
        imported_offering_name:
          type: string
          description: Name of the imported offering
        imported_components:
          type: array
          items:
            type: string
          description: List of imported component types
        warnings:
          type: array
          items:
            type: string
          description: List of warnings encountered during import
        import_timestamp:
          type: string
          format: date-time
          description: Timestamp when the import was completed
      required:
      - import_timestamp
      - imported_components
      - imported_offering_name
      - imported_offering_uuid
    OfferingIntegrationUpdateRequest:
      type: object
      properties:
        secret_options:
          $ref: '#/components/schemas/MergedSecretOptionsRequest'
        plugin_options:
          $ref: '#/components/schemas/MergedPluginOptionsRequest'
        service_attributes: {}
        backend_id:
          type: string
          maxLength: 255
      description: ''
    OfferingLocationUpdateRequest:
      type: object
      properties:
        latitude:
          type: number
          format: double
        longitude:
          type: number
          format: double
      required:
      - latitude
      - longitude
      description: ''
    OfferingOptions:
      type: object
      properties:
        order:
          type: array
          items:
            type: string
        options:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/OptionField'
      required: []
      description: ''
    OfferingOptionsRequest:
      type: object
      properties:
        order:
          type: array
          items:
            type: string
            minLength: 1
        options:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/OptionFieldRequest'
      required:
      - options
      - order
      description: ''
    OfferingOptionsUpdateRequest:
      type: object
      properties:
        options:
          $ref: '#/components/schemas/OfferingOptionsRequest'
      required:
      - options
      description: ''
    OfferingOverviewUpdateRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
        full_description:
          type: string
        privacy_policy_link:
          type: string
          format: uri
          maxLength: 200
        access_url:
          type: string
          format: uri
          description: Publicly accessible offering access URL
          maxLength: 200
        getting_started:
          type: string
        integration_guide:
          type: string
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
      required:
      - name
    OfferingPartition:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        offering:
          type: string
          format: uuid
        offering_name:
          type: string
          readOnly: true
        partition_name:
          type: string
          description: Name of the SLURM partition
          maxLength: 255
        cpu_bind:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default task binding policy (SLURM cpu_bind)
        def_cpu_per_gpu:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default CPUs allocated per GPU
        max_cpus_per_node:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum allocated CPUs per node
        max_cpus_per_socket:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum allocated CPUs per socket
        def_mem_per_cpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per CPU in MB
        def_mem_per_gpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per GPU in MB
        def_mem_per_node:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per node in MB
        max_mem_per_cpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Maximum memory per CPU in MB
        max_mem_per_node:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Maximum memory per node in MB
        default_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default time limit in minutes
        max_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum time limit in minutes
        grace_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Preemption grace time in seconds
        max_nodes:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum nodes per job
        min_nodes:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Minimum nodes per job
        exclusive_topo:
          type: boolean
          description: Exclusive topology access required
        exclusive_user:
          type: boolean
          description: Exclusive user access required
        priority_tier:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Priority tier for scheduling and preemption
        qos:
          type: string
          description: Quality of Service (QOS) name
          maxLength: 255
        req_resv:
          type: boolean
          description: Require reservation for job allocation
      required:
      - created
      - modified
      - offering
      - offering_name
      - partition_name
      - uuid
    OfferingPartitionRequest:
      type: object
      description: ''
      properties:
        offering:
          type: string
          format: uuid
        partition_name:
          type: string
          minLength: 1
          description: Name of the SLURM partition
          maxLength: 255
        cpu_bind:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default task binding policy (SLURM cpu_bind)
        def_cpu_per_gpu:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default CPUs allocated per GPU
        max_cpus_per_node:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum allocated CPUs per node
        max_cpus_per_socket:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum allocated CPUs per socket
        def_mem_per_cpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per CPU in MB
        def_mem_per_gpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per GPU in MB
        def_mem_per_node:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per node in MB
        max_mem_per_cpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Maximum memory per CPU in MB
        max_mem_per_node:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Maximum memory per node in MB
        default_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default time limit in minutes
        max_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum time limit in minutes
        grace_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Preemption grace time in seconds
        max_nodes:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum nodes per job
        min_nodes:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Minimum nodes per job
        exclusive_topo:
          type: boolean
          description: Exclusive topology access required
        exclusive_user:
          type: boolean
          description: Exclusive user access required
        priority_tier:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Priority tier for scheduling and preemption
        qos:
          type: string
          description: Quality of Service (QOS) name
          maxLength: 255
        req_resv:
          type: boolean
          description: Require reservation for job allocation
      required:
      - offering
      - partition_name
    OfferingPauseRequest:
      type: object
      properties:
        paused_reason:
          type: string
      description: ''
    OfferingPermission:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        pk:
          type: integer
          readOnly: true
          title: ID
        created:
          type: string
          format: date-time
          readOnly: true
        expiration_time:
          type: string
          format: date-time
          nullable: true
        created_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        offering:
          type: string
          format: uri
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_slug:
          type: string
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        role:
          type: string
          format: uri
          readOnly: true
        role_name:
          type: string
          readOnly: true
        user:
          type: string
          format: uri
          readOnly: true
        user_full_name:
          type: string
          readOnly: true
        user_native_name:
          type: string
          readOnly: true
        user_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        user_uuid:
          type: string
          format: uuid
          readOnly: true
        user_email:
          type: string
          format: email
          title: Email address
          readOnly: true
      required:
      - created
      - created_by
      - offering
      - offering_name
      - offering_slug
      - offering_uuid
      - pk
      - role
      - role_name
      - url
      - user
      - user_email
      - user_full_name
      - user_native_name
      - user_username
      - user_uuid
    OfferingReference:
      type: object
      properties:
        offering_name:
          type: string
          readOnly: true
          description: Name of the offering
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the offering
      required:
      - offering_name
      - offering_uuid
      description: ''
    OfferingReferral:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        scope:
          type: string
          readOnly: true
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
        pid:
          type: string
          maxLength: 255
        relation_type:
          type: string
          maxLength: 255
        resource_type:
          type: string
          maxLength: 255
        creator:
          type: string
          maxLength: 255
        publisher:
          type: string
          maxLength: 255
        published:
          type: string
          maxLength: 255
        title:
          type: string
          maxLength: 255
        referral_url:
          type: string
          maxLength: 255
      required:
      - scope
      - scope_uuid
      - url
      - uuid
      description: ''
    OfferingResourceOptionsUpdateRequest:
      type: object
      properties:
        resource_options:
          $ref: '#/components/schemas/OfferingOptionsRequest'
      required:
      - resource_options
      description: ''
    OfferingSoftwareCatalog:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        offering:
          type: string
          format: uuid
        catalog:
          type: string
          format: uuid
        offering_name:
          type: string
          readOnly: true
        catalog_name:
          type: string
          readOnly: true
        catalog_version:
          type: string
          readOnly: true
        enabled_cpu_family:
          description: 'List of enabled CPU families: [''x86_64'', ''aarch64'']'
        enabled_cpu_microarchitectures:
          description: 'List of enabled CPU microarchitectures: [''generic'', ''zen3'']'
        partition:
          type: string
          format: uuid
          nullable: true
        partition_name:
          type: string
          readOnly: true
      required:
      - catalog
      - catalog_name
      - catalog_version
      - created
      - modified
      - offering
      - offering_name
      - partition_name
      - uuid
    OfferingSoftwareCatalogRequest:
      type: object
      description: ''
      properties:
        offering:
          type: string
          format: uuid
        catalog:
          type: string
          format: uuid
        enabled_cpu_family:
          description: 'List of enabled CPU families: [''x86_64'', ''aarch64'']'
        enabled_cpu_microarchitectures:
          description: 'List of enabled CPU microarchitectures: [''generic'', ''zen3'']'
        partition:
          type: string
          format: uuid
          nullable: true
      required:
      - catalog
      - offering
    OfferingState:
      enum:
      - Draft
      - Active
      - Paused
      - Archived
      - Unavailable
      type: string
      description: ''
    OfferingStats:
      type: object
      properties:
        count:
          type: integer
          description: Number of resources for the offering
        name:
          type: string
          description: Name of the offering
        uuid:
          type: string
          description: UUID of the offering
        country:
          type: string
          description: Country of the offering
      required:
      - count
      - country
      - name
      - uuid
      description: ''
    OfferingStatsCounter:
      type: object
      properties:
        category_uuid:
          type: string
          format: uuid
          description: UUID of the category
        category_title:
          type: string
          description: Title of the category
        service_provider_name:
          type: string
          description: Name of the service provider
        service_provider_uuid:
          type: string
          format: uuid
          description: UUID of the service provider
        count:
          type: integer
          description: Number of offerings
      required:
      - category_title
      - category_uuid
      - count
      - service_provider_name
      - service_provider_uuid
      description: ''
    OfferingTermsOfService:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        terms_of_service:
          type: string
        terms_of_service_link:
          type: string
          format: uri
          maxLength: 200
        version:
          type: string
          maxLength: 50
        is_active:
          type: boolean
        requires_reconsent:
          type: boolean
          description: If True, user will be asked to re-consent to the terms of service
            when the terms of service are updated.
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Number of days before outdated consents are automatically revoked.
            Only applies when requires_reconsent=True.
        user_consent:
          allOf:
          - $ref: '#/components/schemas/UserConsentInfo'
          nullable: true
          readOnly: true
        has_user_consent:
          type: boolean
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - created
      - has_user_consent
      - modified
      - offering_name
      - offering_uuid
      - user_consent
      - uuid
    OfferingTermsOfServiceCreate:
      type: object
      description: ''
      properties:
        offering:
          type: string
          format: uri
        terms_of_service:
          type: string
        terms_of_service_link:
          type: string
          format: uri
          maxLength: 200
        version:
          type: string
          maxLength: 50
        is_active:
          type: boolean
        requires_reconsent:
          type: boolean
          description: If True, user will be asked to re-consent to the terms of service
            when the terms of service are updated.
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Number of days before outdated consents are automatically revoked.
            Only applies when requires_reconsent=True.
      required:
      - offering
    OfferingTermsOfServiceCreateRequest:
      type: object
      description: ''
      properties:
        offering:
          type: string
          format: uri
        terms_of_service:
          type: string
        terms_of_service_link:
          type: string
          format: uri
          maxLength: 200
        version:
          type: string
          maxLength: 50
        is_active:
          type: boolean
        requires_reconsent:
          type: boolean
          description: If True, user will be asked to re-consent to the terms of service
            when the terms of service are updated.
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Number of days before outdated consents are automatically revoked.
            Only applies when requires_reconsent=True.
      required:
      - offering
    OfferingTermsOfServiceRequest:
      type: object
      description: ''
      properties:
        terms_of_service:
          type: string
        terms_of_service_link:
          type: string
          format: uri
          maxLength: 200
        is_active:
          type: boolean
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Number of days before outdated consents are automatically revoked.
            Only applies when requires_reconsent=True.
    OfferingThumbnailRequest:
      type: object
      properties:
        thumbnail:
          type: string
          format: binary
      required:
      - thumbnail
      description: ''
    OfferingUsagePolicy:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        scope:
          type: string
          format: uri
        scope_name:
          type: string
          readOnly: true
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
        actions:
          type: string
          maxLength: 255
        created:
          type: string
          format: date-time
          readOnly: true
        created_by_full_name:
          type: string
          readOnly: true
        created_by_username:
          type: string
          readOnly: true
        has_fired:
          type: boolean
          readOnly: true
        fired_datetime:
          type: string
          format: date-time
          readOnly: true
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        organization_groups:
          type: array
          items:
            type: string
            format: uri
        apply_to_all:
          type: boolean
          description: If True, policy applies to all customers. Mutually exclusive
            with organization_groups.
        component_limits_set:
          type: array
          items:
            $ref: '#/components/schemas/NestedOfferingComponentLimit'
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
        period_name:
          type: string
          readOnly: true
      required:
      - actions
      - component_limits_set
      - created
      - created_by_full_name
      - created_by_username
      - fired_datetime
      - has_fired
      - period_name
      - scope
      - scope_name
      - scope_uuid
      - url
      - uuid
    OfferingUsagePolicyRequest:
      type: object
      description: ''
      properties:
        scope:
          type: string
          format: uri
        actions:
          type: string
          minLength: 1
          maxLength: 255
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        organization_groups:
          type: array
          items:
            type: string
            format: uri
        apply_to_all:
          type: boolean
          description: If True, policy applies to all customers. Mutually exclusive
            with organization_groups.
        component_limits_set:
          type: array
          items:
            $ref: '#/components/schemas/NestedOfferingComponentLimitRequest'
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
      required:
      - actions
      - component_limits_set
      - scope
    OfferingUser:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        user:
          type: string
          format: uri
        offering:
          type: string
          format: uri
        username:
          type: string
          nullable: true
          maxLength: 100
        offering_uuid:
          type: string
          format: uuid
        offering_name:
          type: string
          readOnly: true
        user_uuid:
          type: string
          format: uuid
        user_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        user_full_name:
          type: string
          readOnly: true
        user_first_name:
          type: string
          readOnly: true
        user_last_name:
          type: string
          readOnly: true
        user_email:
          type: string
          format: email
          title: Email address
          readOnly: true
        user_phone_number:
          type: string
          readOnly: true
        user_organization:
          type: string
          readOnly: true
        user_job_title:
          type: string
          readOnly: true
        user_affiliations:
          description: Person's affiliation within organization such as student, faculty,
            staff.
          readOnly: true
        user_gender:
          nullable: true
          description: ISO 5218 gender code
          readOnly: true
          oneOf:
          - $ref: '#/components/schemas/GenderEnum'
          - $ref: '#/components/schemas/NullEnum'
        user_personal_title:
          type: string
          description: Honorific title (Mr, Ms, Dr, Prof, etc.)
          readOnly: true
        user_place_of_birth:
          type: string
          readOnly: true
        user_country_of_residence:
          type: string
          readOnly: true
        user_nationality:
          type: string
          description: Primary citizenship (ISO 3166-1 alpha-2 code)
          readOnly: true
        user_nationalities:
          description: List of all citizenships (ISO 3166-1 alpha-2 codes)
          readOnly: true
        user_organization_country:
          type: string
          readOnly: true
        user_organization_type:
          type: string
          description: SCHAC URN (e.g., urn:schac:homeOrganizationType:int:university)
          readOnly: true
        user_eduperson_assurance:
          description: REFEDS assurance profile URIs from identity provider
          readOnly: true
        user_civil_number:
          type: string
          nullable: true
          readOnly: true
        user_birth_date:
          type: string
          format: date
          nullable: true
          readOnly: true
        user_identity_source:
          type: string
          title: Source of identity
          description: Indicates what identity provider was used.
          readOnly: true
        user_active_isds:
          description: List of ISDs that have asserted this user exists. User is deactivated
            when this becomes empty.
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        is_restricted:
          type: boolean
          description: Signal to service if the user account is restricted or not
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/OfferingUserState'
          readOnly: true
        service_provider_comment:
          type: string
          description: Additional comment for pending states like validation or account
            linking
          readOnly: true
        service_provider_comment_url:
          type: string
          format: uri
          description: URL link for additional information or actions related to service
            provider comment
          readOnly: true
        has_consent:
          type: boolean
          description: Check if the user has active consent for this offering.
          readOnly: true
        requires_reconsent:
          type: boolean
          description: Check if the user needs to re-consent due to ToS changes.
          readOnly: true
        has_compliance_checklist:
          type: boolean
          description: Check if the offering user has a connected compliance checklist
            completion.
          readOnly: true
        consent_data:
          type: object
          additionalProperties:
            type: string
          nullable: true
          description: User consent data including uuid, version, and agreement_date
          readOnly: true
      required: []
    OfferingUserAttributeConfig:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        expose_username:
          type: boolean
        expose_full_name:
          type: boolean
        expose_email:
          type: boolean
        expose_phone_number:
          type: boolean
        expose_organization:
          type: boolean
        expose_job_title:
          type: boolean
        expose_affiliations:
          type: boolean
        expose_gender:
          type: boolean
        expose_personal_title:
          type: boolean
        expose_place_of_birth:
          type: boolean
        expose_country_of_residence:
          type: boolean
        expose_nationality:
          type: boolean
        expose_nationalities:
          type: boolean
        expose_organization_country:
          type: boolean
        expose_organization_type:
          type: boolean
        expose_eduperson_assurance:
          type: boolean
        expose_civil_number:
          type: boolean
        expose_birth_date:
          type: boolean
        expose_identity_source:
          type: boolean
        exposed_fields:
          type: array
          items:
            type: string
          description: Return list of field names currently configured for exposure.
          readOnly: true
        is_default:
          type: boolean
          description: Return True if this is a default (unsaved) config.
          readOnly: true
      required:
      - created
      - exposed_fields
      - is_default
      - modified
      - offering_name
      - offering_uuid
      - uuid
    OfferingUserAttributeConfigRequest:
      type: object
      description: ''
      properties:
        offering:
          type: string
          format: uuid
          writeOnly: true
        expose_username:
          type: boolean
        expose_full_name:
          type: boolean
        expose_email:
          type: boolean
        expose_phone_number:
          type: boolean
        expose_organization:
          type: boolean
        expose_job_title:
          type: boolean
        expose_affiliations:
          type: boolean
        expose_gender:
          type: boolean
        expose_personal_title:
          type: boolean
        expose_place_of_birth:
          type: boolean
        expose_country_of_residence:
          type: boolean
        expose_nationality:
          type: boolean
        expose_nationalities:
          type: boolean
        expose_organization_country:
          type: boolean
        expose_organization_type:
          type: boolean
        expose_eduperson_assurance:
          type: boolean
        expose_civil_number:
          type: boolean
        expose_birth_date:
          type: boolean
        expose_identity_source:
          type: boolean
    OfferingUserRequest:
      type: object
      description: ''
      properties:
        user:
          type: string
          format: uri
        offering:
          type: string
          format: uri
        username:
          type: string
          nullable: true
          maxLength: 100
        offering_uuid:
          type: string
          format: uuid
        user_uuid:
          type: string
          format: uuid
    OfferingUserRole:
      type: object
      properties:
        name:
          type: string
          maxLength: 150
        uuid:
          type: string
          format: uuid
          readOnly: true
        offering:
          type: string
          format: uri
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_name:
          type: string
          readOnly: true
      required:
      - name
      - offering
      - offering_name
      - offering_uuid
      - uuid
      description: ''
    OfferingUserRoleRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        offering:
          type: string
          format: uri
      required:
      - name
      - offering
      description: ''
    OfferingUserServiceProviderComment:
      type: object
      description: ''
      properties:
        service_provider_comment:
          type: string
        service_provider_comment_url:
          type: string
          format: uri
          description: URL link for additional information or actions related to service
            provider comment
          maxLength: 200
    OfferingUserState:
      enum:
      - Requested
      - Creating
      - Pending account linking
      - Pending additional validation
      - OK
      - Requested deletion
      - Deleting
      - Deleted
      - Error creating
      - Error deleting
      type: string
      description: ''
    OfferingUserStateTransitionRequest:
      type: object
      properties:
        comment:
          type: string
          description: Comment explaining the state transition
        comment_url:
          type: string
          format: uri
          description: URL reference related to the state transition comment
      description: ''
    OfferingUserUpdateRestrictionRequest:
      type: object
      properties:
        is_restricted:
          type: boolean
          description: Whether the offering user should be restricted from accessing
            resources
      required:
      - is_restricted
      description: ''
    OnboardingCompanyValidationRequestRequest:
      type: object
      description: ''
      properties:
        validation_method:
          description: Automatic validation method (e.g., 'ariregister', 'wirtschaftscompass',
            'bolagsverket'). Leave empty for manual validation.
          oneOf:
          - $ref: '#/components/schemas/ValidationMethodEnum'
          - $ref: '#/components/schemas/BlankEnum'
        country:
          type: string
          description: ISO country code (e.g., 'EE', 'AT') - optional, for display
            context
          maxLength: 2
        legal_person_identifier:
          type: string
          description: Official company registration code
          maxLength: 50
        legal_name:
          type: string
          description: Company name (optional)
          maxLength: 255
    OnboardingJustification:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        verification:
          type: string
          format: uri
        verification_uuid:
          type: string
          format: uuid
          readOnly: true
        country:
          type: string
          readOnly: true
        user:
          type: string
          format: uri
          readOnly: true
        user_full_name:
          type: string
          readOnly: true
        legal_person_identifier:
          type: string
          readOnly: true
        legal_name:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        user_justification:
          type: string
          nullable: true
          description: User's explanation for why they should be authorized
        validated_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        validated_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        validation_decision:
          allOf:
          - $ref: '#/components/schemas/ValidationDecisionEnum'
          readOnly: true
        staff_notes:
          type: string
          readOnly: true
          description: Administrator notes on the review decision
        supporting_documentation:
          type: array
          items:
            $ref: '#/components/schemas/OnboardingJustificationDocumentation'
          readOnly: true
        onboarding_metadata:
          type: object
          additionalProperties: {}
          description: Onboarding-specific data like intents, purposes extracted from
            checklist answers
          readOnly: true
        user_submitted_customer_data:
          type: object
          additionalProperties: {}
          description: Customer-related data submitted by the user via checklist answers
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - country
      - created
      - error_message
      - error_traceback
      - legal_name
      - legal_person_identifier
      - modified
      - onboarding_metadata
      - staff_notes
      - supporting_documentation
      - user
      - user_full_name
      - user_submitted_customer_data
      - uuid
      - validated_at
      - validated_by
      - validation_decision
      - verification
      - verification_uuid
    OnboardingJustificationCreateRequest:
      type: object
      description: ''
      properties:
        verification_uuid:
          type: string
          format: uuid
          description: UUID of the OnboardingVerification to justify
        user_justification:
          type: string
          description: User's explanation for why they should be authorized
      required:
      - verification_uuid
    OnboardingJustificationDocumentation:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        file:
          type: string
          format: uri
          nullable: true
          description: Upload supporting documentation.
        file_name:
          type: string
          readOnly: true
        file_size:
          type: integer
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - created
      - file_name
      - file_size
      - uuid
    OnboardingJustificationDocumentationRequest:
      type: object
      description: ''
      properties:
        file:
          type: string
          format: binary
          nullable: true
          description: Upload supporting documentation.
    OnboardingJustificationRequest:
      type: object
      description: ''
      properties:
        verification:
          type: string
          format: uri
        user_justification:
          type: string
          nullable: true
          description: User's explanation for why they should be authorized
      required:
      - verification
    OnboardingJustificationReviewRequest:
      type: object
      description: ''
      properties:
        staff_notes:
          type: string
          description: Administrator notes about the review decision
    OnboardingQuestionMetadata:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        checklist_name:
          type: string
          readOnly: true
        question:
          type: string
          format: uri
        question_uuid:
          type: string
          format: uuid
          readOnly: true
        question_description:
          type: string
          readOnly: true
        maps_to_customer_field:
          type: string
          description: Customer model field name to map this answer to (e.g., 'registration_code',
            'email', 'vat_code')
          maxLength: 100
        intent_field:
          type: string
          description: Type of intent/purpose field (e.g., 'intent', 'registration_purpose')
            - stays with verification
          maxLength: 50
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - checklist_name
      - created
      - modified
      - question
      - question_description
      - question_uuid
      - url
      - uuid
    OnboardingQuestionMetadataRequest:
      type: object
      description: ''
      properties:
        question:
          type: string
          format: uri
        maps_to_customer_field:
          type: string
          description: Customer model field name to map this answer to (e.g., 'registration_code',
            'email', 'vat_code')
          maxLength: 100
        intent_field:
          type: string
          description: Type of intent/purpose field (e.g., 'intent', 'registration_purpose')
            - stays with verification
          maxLength: 50
      required:
      - question
    OnboardingRunValidationRequestRequest:
      type: object
      description: ''
      properties:
        civil_number:
          type: string
          description: Personal identifier (temporary workaround for Estonian civil_number)
          maxLength: 50
        first_name:
          type: string
          description: User's first name (temporary workaround for Austrian validation)
          maxLength: 100
        last_name:
          type: string
          description: User's last name (temporary workaround for Austrian validation)
          maxLength: 100
        birth_date:
          type: string
          format: date
          nullable: true
          description: User's birth date (temporary workaround for Austrian validation)
    OnboardingVerification:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        user:
          type: string
          format: uri
          readOnly: true
          description: User requesting company onboarding
        user_full_name:
          type: string
          readOnly: true
        country:
          type: string
          description: ISO country code (e.g., 'EE', 'AT') for context. Can be inferred
            from validation_method.
          maxLength: 2
        legal_person_identifier:
          type: string
          description: Official company registration code (required for automatic
            validation)
          maxLength: 50
        legal_name:
          type: string
          description: Company name(optional, for reference)
          maxLength: 255
        status:
          allOf:
          - $ref: '#/components/schemas/OnboardingVerificationStatusEnum'
          readOnly: true
        justifications:
          type: array
          items:
            $ref: '#/components/schemas/OnboardingJustification'
          readOnly: true
        validation_method:
          allOf:
          - $ref: '#/components/schemas/ValidationMethodEnum'
          readOnly: true
          description: Method used for validation
        verified_user_roles:
          readOnly: true
          description: Roles the user has in the company
        verified_company_data:
          readOnly: true
          description: Company information retrieved during validation
        raw_response:
          readOnly: true
          description: Raw API response for debugging and auditing
        error_traceback:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        validated_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When validation was completed
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: When this verification expires
        customer:
          type: string
          format: uri
          readOnly: true
          nullable: true
          description: Customer created after successful validation
        onboarding_metadata:
          type: object
          additionalProperties: {}
          description: Onboarding-specific data like intents, purposes extracted from
            checklist answers
          readOnly: true
        user_submitted_customer_data:
          type: object
          additionalProperties: {}
          description: Get customer data submitted by the user during onboarding.
          readOnly: true
        can_customer_be_created:
          type: boolean
          description: Boolean indicating if a customer can be created from this verification
          readOnly: true
        customer_creation_error_message:
          type: string
          nullable: true
          description: Reason why customer cannot be created (null if can be created)
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - can_customer_be_created
      - created
      - customer
      - customer_creation_error_message
      - error_message
      - error_traceback
      - justifications
      - modified
      - onboarding_metadata
      - raw_response
      - status
      - user
      - user_full_name
      - user_submitted_customer_data
      - uuid
      - validated_at
      - validation_method
      - verified_company_data
      - verified_user_roles
    OnboardingVerificationRequest:
      type: object
      description: ''
      properties:
        country:
          type: string
          description: ISO country code (e.g., 'EE', 'AT') for context. Can be inferred
            from validation_method.
          maxLength: 2
        legal_person_identifier:
          type: string
          description: Official company registration code (required for automatic
            validation)
          maxLength: 50
        legal_name:
          type: string
          description: Company name(optional, for reference)
          maxLength: 255
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: When this verification expires
    OnboardingVerificationStatusEnum:
      enum:
      - pending
      - verified
      - failed
      - escalated
      - expired
      type: string
      description: ''
    OpenStackAllowedAddressPair:
      type: object
      properties:
        mac_address:
          type: string
      description: ''
    OpenStackAllowedAddressPairRequest:
      type: object
      properties:
        ip_address:
          type: string
          writeOnly: true
          minLength: 1
          default: 192.168.42.0/24
        mac_address:
          type: string
          minLength: 1
      description: ''
    OpenStackBackendInstance:
      type: object
      properties:
        name:
          type: string
          maxLength: 150
        key_name:
          type: string
          maxLength: 50
        start_time:
          type: string
          format: date-time
          nullable: true
        state:
          type: string
          readOnly: true
        runtime_state:
          type: string
          maxLength: 150
        created:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          nullable: true
          description: Instance ID in the OpenStack backend
          maxLength: 255
        availability_zone:
          type: string
          readOnly: true
        hypervisor_hostname:
          type: string
          description: Name of the hypervisor hosting this instance
          maxLength: 255
      required:
      - availability_zone
      - created
      - name
      - state
      description: ''
    OpenStackBackendVolumes:
      type: object
      properties:
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        size:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Size in MiB
        metadata:
          type: string
          description: Arbitrary key-value pairs associated with the volume
        backend_id:
          type: string
          nullable: true
          description: Volume ID in the OpenStack backend
          maxLength: 255
        type:
          type: string
          readOnly: true
        bootable:
          type: boolean
          description: Indicates if this volume can be used to boot an instance
        runtime_state:
          type: string
          maxLength: 150
        state:
          type: string
          readOnly: true
        availability_zone:
          type: string
          readOnly: true
      required:
      - availability_zone
      - name
      - size
      - state
      - type
      description: ''
    OpenStackBackup:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
          readOnly: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        kept_until:
          type: string
          format: date-time
          nullable: true
          description: Guaranteed time of backup retention. If null - keep forever.
        metadata:
          readOnly: true
        instance:
          type: string
          format: uri
          readOnly: true
          description: Instance that this backup is created from
        instance_name:
          type: string
          readOnly: true
        instance_marketplace_uuid:
          type: string
          format: uuid
          readOnly: true
        restorations:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackBackupRestoration'
          readOnly: true
        instance_security_groups:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedSecurityGroup'
          readOnly: true
        instance_ports:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedPort'
          readOnly: true
        instance_floating_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedFloatingIP'
          readOnly: true
        tenant_uuid:
          type: string
          format: uuid
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    OpenStackBackupRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        kept_until:
          type: string
          format: date-time
          nullable: true
          description: Guaranteed time of backup retention. If null - keep forever.
      required:
      - name
    OpenStackBackupRestoration:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        instance:
          type: string
          format: uri
          readOnly: true
          description: Instance that is being restored from the backup
        created:
          type: string
          format: date-time
          readOnly: true
        flavor:
          type: string
          format: uri
          description: Flavor to be used for the restored instance. If not specified,
            original instance flavor will be used
        name:
          type: string
          description: New instance name. Leave blank to use source instance name.
        floating_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedFloatingIP'
        security_groups:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedSecurityGroup'
        ports:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedPort'
      required: []
      description: ''
    OpenStackBackupRestorationCreateRequest:
      type: object
      properties:
        flavor:
          type: string
          format: uri
          description: Flavor to be used for the restored instance. If not specified,
            original instance flavor will be used
        name:
          type: string
          minLength: 1
          description: New instance name. Leave blank to use source instance name.
        floating_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackCreateFloatingIPRequest'
          description: Floating IPs that will be assigned to the restored instance
        security_groups:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackSecurityGroupHyperlinkRequest'
          description: Security groups that will be assigned to the restored instance
        ports:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackCreatePortRequest'
          description: Network ports that will be attached to the restored instance
      required:
      - flavor
      description: ''
    OpenStackBackupRestorationRequest:
      type: object
      properties:
        flavor:
          type: string
          format: uri
          description: Flavor to be used for the restored instance. If not specified,
            original instance flavor will be used
        name:
          type: string
          minLength: 1
          description: New instance name. Leave blank to use source instance name.
        floating_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedFloatingIPRequest'
        ports:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedPortRequest'
      required:
      - flavor
      - floating_ips
      - ports
      description: ''
    OpenStackCreateFloatingIPRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
        ip_address:
          description: Existing floating IP address in selected OpenStack tenant to
            be assigned to new virtual machine
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          minLength: 1
        subnet:
          type: string
          format: uri
      required:
      - subnet
      description: ''
    OpenStackCreatePortRequest:
      type: object
      properties:
        fixed_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackFixedIpRequest'
        subnet:
          type: string
          format: uri
          nullable: true
          description: Subnet to which this port belongs
        port:
          type: string
          format: uri
        tenant:
          type: string
          format: uri
          writeOnly: true
          description: Target tenant for port creation. If not specified, uses subnet's
            tenant.
      description: ''
    OpenStackCredentialsRequest:
      type: object
      description: ''
      properties:
        auth_url:
          type: string
          format: uri
          minLength: 1
          description: Keystone auth URL (e.g., https://cloud.example.com:5000/v3)
        username:
          type: string
          minLength: 1
        password:
          type: string
          writeOnly: true
          minLength: 1
        user_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone user domain name
        project_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone project domain name
        project_name:
          type: string
          minLength: 1
          default: admin
          description: Keystone project (tenant) name
        verify_ssl:
          type: boolean
          default: false
        certificate:
          type: string
          writeOnly: true
          description: PEM-encoded CA certificate for SSL verification
      required:
      - auth_url
      - password
      - username
    OpenStackFixedIp:
      type: object
      properties:
        ip_address:
          description: IP address to assign to the port
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
        subnet_id:
          type: string
          description: ID of the subnet in which to assign the IP address
      required: []
      description: ''
    OpenStackFixedIpRequest:
      type: object
      properties:
        ip_address:
          description: IP address to assign to the port
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          minLength: 1
        subnet_id:
          type: string
          minLength: 1
          description: ID of the subnet in which to assign the IP address
      required:
      - ip_address
      - subnet_id
      description: ''
    OpenStackFlavor:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        settings:
          type: string
          format: uri
        cores:
          type: integer
          maximum: 32767
          minimum: 0
          description: Number of cores in a VM
        ram:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Memory size in MiB
        disk:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Root disk size in MiB
        backend_id:
          type: string
          maxLength: 255
        display_name:
          type: string
          readOnly: true
      required: []
    OpenStackFloatingIP:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
          readOnly: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        runtime_state:
          type: string
          readOnly: true
        address:
          description: The public IPv4 address of the floating IP
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          readOnly: true
          nullable: true
        backend_network_id:
          type: string
          readOnly: true
          description: ID of network in OpenStack where this floating IP is allocated
        tenant:
          type: string
          format: uri
          readOnly: true
          description: OpenStack tenant this floating IP belongs to
        tenant_name:
          type: string
          readOnly: true
        tenant_uuid:
          type: string
          format: uuid
          readOnly: true
        port:
          type: string
          format: uri
          readOnly: true
        external_address:
          description: Optional address that maps to floating IP's address in external
            networks
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          readOnly: true
          nullable: true
        port_fixed_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackFixedIp'
          readOnly: true
        instance_uuid:
          type: string
          nullable: true
          readOnly: true
        instance_name:
          type: string
          nullable: true
          readOnly: true
        instance_url:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    OpenStackFloatingIPAttachRequest:
      type: object
      properties:
        port:
          type: string
          format: uri
      required:
      - port
      description: ''
    OpenStackFloatingIPDescriptionUpdateRequest:
      type: object
      properties:
        description:
          type: string
          minLength: 1
          description: New floating IP description.
      description: ''
    OpenStackFloatingIPRequest:
      type: object
      description: ''
      properties:
        router:
          type: string
          format: uri
          writeOnly: true
          nullable: true
          description: Optional router to use for external network detection
    OpenStackImage:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        min_disk:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Minimum disk size in MiB
        min_ram:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Minimum memory size in MiB
        settings:
          type: string
          format: uri
        backend_id:
          type: string
          maxLength: 255
        backend_created_at:
          type: string
          format: date-time
          nullable: true
      required:
      - backend_id
      - name
      - settings
      - url
      - uuid
    OpenStackInstance:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
          readOnly: true
          description: OpenStack provider settings
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
          nullable: true
          description: Instance ID in the OpenStack backend
        access_url:
          type: string
          nullable: true
          readOnly: true
        start_time:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        cores:
          type: integer
          readOnly: true
          description: Number of cores in a VM
        ram:
          type: integer
          readOnly: true
          description: Memory size in MiB
        disk:
          type: integer
          readOnly: true
          description: Disk size in MiB
        min_ram:
          type: integer
          readOnly: true
          description: Minimum memory size in MiB
        min_disk:
          type: integer
          readOnly: true
          description: Minimum disk size in MiB
        user_data:
          type: string
          description: Additional data that will be added to instance on provisioning
        external_ips:
          type: array
          items:
            type: string
            format: ipv4
          readOnly: true
        internal_ips:
          type: array
          items:
            type: string
            format: ipv4
          readOnly: true
        latitude:
          type: number
          format: double
          readOnly: true
          nullable: true
        longitude:
          type: number
          format: double
          readOnly: true
          nullable: true
        key_name:
          type: string
          readOnly: true
        key_fingerprint:
          type: string
          readOnly: true
        image_name:
          type: string
          readOnly: true
        flavor_disk:
          type: integer
          readOnly: true
          description: Flavor disk size in MiB
        flavor_name:
          type: string
          readOnly: true
          description: Name of the flavor used by this instance
        volumes:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedVolume'
          readOnly: true
          description: List of volumes attached to the instance
        security_groups:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedSecurityGroup'
        server_group:
          $ref: '#/components/schemas/OpenStackNestedServerGroup'
        floating_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedFloatingIP'
        ports:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedPort'
        availability_zone:
          type: string
          format: uri
          nullable: true
          description: Availability zone where this instance is located
        availability_zone_name:
          type: string
          readOnly: true
          description: Name of the availability zone where instance is located
        connect_directly_to_external_network:
          type: boolean
          description: If True, instance will be connected directly to external network
        runtime_state:
          type: string
          readOnly: true
        action:
          type: string
          readOnly: true
        action_details:
          readOnly: true
          description: Details about ongoing or completed actions
        tenant_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the OpenStack tenant
        hypervisor_hostname:
          type: string
          readOnly: true
          description: Name of the hypervisor hosting this instance
        tenant:
          type: string
          format: uri
          description: The OpenStack tenant to create the instance in
        external_address:
          type: array
          items:
            type: string
          readOnly: true
        rancher_cluster:
          allOf:
          - $ref: '#/components/schemas/RancherClusterReference'
          nullable: true
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    OpenStackInstanceAllowedAddressPairsUpdateRequest:
      type: object
      properties:
        subnet:
          type: string
          format: uri
          writeOnly: true
          description: The subnet to update allowed address pairs for.
        allowed_address_pairs:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackAllowedAddressPairRequest'
          description: List of allowed address pairs to set on the port. Each pair
            should contain 'ip_address' and optional 'mac_address'.
      required:
      - allowed_address_pairs
      - subnet
      description: ''
    OpenStackInstanceAvailabilityZone:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        settings:
          type: string
          format: uri
          nullable: true
        available:
          type: boolean
          description: Indicates whether this availability zone is available for instance
            provisioning
      required:
      - name
      - url
      - uuid
    OpenStackInstanceFloatingIPsUpdateRequest:
      type: object
      properties:
        floating_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackCreateFloatingIPRequest'
      description: ''
    OpenStackInstancePortsUpdateRequest:
      type: object
      properties:
        ports:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackCreatePortRequest'
      required:
      - ports
      description: ''
    OpenStackInstanceRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
      required:
      - name
    OpenStackInstanceSecurityGroupsUpdateRequest:
      type: object
      properties:
        security_groups:
          type: array
          items:
            type: string
            format: uri
          description: List of security groups to be assigned to the instance.
      required:
      - security_groups
      description: ''
    OpenStackNestedFloatingIP:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        address:
          description: The public IPv4 address of the floating IP
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          readOnly: true
          nullable: true
        port_fixed_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackFixedIp'
          readOnly: true
        port_mac_address:
          type: string
          description: MAC address of the port
          readOnly: true
          nullable: true
        subnet:
          type: string
          format: uri
        subnet_uuid:
          type: string
          format: uuid
          readOnly: true
        subnet_name:
          type: string
          readOnly: true
        subnet_description:
          type: string
          readOnly: true
        subnet_cidr:
          type: string
          description: IPv4 network address in CIDR format (e.g. 192.168.0.0/24)
          readOnly: true
      required: []
    OpenStackNestedFloatingIPRequest:
      type: object
      description: ''
      properties:
        subnet:
          type: string
          format: uri
      required:
      - subnet
    OpenStackNestedInstance:
      type: object
      properties:
        backend_id:
          type: string
          nullable: true
          description: Instance ID in the OpenStack backend
          maxLength: 255
        name:
          type: string
          maxLength: 150
        uuid:
          type: string
          format: uuid
          readOnly: true
      required: []
      description: ''
    OpenStackNestedPort:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        fixed_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackFixedIp'
        mac_address:
          type: string
          readOnly: true
          description: MAC address of the port
        subnet:
          type: string
          format: uri
          nullable: true
          description: Subnet to which this port belongs
        subnet_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        subnet_name:
          type: string
          readOnly: true
          nullable: true
        subnet_description:
          type: string
          readOnly: true
          nullable: true
        subnet_cidr:
          type: string
          description: IPv4 network address in CIDR format (e.g. 192.168.0.0/24)
          readOnly: true
          nullable: true
        allowed_address_pairs:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackAllowedAddressPair'
          readOnly: true
        device_id:
          type: string
          readOnly: true
          nullable: true
          description: ID of device (instance, router etc) to which this port is connected
        device_owner:
          type: string
          readOnly: true
          nullable: true
          description: Entity that uses this port (e.g. network:router_interface)
        security_groups:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackSecurityGroup'
          readOnly: true
      required: []
    OpenStackNestedPortRequest:
      type: object
      description: ''
      properties:
        fixed_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackFixedIpRequest'
        subnet:
          type: string
          format: uri
          nullable: true
          description: Subnet to which this port belongs
    OpenStackNestedSecurityGroup:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          readOnly: true
        rules:
          type: array
          items:
            $ref: '#/components/schemas/NestedSecurityGroupRule'
          readOnly: true
        description:
          type: string
          readOnly: true
        state:
          type: string
          readOnly: true
      required: []
    OpenStackNestedServerGroup:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          readOnly: true
        policy:
          allOf:
          - $ref: '#/components/schemas/PolicyEnum'
          readOnly: true
          description: Server group policy determining the rules for scheduling servers
            in this group
        state:
          type: string
          readOnly: true
      required: []
    OpenStackNestedSubNet:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        cidr:
          type: string
          description: IPv4 network address in CIDR format (e.g. 192.168.0.0/24)
          maxLength: 32
        gateway_ip:
          description: IP address of the gateway for this subnet
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          nullable: true
        allocation_pools:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackSubNetAllocationPool'
          readOnly: true
        ip_version:
          type: integer
          maximum: 32767
          minimum: -32768
          description: IP protocol version (4 or 6)
        enable_dhcp:
          type: boolean
          description: If True, DHCP service will be enabled on this subnet
      required: []
      description: ''
    OpenStackNestedSubNetRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        cidr:
          type: string
          description: IPv4 network address in CIDR format (e.g. 192.168.0.0/24)
          maxLength: 32
        gateway_ip:
          description: IP address of the gateway for this subnet
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          nullable: true
          minLength: 1
        ip_version:
          type: integer
          maximum: 32767
          minimum: -32768
          description: IP protocol version (4 or 6)
        enable_dhcp:
          type: boolean
          description: If True, DHCP service will be enabled on this subnet
      required:
      - name
      description: ''
    OpenStackNestedVolume:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
        image_name:
          type: string
          description: Name of the image this volume was created from
          maxLength: 150
        state:
          type: string
          readOnly: true
        bootable:
          type: boolean
          description: Indicates if this volume can be used to boot an instance
        size:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Size in MiB
        device:
          type: string
          description: Name of volume as instance device e.g. /dev/vdb.
          pattern: ^/dev/[a-zA-Z0-9]+$
          maxLength: 50
        resource_type:
          type: string
          readOnly: true
        type:
          type: string
          format: uri
          nullable: true
          description: Type of the volume (e.g. SSD, HDD)
        type_name:
          type: string
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
      required: []
    OpenStackNestedVolumeRequest:
      type: object
      description: ''
      properties:
        image_name:
          type: string
          description: Name of the image this volume was created from
          maxLength: 150
        bootable:
          type: boolean
          description: Indicates if this volume can be used to boot an instance
        size:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Size in MiB
        device:
          type: string
          description: Name of volume as instance device e.g. /dev/vdb.
          pattern: ^/dev/[a-zA-Z0-9]+$
          maxLength: 50
        type:
          type: string
          format: uri
          nullable: true
          description: Type of the volume (e.g. SSD, HDD)
      required:
      - size
    OpenStackNetwork:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
          readOnly: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        tenant:
          type: string
          format: uri
          readOnly: true
          description: OpenStack tenant this network belongs to
        tenant_name:
          type: string
          readOnly: true
        tenant_uuid:
          type: string
          format: uuid
          readOnly: true
        is_external:
          type: boolean
          readOnly: true
          description: Defines whether this network is external (public) or internal
            (private)
        type:
          type: string
          readOnly: true
          description: Network type, such as local, flat, vlan, vxlan, or gre
        segmentation_id:
          type: integer
          readOnly: true
          nullable: true
          description: VLAN ID for VLAN networks or tunnel ID for VXLAN/GRE networks
        subnets:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedSubNet'
          readOnly: true
        mtu:
          type: integer
          readOnly: true
          nullable: true
          description: The maximum transmission unit (MTU) value to address fragmentation.
        rbac_policies:
          type: array
          items:
            $ref: '#/components/schemas/NetworkRBACPolicy'
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    OpenStackNetworkRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
      required:
      - name
    OpenStackPort:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
          readOnly: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
          nullable: true
          description: Port ID in OpenStack
        access_url:
          type: string
          nullable: true
          readOnly: true
        fixed_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackFixedIp'
        mac_address:
          type: string
          description: MAC address of the port
          maxLength: 32
        allowed_address_pairs:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackAllowedAddressPair'
        tenant:
          type: string
          format: uri
          readOnly: true
          description: OpenStack tenant this port belongs to
        tenant_name:
          type: string
          readOnly: true
        tenant_uuid:
          type: string
          format: uuid
          readOnly: true
        network:
          type: string
          format: uri
          nullable: true
          description: Network to which this port belongs
        network_name:
          type: string
          readOnly: true
        network_uuid:
          type: string
          format: uuid
          readOnly: true
        floating_ips:
          type: array
          items:
            type: string
            format: uri
          readOnly: true
        device_id:
          type: string
          readOnly: true
          nullable: true
          description: ID of device (instance, router etc) to which this port is connected
        device_owner:
          type: string
          readOnly: true
          nullable: true
          description: Entity that uses this port (e.g. network:router_interface)
        port_security_enabled:
          type: boolean
          description: If True, security groups and rules will be applied to this
            port
        security_groups:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackPortNestedSecurityGroup'
        admin_state_up:
          type: boolean
          readOnly: true
          nullable: true
          description: Administrative state of the port. If down, port does not forward
            packets
        status:
          type: string
          readOnly: true
          nullable: true
          description: Port status in OpenStack (e.g. ACTIVE, DOWN)
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    OpenStackPortIPUpdateRequest:
      type: object
      properties:
        subnet:
          type: string
          format: uri
          writeOnly: true
          description: The subnet where the new IP address will be allocated
        ip_address:
          description: The IP address to assign within the subnet
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          minLength: 1
      required:
      - ip_address
      - subnet
      description: ''
    OpenStackPortNestedSecurityGroup:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        url:
          type: string
          format: uri
          readOnly: true
      required: []
    OpenStackPortNestedSecurityGroupRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
      required:
      - name
    OpenStackPortRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        fixed_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackFixedIpRequest'
        mac_address:
          type: string
          description: MAC address of the port
          maxLength: 32
        allowed_address_pairs:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackAllowedAddressPairRequest'
        target_tenant:
          type: string
          format: uri
          writeOnly: true
          description: Target tenant for shared network port creation. If not specified,
            defaults to network's tenant.
        network:
          type: string
          format: uri
          nullable: true
          description: Network to which this port belongs
        port_security_enabled:
          type: boolean
          description: If True, security groups and rules will be applied to this
            port
        security_groups:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackPortNestedSecurityGroupRequest'
      required:
      - name
    OpenStackRouter:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
        error_traceback:
          type: string
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          nullable: true
          description: Router ID in OpenStack
          maxLength: 255
        access_url:
          type: string
          nullable: true
          readOnly: true
        tenant:
          type: string
          format: uri
          description: OpenStack tenant this router belongs to
        tenant_name:
          type: string
          readOnly: true
        tenant_uuid:
          type: string
          format: uuid
          readOnly: true
        routes:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackStaticRoute'
        fixed_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackFixedIp'
          readOnly: true
        ports:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedPort'
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
        offering_external_ips:
          type: array
          items:
            type: string
          nullable: true
          readOnly: true
      required: []
    OpenStackRouterInterfaceRequest:
      type: object
      properties:
        subnet:
          type: string
          format: uri
          description: The subnet to connect to the router. Either subnet or port
            must be specified, but not both.
        port:
          type: string
          format: uri
          description: The port to connect to the router. Either subnet or port must
            be specified, but not both.
      description: ''
    OpenStackRouterSetRoutes:
      type: object
      properties:
        routes:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackStaticRoute'
      required:
      - routes
      description: ''
    OpenStackRouterSetRoutesRequest:
      type: object
      properties:
        routes:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackStaticRouteRequest'
      required:
      - routes
      description: ''
    OpenStackSecurityGroup:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
          readOnly: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        tenant:
          type: string
          format: uri
          readOnly: true
        tenant_name:
          type: string
          readOnly: true
        tenant_uuid:
          type: string
          format: uuid
          readOnly: true
        rules:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackSecurityGroupRuleCreate'
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    OpenStackSecurityGroupHyperlinkRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
      required:
      - url
      description: ''
    OpenStackSecurityGroupRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        rules:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackSecurityGroupRuleCreateRequest'
      required:
      - name
      - rules
    OpenStackSecurityGroupRuleCreate:
      type: object
      description: ''
      properties:
        ethertype:
          allOf:
          - $ref: '#/components/schemas/EthertypeEnum'
          description: IP protocol version - either 'IPv4' or 'IPv6'
        direction:
          allOf:
          - $ref: '#/components/schemas/DirectionEnum'
          description: Traffic direction - either 'ingress' (incoming) or 'egress'
            (outgoing)
        protocol:
          description: The network protocol (TCP, UDP, ICMP, or empty for any protocol)
          oneOf:
          - $ref: '#/components/schemas/ProtocolEnum'
          - $ref: '#/components/schemas/BlankEnum'
        from_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Starting port number in the range (1-65535)
        to_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Ending port number in the range (1-65535)
        cidr:
          type: string
          nullable: true
          description: CIDR notation for the source/destination network address range
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        remote_group_name:
          type: string
          readOnly: true
        remote_group_uuid:
          type: string
          format: uuid
          readOnly: true
        id:
          type: integer
          readOnly: true
        remote_group:
          type: string
          format: uri
          nullable: true
          description: Remote security group that this rule references, if any
      required: []
    OpenStackSecurityGroupRuleCreateRequest:
      type: object
      description: ''
      properties:
        ethertype:
          allOf:
          - $ref: '#/components/schemas/EthertypeEnum'
          description: IP protocol version - either 'IPv4' or 'IPv6'
        direction:
          allOf:
          - $ref: '#/components/schemas/DirectionEnum'
          description: Traffic direction - either 'ingress' (incoming) or 'egress'
            (outgoing)
        protocol:
          description: The network protocol (TCP, UDP, ICMP, or empty for any protocol)
          oneOf:
          - $ref: '#/components/schemas/ProtocolEnum'
          - $ref: '#/components/schemas/BlankEnum'
        from_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Starting port number in the range (1-65535)
        to_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Ending port number in the range (1-65535)
        cidr:
          type: string
          nullable: true
          description: CIDR notation for the source/destination network address range
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        remote_group:
          type: string
          format: uri
          nullable: true
          description: Remote security group that this rule references, if any
    OpenStackSecurityGroupRuleUpdateByNameRequest:
      type: object
      properties:
        ethertype:
          allOf:
          - $ref: '#/components/schemas/EthertypeEnum'
          description: IP protocol version - either 'IPv4' or 'IPv6'
        direction:
          allOf:
          - $ref: '#/components/schemas/DirectionEnum'
          description: Traffic direction - either 'ingress' (incoming) or 'egress'
            (outgoing)
        protocol:
          description: The network protocol (TCP, UDP, ICMP, or empty for any protocol)
          oneOf:
          - $ref: '#/components/schemas/ProtocolEnum'
          - $ref: '#/components/schemas/BlankEnum'
        from_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Starting port number in the range (1-65535)
        to_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Ending port number in the range (1-65535)
        cidr:
          type: string
          nullable: true
          description: CIDR notation for the source/destination network address range
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        remote_group_name:
          type: string
          writeOnly: true
          minLength: 1
        remote_group:
          type: string
          format: uri
      description: ''
    OpenStackSecurityGroupRuleUpdateRequest:
      type: object
      properties:
        ethertype:
          allOf:
          - $ref: '#/components/schemas/EthertypeEnum'
          default: IPv4
          description: IP protocol version - either 'IPv4' or 'IPv6'
        direction:
          allOf:
          - $ref: '#/components/schemas/DirectionEnum'
          default: ingress
          description: Traffic direction - either 'ingress' (incoming) or 'egress'
            (outgoing)
        protocol:
          description: The network protocol (TCP, UDP, ICMP, or empty for any protocol)
          oneOf:
          - $ref: '#/components/schemas/ProtocolEnum'
          - $ref: '#/components/schemas/BlankEnum'
        from_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Starting port number in the range (1-65535)
        to_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Ending port number in the range (1-65535)
        cidr:
          type: string
          nullable: true
          description: CIDR notation for the source/destination network address range
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        remote_group:
          type: string
          format: uri
          nullable: true
          description: Remote security group that this rule references, if any
      description: ''
    OpenStackSecurityGroupUpdate:
      type: object
      properties:
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
      required:
      - name
      description: ''
    OpenStackSecurityGroupUpdateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
      required:
      - name
      description: ''
    OpenStackServerGroup:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
          readOnly: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        tenant:
          type: string
          format: uri
          readOnly: true
        tenant_name:
          type: string
          readOnly: true
        tenant_uuid:
          type: string
          format: uuid
          readOnly: true
        policy:
          description: Server group policy determining the rules for scheduling servers
            in this group
          oneOf:
          - $ref: '#/components/schemas/PolicyEnum'
          - $ref: '#/components/schemas/BlankEnum'
        display_name:
          type: string
          readOnly: true
        instances:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackNestedInstance'
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    OpenStackServerGroupRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        policy:
          description: Server group policy determining the rules for scheduling servers
            in this group
          oneOf:
          - $ref: '#/components/schemas/PolicyEnum'
          - $ref: '#/components/schemas/BlankEnum'
      required:
      - name
    OpenStackSnapshot:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
          readOnly: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
          nullable: true
          description: Snapshot ID in the OpenStack backend
        access_url:
          type: string
          nullable: true
          readOnly: true
        source_volume:
          type: string
          format: uri
          readOnly: true
          nullable: true
          description: Volume from which this snapshot was created
        size:
          type: integer
          readOnly: true
          description: Size in MiB
        metadata: {}
        runtime_state:
          type: string
          readOnly: true
        source_volume_name:
          type: string
          readOnly: true
        source_volume_marketplace_uuid:
          type: string
          format: uuid
          readOnly: true
        action:
          type: string
          readOnly: true
        action_details:
          readOnly: true
        restorations:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackSnapshotRestoration'
          readOnly: true
        kept_until:
          type: string
          format: date-time
          nullable: true
          description: Guaranteed time of snapshot retention. If null - keep forever.
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    OpenStackSnapshotRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        metadata: {}
        kept_until:
          type: string
          format: date-time
          nullable: true
          description: Guaranteed time of snapshot retention. If null - keep forever.
      required:
      - name
    OpenStackSnapshotRestoration:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        description:
          type: string
          description: New volume description.
        volume:
          type: string
          format: uri
          readOnly: true
          description: Volume that is being restored from the snapshot
        volume_name:
          type: string
          readOnly: true
        volume_state:
          type: string
          readOnly: true
        volume_runtime_state:
          type: string
          readOnly: true
        volume_size:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Size in MiB
          readOnly: true
        volume_device:
          type: string
          description: Name of volume as instance device e.g. /dev/vdb.
          readOnly: true
      required: []
    OpenStackSnapshotRestorationRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          writeOnly: true
          minLength: 1
          description: New volume name.
        description:
          type: string
          minLength: 1
          description: New volume description.
      required:
      - name
    OpenStackStaticRoute:
      type: object
      properties:
        destination:
          type: string
        nexthop:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
      required: []
      description: ''
    OpenStackStaticRouteRequest:
      type: object
      properties:
        destination:
          type: string
          minLength: 1
        nexthop:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          minLength: 1
      required:
      - destination
      - nexthop
      description: ''
    OpenStackSubNet:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
          readOnly: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        tenant:
          type: string
          format: uri
          readOnly: true
        tenant_name:
          type: string
          readOnly: true
        network:
          type: string
          format: uri
          readOnly: true
          description: Network to which this subnet belongs
        network_name:
          type: string
          readOnly: true
        cidr:
          type: string
        gateway_ip:
          description: IP address of the gateway for this subnet
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          nullable: true
        disable_gateway:
          type: boolean
          description: If True, no gateway IP address will be allocated
        allocation_pools:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackSubNetAllocationPool'
        ip_version:
          type: integer
          readOnly: true
          description: IP protocol version (4 or 6)
        enable_dhcp:
          type: boolean
          readOnly: true
          description: If True, DHCP service will be enabled on this subnet
        dns_nameservers:
          type: array
          items:
            description: An IPv4 or IPv6 address.
            oneOf:
            - type: string
              format: ipv4
            - type: string
              format: ipv6
        host_routes:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackStaticRoute'
        is_connected:
          type: boolean
          readOnly: true
          description: Is subnet connected to the default tenant router.
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    OpenStackSubNetAllocationPool:
      type: object
      properties:
        start:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
        end:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
      required: []
      description: ''
    OpenStackSubNetAllocationPoolRequest:
      type: object
      properties:
        start:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          minLength: 1
        end:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          minLength: 1
      required:
      - end
      - start
      description: ''
    OpenStackSubNetRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        cidr:
          type: string
          minLength: 1
        gateway_ip:
          description: IP address of the gateway for this subnet
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          nullable: true
          minLength: 1
        disable_gateway:
          type: boolean
          description: If True, no gateway IP address will be allocated
        allocation_pools:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackSubNetAllocationPoolRequest'
        dns_nameservers:
          type: array
          items:
            description: An IPv4 or IPv6 address.
            oneOf:
            - type: string
              format: ipv4
            - type: string
              format: ipv6
            minLength: 1
        host_routes:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackStaticRouteRequest'
      required:
      - name
    OpenStackTenant:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 64
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
          nullable: true
          description: ID of tenant in the OpenStack backend
        access_url:
          type: string
          nullable: true
          readOnly: true
        availability_zone:
          type: string
          description: Optional availability group. Will be used for all instances
            provisioned in this tenant
          maxLength: 100
        internal_network_id:
          type: string
          readOnly: true
          description: ID of internal network in OpenStack tenant
        external_network_id:
          type: string
          readOnly: true
          description: ID of external network connected to OpenStack tenant
        external_network_ref_uuid:
          type: string
          format: uuid
          readOnly: true
        external_network_ref_name:
          type: string
          readOnly: true
          default: ''
        user_username:
          type: string
          description: Username of the tenant user
          maxLength: 50
        user_password:
          type: string
          description: Password of the tenant user
          maxLength: 50
        quotas:
          type: array
          items:
            $ref: '#/components/schemas/Quota'
          readOnly: true
        default_volume_type_name:
          type: string
          description: Volume type name to use when creating volumes.
          maxLength: 100
        skip_creation_of_default_router:
          type: boolean
          default: false
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    OpenStackTenantChangePasswordRequest:
      type: object
      properties:
        user_password:
          type: string
          description: New tenant user password.
          maxLength: 50
      required:
      - user_password
      description: ''
    OpenStackTenantQuota:
      type: object
      properties:
        instances:
          type: integer
          minimum: 1
        volumes:
          type: integer
          minimum: 1
        snapshots:
          type: integer
          minimum: 1
        ram:
          type: integer
          minimum: 1
        vcpu:
          type: integer
          minimum: 1
        storage:
          type: integer
          minimum: 1
        security_group_count:
          type: integer
          minimum: 1
        security_group_rule_count:
          type: integer
          minimum: 1
      description: ''
    OpenStackTenantQuotaRequest:
      type: object
      properties:
        instances:
          type: integer
          minimum: 1
        volumes:
          type: integer
          minimum: 1
        snapshots:
          type: integer
          minimum: 1
        ram:
          type: integer
          minimum: 1
        vcpu:
          type: integer
          minimum: 1
        storage:
          type: integer
          minimum: 1
        security_group_count:
          type: integer
          minimum: 1
        security_group_rule_count:
          type: integer
          minimum: 1
      description: ''
    OpenStackTenantRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 64
        description:
          type: string
          maxLength: 4096
        availability_zone:
          type: string
          description: Optional availability group. Will be used for all instances
            provisioned in this tenant
          maxLength: 100
        default_volume_type_name:
          type: string
          description: Volume type name to use when creating volumes.
          maxLength: 100
        security_groups:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackTenantSecurityGroupRequest'
          writeOnly: true
        skip_creation_of_default_subnet:
          type: boolean
          writeOnly: true
          default: false
        skip_creation_of_default_router:
          type: boolean
          default: false
      required:
      - name
    OpenStackTenantSecurityGroup:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        rules:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackSecurityGroupRuleCreate'
      required:
      - name
      description: ''
    OpenStackTenantSecurityGroupRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        description:
          type: string
        rules:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackSecurityGroupRuleCreateRequest'
      required:
      - name
      description: ''
    OpenStackVolume:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
          readOnly: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
          nullable: true
          description: Volume ID in the OpenStack backend
        access_url:
          type: string
          nullable: true
          readOnly: true
        source_snapshot:
          type: string
          format: uri
          readOnly: true
          nullable: true
          description: Snapshot that this volume was created from, if any
        size:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Size in MiB
        bootable:
          type: boolean
          description: Indicates if this volume can be used to boot an instance
        metadata:
          readOnly: true
        image:
          type: string
          format: uri
          nullable: true
          description: Image that this volume was created from, if any
        image_metadata:
          type: string
          readOnly: true
          description: Metadata of the image this volume was created from
        image_name:
          type: string
          readOnly: true
          description: Name of the image this volume was created from
        type:
          type: string
          format: uri
          nullable: true
          description: Type of the volume (e.g. SSD, HDD)
        type_name:
          type: string
          readOnly: true
        runtime_state:
          type: string
          readOnly: true
        availability_zone:
          type: string
          format: uri
          nullable: true
          description: Availability zone where this volume is located
        availability_zone_name:
          type: string
          readOnly: true
        device:
          type: string
          readOnly: true
          description: Name of volume as instance device e.g. /dev/vdb.
        action:
          type: string
          readOnly: true
        action_details:
          readOnly: true
        instance:
          type: string
          format: uri
          readOnly: true
          nullable: true
          description: Instance that this volume is attached to, if any
        instance_name:
          type: string
          readOnly: true
        instance_marketplace_uuid:
          type: string
          format: uuid
          readOnly: true
        tenant:
          type: string
          format: uri
        tenant_uuid:
          type: string
          format: uuid
          readOnly: true
        extend_enabled:
          type: boolean
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    OpenStackVolumeAvailabilityZone:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        settings:
          type: string
          format: uri
          nullable: true
        available:
          type: boolean
      required:
      - name
      - url
      - uuid
    OpenStackVolumeExtendRequest:
      type: object
      properties:
        disk_size:
          type: integer
          minimum: 1
      required:
      - disk_size
      description: ''
    OpenStackVolumeRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        bootable:
          type: boolean
          description: Indicates if this volume can be used to boot an instance
      required:
      - name
    OpenStackVolumeRetypeRequest:
      type: object
      properties:
        type:
          type: string
          format: uri
      required:
      - type
      description: ''
    OpenStackVolumeType:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        settings:
          type: string
          format: uri
      required:
      - name
      - settings
      - url
      - uuid
    OptionField:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/OptionFieldTypeEnum'
        label:
          type: string
        help_text:
          type: string
        required:
          type: boolean
          default: false
        choices:
          type: array
          items:
            type: string
        default:
          type: string
        min:
          type: integer
        max:
          type: integer
        cascade_config:
          $ref: '#/components/schemas/CascadeConfig'
        component_multiplier_config:
          $ref: '#/components/schemas/ComponentMultiplierConfig'
        storage_folder_config:
          $ref: '#/components/schemas/StorageFolderConfig'
        default_configs:
          $ref: '#/components/schemas/K8sDefaultConfiguration'
        validators:
          type: array
          items:
            $ref: '#/components/schemas/OptionValidator'
      required:
      - label
      - type
      description: ''
    OptionFieldRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/OptionFieldTypeEnum'
        label:
          type: string
          minLength: 1
        help_text:
          type: string
          minLength: 1
        required:
          type: boolean
          default: false
        choices:
          type: array
          items:
            type: string
            minLength: 1
        default:
          type: string
          minLength: 1
        min:
          type: integer
        max:
          type: integer
        cascade_config:
          $ref: '#/components/schemas/CascadeConfigRequest'
        component_multiplier_config:
          $ref: '#/components/schemas/ComponentMultiplierConfigRequest'
        storage_folder_config:
          $ref: '#/components/schemas/StorageFolderConfigRequest'
        default_configs:
          $ref: '#/components/schemas/K8sDefaultConfigurationRequest'
        validators:
          type: array
          items:
            $ref: '#/components/schemas/OptionValidatorRequest'
      required:
      - label
      - type
      description: ''
    OptionFieldTypeEnum:
      enum:
      - boolean
      - integer
      - money
      - string
      - text
      - html_text
      - select_string
      - select_string_multi
      - select_openstack_tenant
      - select_multiple_openstack_tenants
      - select_openstack_instance
      - select_multiple_openstack_instances
      - date
      - time
      - conditional_cascade
      - component_multiplier
      - single_datacenter_k8s_config
      - multi_datacenter_k8s_config
      - storage_folder_manager
      type: string
      description: ''
    OptionValidator:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/OptionValidatorTypeEnum'
        target_field:
          type: string
      required:
      - target_field
      - type
      description: ''
    OptionValidatorRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/OptionValidatorTypeEnum'
        target_field:
          type: string
          minLength: 1
      required:
      - target_field
      - type
      description: ''
    OptionValidatorTypeEnum:
      enum:
      - gt
      - gte
      - lt
      - lte
      type: string
      description: ''
    OrcidCallbackRequest:
      type: object
      description: ''
      properties:
        code:
          type: string
          minLength: 1
          description: Authorization code from ORCID OAuth callback
        state:
          type: string
          description: State token for CSRF protection
      required:
      - code
    OrcidDisconnectResponse:
      type: object
      description: ''
      properties:
        detail:
          type: string
      required:
      - detail
    OrcidSyncResponse:
      type: object
      description: ''
      properties:
        imported:
          type: object
          additionalProperties: {}
        last_sync:
          type: string
          format: date-time
      required:
      - imported
      - last_sync
    OrderApproveByProviderRequest:
      type: object
      properties:
        attributes: {}
      description: ''
    OrderAttachment:
      type: object
      properties:
        attachment:
          type: string
          format: uri
          nullable: true
      description: ''
    OrderAttachmentRequest:
      type: object
      properties:
        attachment:
          type: string
          format: binary
          nullable: true
      description: ''
    OrderBackendIDRequest:
      type: object
      properties:
        backend_id:
          type: string
          writeOnly: true
          minLength: 1
          maxLength: 255
      required:
      - backend_id
      description: ''
    OrderConsumerInfoRequest:
      type: object
      properties:
        consumer_message:
          type: string
        consumer_message_attachment:
          type: string
          format: binary
      description: ''
    OrderCreateRequest:
      type: object
      description: ''
      properties:
        offering:
          type: string
          format: uri
        plan:
          type: string
          format: uri
        attributes:
          oneOf:
          - $ref: '#/components/schemas/AzureVirtualMachineCreateOrderAttributes'
          - $ref: '#/components/schemas/AzureSQLServerCreateOrderAttributes'
          - $ref: '#/components/schemas/MarketplaceOpenPortalCreateOrderAttributes'
          - $ref: '#/components/schemas/MarketplaceOpenPortalRemoteCreateOrderAttributes'
          - $ref: '#/components/schemas/OpenStackTenantCreateOrderAttributes'
          - $ref: '#/components/schemas/OpenStackInstanceCreateOrderAttributes'
          - $ref: '#/components/schemas/OpenStackVolumeCreateOrderAttributes'
          - $ref: '#/components/schemas/SlurmInvoicesSlurmPackageCreateOrderAttributes'
          - $ref: '#/components/schemas/VMwareVirtualMachineCreateOrderAttributes'
          - $ref: '#/components/schemas/GenericOrderAttributes'
          description: Attributes structure depends on the offering type specified
            in the parent object. Can also be a generic object for offerings without
            a specific attributes schema.
        limits:
          type: object
          additionalProperties:
            type: integer
        accepting_terms_of_service:
          type: boolean
          writeOnly: true
        callback_url:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        request_comment:
          type: string
          nullable: true
          maxLength: 255
        type:
          allOf:
          - $ref: '#/components/schemas/RequestTypes'
          default: Create
        start_date:
          type: string
          format: date
          nullable: true
          description: Enables delayed processing of resource provisioning order.
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        project:
          type: string
          format: uri
      required:
      - offering
      - project
    OrderDetails:
      type: object
      description: ''
      properties:
        offering:
          type: string
          format: uri
        offering_name:
          type: string
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_description:
          type: string
          readOnly: true
        offering_image:
          type: string
          format: uri
          readOnly: true
        offering_thumbnail:
          type: string
          format: uri
          readOnly: true
        offering_type:
          type: string
          readOnly: true
        offering_shared:
          type: boolean
          description: Accessible to all customers.
          readOnly: true
        offering_billable:
          type: boolean
          description: Purchase and usage is invoiced.
          readOnly: true
        offering_plugin_options:
          description: Public data used by specific plugin, such as storage mode for
            OpenStack.
          readOnly: true
        provider_name:
          type: string
          readOnly: true
        provider_uuid:
          type: string
          format: uuid
          readOnly: true
        provider_slug:
          type: string
          readOnly: true
        category_title:
          type: string
          readOnly: true
        category_uuid:
          type: string
          format: uuid
          readOnly: true
        category_icon:
          type: string
          format: uri
          readOnly: true
        plan:
          type: string
          format: uri
        plan_unit:
          allOf:
          - $ref: '#/components/schemas/BillingUnit'
          readOnly: true
          nullable: true
        plan_name:
          type: string
          readOnly: true
          nullable: true
        plan_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        plan_description:
          type: string
          readOnly: true
          nullable: true
        attributes: {}
        limits:
          type: object
          additionalProperties:
            type: integer
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        resource_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        resource_type:
          type: string
          readOnly: true
          nullable: true
        resource_name:
          type: string
          readOnly: true
        cost:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          readOnly: true
          nullable: true
        state:
          allOf:
          - $ref: '#/components/schemas/OrderState'
          readOnly: true
        output:
          type: string
          readOnly: true
        marketplace_resource_uuid:
          type: string
          format: uuid
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        callback_url:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        completed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          title: Completion time
        request_comment:
          type: string
          nullable: true
          maxLength: 255
        attachment:
          type: string
          format: uri
          nullable: true
        type:
          allOf:
          - $ref: '#/components/schemas/RequestTypes'
          default: Create
        start_date:
          type: string
          format: date
          nullable: true
          description: Enables delayed processing of resource provisioning order.
        slug:
          type: string
          readOnly: true
          pattern: ^[-a-zA-Z0-9_]+$
        url:
          type: string
          format: uri
          readOnly: true
        consumer_reviewed_by:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
          nullable: true
        consumer_reviewed_by_full_name:
          type: string
          readOnly: true
          nullable: true
        consumer_reviewed_by_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
          nullable: true
        consumer_reviewed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        provider_reviewed_by:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
          nullable: true
        provider_reviewed_by_full_name:
          type: string
          readOnly: true
          nullable: true
        provider_reviewed_by_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
          nullable: true
        provider_reviewed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        created_by_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        created_by_full_name:
          type: string
          readOnly: true
        created_by_civil_number:
          type: string
          nullable: true
          readOnly: true
        created_by_email:
          type: string
          format: email
          title: Email address
          readOnly: true
          nullable: true
        created_by_organization:
          type: string
          readOnly: true
          nullable: true
        created_by_organization_registry_code:
          type: string
          description: Company registration code of the user's organization, if known
          readOnly: true
          nullable: true
        customer_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_slug:
          type: string
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_description:
          type: string
          readOnly: true
        project_slug:
          type: string
          readOnly: true
        old_plan_name:
          type: string
          readOnly: true
          nullable: true
        new_plan_name:
          type: string
          readOnly: true
          nullable: true
        old_plan_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        new_plan_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        old_cost_estimate:
          type: number
          format: double
          readOnly: true
        new_cost_estimate:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          nullable: true
          readOnly: true
        can_terminate:
          type: boolean
          readOnly: true
        fixed_price:
          type: number
          format: double
          readOnly: true
        activation_price:
          type: number
          format: double
          readOnly: true
        termination_comment:
          type: string
          nullable: true
          readOnly: true
        backend_id:
          type: string
          maxLength: 255
        order_subtype:
          type: string
          nullable: true
          readOnly: true
        provider_message:
          type: string
        provider_message_url:
          type: string
          format: uri
          maxLength: 200
        provider_message_attachment:
          type: string
          format: uri
          nullable: true
        consumer_message:
          type: string
        consumer_message_attachment:
          type: string
          format: uri
          nullable: true
        consumer_rejection_comment:
          type: string
          readOnly: true
        provider_rejection_comment:
          type: string
          readOnly: true
        issue:
          allOf:
          - $ref: '#/components/schemas/IssueReference'
          nullable: true
          readOnly: true
      required: []
    OrderErrorDetailsRequest:
      type: object
      properties:
        error_message:
          type: string
        error_traceback:
          type: string
        consumer_rejection_comment:
          type: string
      description: ''
    OrderInfoResponse:
      type: object
      properties:
        detail:
          type: string
          readOnly: true
      required:
      - detail
      description: ''
    OrderProviderInfoRequest:
      type: object
      properties:
        provider_message:
          type: string
        provider_message_url:
          type: string
          format: uri
        provider_message_attachment:
          type: string
          format: binary
      description: ''
    OrderProviderRejectionRequest:
      type: object
      properties:
        provider_rejection_comment:
          type: string
      description: ''
    OrderState:
      enum:
      - pending-consumer
      - pending-provider
      - pending-project
      - pending-start-date
      - executing
      - done
      - erred
      - canceled
      - rejected
      type: string
      description: ''
    OrderStatsResponse:
      type: object
      description: ''
      properties:
        summary:
          allOf:
          - $ref: '#/components/schemas/OrderStatsSummary'
          description: Summary statistics
        by_state:
          type: object
          additionalProperties:
            type: integer
          description: Total order counts grouped by state
        by_type:
          type: object
          additionalProperties:
            type: integer
          description: Total order counts grouped by type
        daily:
          type: array
          items:
            $ref: '#/components/schemas/DailyOrderStats'
          description: Daily breakdown
      required:
      - by_state
      - by_type
      - daily
      - summary
    OrderStatsSummary:
      type: object
      description: ''
      properties:
        total:
          type: integer
          description: Total number of orders
        total_cost:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
          description: Total cost of orders
        total_revenue:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
          description: Total revenue from create/update orders
        pending:
          type: integer
          description: Number of pending orders
        executing:
          type: integer
          description: Number of executing orders
        done:
          type: integer
          description: Number of completed orders
        erred:
          type: integer
          description: Number of erred orders
        canceled:
          type: integer
          description: Number of canceled orders
        rejected:
          type: integer
          description: Number of rejected orders
      required:
      - canceled
      - done
      - erred
      - executing
      - pending
      - rejected
      - total
      - total_cost
      - total_revenue
    OrderUUID:
      type: object
      properties:
        order_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the created or updated order
      required:
      - order_uuid
      description: ''
    OrderUpdate:
      type: object
      description: ''
      properties:
        limits:
          type: object
          additionalProperties:
            type: integer
        attributes: {}
        start_date:
          type: string
          format: date
          nullable: true
          description: Enables delayed processing of resource provisioning order.
    OrderUpdateRequest:
      type: object
      description: ''
      properties:
        limits:
          type: object
          additionalProperties:
            type: integer
        attributes: {}
        start_date:
          type: string
          format: date
          nullable: true
          description: Enables delayed processing of resource provisioning order.
    OrganizationGroup:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          maxLength: 150
        parent_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the parent organization group
        parent_name:
          type: string
          readOnly: true
          description: Name of the parent organization group
        parent:
          type: string
          format: uri
          nullable: true
        customers_count:
          type: integer
          readOnly: true
          description: Number of customers in this organization group
      required: []
      description: ''
    OrganizationGroupRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        parent:
          type: string
          format: uri
          nullable: true
      required:
      - name
      description: ''
    OrganizationGroupsRequest:
      type: object
      properties:
        organization_groups:
          type: array
          items:
            type: string
            format: uri
      description: ''
    OrganizationalAccess:
      type: object
      description: ''
      properties:
        scope_type:
          type: string
        scope_uuid:
          type: string
          format: uuid
        scope_name:
          type: string
        users:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationalUser'
      required:
      - scope_name
      - scope_type
      - scope_uuid
      - users
    OrganizationalUser:
      type: object
      description: ''
      properties:
        user_uuid:
          type: string
          format: uuid
        username:
          type: string
        full_name:
          type: string
        role:
          type: string
          nullable: true
      required:
      - full_name
      - role
      - user_uuid
      - username
    PaidRequest:
      type: object
      properties:
        date:
          type: string
          format: date
        proof:
          type: string
          format: binary
      required:
      - date
      description: ''
    PartitionSummary:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        partition_name:
          type: string
          description: Name of the SLURM partition
          maxLength: 255
        priority_tier:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Priority tier for scheduling and preemption
        qos:
          type: string
          description: Quality of Service (QOS) name
          maxLength: 255
      required: []
    PartitionSummaryRequest:
      type: object
      description: ''
      properties:
        partition_name:
          type: string
          minLength: 1
          description: Name of the SLURM partition
          maxLength: 255
        priority_tier:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Priority tier for scheduling and preemption
        qos:
          type: string
          description: Quality of Service (QOS) name
          maxLength: 255
      required:
      - partition_name
    PasswordChangeRequest:
      type: object
      properties:
        new_password:
          type: string
          writeOnly: true
          minLength: 1
      required:
      - new_password
      description: ''
    PatchedAccessSubnetRequest:
      type: object
      description: ''
      properties:
        inet:
          type: string
          minLength: 1
        description:
          type: string
          maxLength: 4096
    PatchedAdminAnnouncementRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        active_from:
          type: string
          format: date-time
        active_to:
          type: string
          format: date-time
        type:
          $ref: '#/components/schemas/AdminAnnouncementTypeEnum'
    PatchedAllocationRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        node_limit:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
        groupname:
          type: string
          nullable: true
          maxLength: 64
    PatchedArrowCustomerMappingRequest:
      type: object
      description: ''
      properties:
        settings:
          type: string
          format: uri
        arrow_reference:
          type: string
          minLength: 1
          description: Arrow customer ID (e.g., 'XSP661245')
          maxLength: 255
        arrow_company_name:
          type: string
          description: Arrow company name
          maxLength: 500
        waldur_customer:
          type: string
          format: uri
        is_active:
          type: boolean
          description: Whether this mapping is active
    PatchedArrowSettingsRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          description: Arrow API base URL
          maxLength: 255
        api_key:
          type: string
          minLength: 1
          description: Arrow API Key (leave empty on update to keep current)
        export_type_reference:
          type: string
          description: Billing export template reference
          maxLength: 255
        classification_filter:
          type: string
          minLength: 1
          description: Filter for IaaS/SaaS classification
          maxLength: 50
        is_active:
          type: boolean
          description: Whether this settings record is active
        sync_enabled:
          type: boolean
          description: Whether automatic billing sync is enabled
        invoice_price_source:
          allOf:
          - $ref: '#/components/schemas/InvoicePriceSourceEnum'
          description: 'Which price to use for invoice items: sell or buy'
        invoice_item_prefix:
          type: string
          description: Prefix for invoice item names (e.g. 'Arrow consumption')
          maxLength: 100
    PatchedArrowVendorOfferingMappingRequest:
      type: object
      description: ''
      properties:
        settings:
          type: string
          format: uri
        arrow_vendor_name:
          type: string
          minLength: 1
          description: Arrow vendor name (e.g., 'Microsoft', 'Amazon Web Services')
          maxLength: 255
        offering:
          type: string
          format: uuid
        plan:
          type: string
          format: uuid
          nullable: true
        is_active:
          type: boolean
          description: Whether this mapping is active
    PatchedAssignmentBatchRequest:
      type: object
      description: ''
      properties:
        manager_notes:
          type: string
          description: Optional notes from call manager to reviewer.
    PatchedAssignmentItemRequest:
      type: object
      description: ''
      properties:
        decline_reason:
          type: string
          description: Reason provided by reviewer for declining.
    PatchedAwsInstanceRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
    PatchedAzurePublicIPRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        location:
          type: string
          format: uri
        resource_group:
          type: string
          format: uri
    PatchedAzureSqlDatabaseRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        server:
          type: string
          format: uri
        charset:
          type: string
          nullable: true
          maxLength: 255
        collation:
          type: string
          nullable: true
          maxLength: 255
    PatchedAzureSqlServerRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        location:
          type: string
          format: uri
          writeOnly: true
        storage_mb:
          type: integer
          maximum: 4194304
          minimum: 5120
          nullable: true
    PatchedAzureVirtualMachineRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        location:
          type: string
          format: uri
          writeOnly: true
    PatchedBroadcastMessageRequest:
      type: object
      description: ''
      properties:
        subject:
          type: string
          minLength: 1
          maxLength: 1000
        body:
          type: string
          minLength: 1
        query: {}
        send_at:
          type: string
          format: date
          nullable: true
    PatchedCallApplicantAttributeConfigRequest:
      type: object
      description: ''
      properties:
        call:
          type: string
          format: uuid
          writeOnly: true
        expose_full_name:
          type: boolean
        expose_email:
          type: boolean
        expose_organization:
          type: boolean
        expose_affiliations:
          type: boolean
        expose_organization_type:
          type: boolean
        expose_organization_country:
          type: boolean
        expose_nationality:
          type: boolean
        expose_nationalities:
          type: boolean
        expose_country_of_residence:
          type: boolean
        expose_eduperson_assurance:
          type: boolean
        expose_identity_source:
          type: boolean
        reviewers_see_applicant_details:
          type: boolean
          description: If True, reviewers see applicant identity. If False, proposals
            are anonymized for reviewers.
    PatchedCallAssignmentConfigurationRequest:
      type: object
      description: ''
      properties:
        auto_reassign_on_decline:
          type: boolean
          description: Automatically assign next-best reviewer when someone declines.
            If False, manager must manually approve reassignments.
        max_auto_reassign_attempts:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Maximum automatic reassignment attempts before requiring manual
            intervention.
        assignment_expiration_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Days until assignment invitation expires if not responded to.
        send_reminder_before_expiry_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Days before expiry to send reminder notification.
    PatchedCallCOIConfigurationRequest:
      type: object
      description: ''
      properties:
        coauthorship_lookback_years:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Years to look back for co-authorship detection
        coauthorship_threshold_papers:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Minimum shared papers to trigger COI
        institutional_lookback_years:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Years to look back for former institution detection
        include_same_department:
          type: boolean
          description: Detect same-department as COI
        include_same_institution:
          type: boolean
          description: Detect same-institution as COI
        recusal_required_types:
          type: array
          items:
            type: string
            minLength: 1
          description: COI types requiring automatic recusal
        management_allowed_types:
          type: array
          items:
            type: string
            minLength: 1
          description: COI types allowing management plan
        disclosure_only_types:
          type: array
          items:
            type: string
            minLength: 1
          description: COI types requiring disclosure only
        auto_detect_coauthorship:
          type: boolean
          description: Enable automated co-authorship detection
        auto_detect_institutional:
          type: boolean
          description: Enable automated institutional affiliation detection
        auto_detect_named_personnel:
          type: boolean
          description: Enable detection of reviewer named in proposals
        invitation_proposal_disclosure:
          allOf:
          - $ref: '#/components/schemas/InvitationProposalDisclosureEnum'
          description: Level of proposal information disclosed in reviewer invitations
    PatchedCallManagingOrganisationRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        image:
          type: string
          format: binary
          nullable: true
    PatchedCallResourceTemplateRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        attributes: {}
        limits: {}
        is_required:
          type: boolean
          description: If True, every proposal must include this resource type
        requested_offering:
          type: string
          format: uri
    PatchedCallReviewerPoolUpdateRequest:
      type: object
      description: ''
      properties:
        max_assignments:
          type: integer
          maximum: 50
          minimum: 1
          description: Maximum number of proposals that can be assigned to this reviewer
    PatchedCategoryColumnRequest:
      type: object
      properties:
        index:
          type: integer
          maximum: 32767
          minimum: 0
          description: Index allows to reorder columns.
        title:
          type: string
          minLength: 1
          description: Title is rendered as column header.
          maxLength: 255
        attribute:
          type: string
          description: Resource attribute is rendered as table cell.
          maxLength: 255
        widget:
          nullable: true
          description: Widget field allows to customise table cell rendering.
          oneOf:
          - $ref: '#/components/schemas/WidgetEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        category:
          type: string
          format: uri
      description: ''
    PatchedCategoryComponentsRequest:
      type: object
      properties:
        type:
          type: string
          minLength: 1
          description: Unique internal name of the measured unit, for example floating_ip.
          pattern: ^[a-zA-Z0-9_\-\/:]+$
          maxLength: 50
        name:
          type: string
          minLength: 1
          description: Display name for the measured unit, for example, Floating IP.
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          maxLength: 30
        category:
          $ref: '#/components/schemas/CategorySerializerForForNestedFieldsRequest'
      description: ''
    PatchedCategoryGroupRequest:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: binary
          nullable: true
    PatchedCategoryHelpArticlesRequest:
      type: object
      properties:
        title:
          type: string
          nullable: true
          maxLength: 255
        url:
          type: string
          format: uri
          minLength: 1
          maxLength: 200
        categories:
          type: array
          items:
            $ref: '#/components/schemas/CategorySerializerForForNestedFieldsRequest'
      description: ''
    PatchedChecklistRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        checklist_type:
          allOf:
          - $ref: '#/components/schemas/ChecklistTypeEnum'
          description: Type of compliance this checklist addresses
    PatchedClusterSecurityGroupRequest:
      type: object
      properties:
        rules:
          type: array
          items:
            $ref: '#/components/schemas/RancherClusterSecurityGroupRuleRequest'
      description: ''
    PatchedCommentRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          minLength: 1
        is_public:
          type: boolean
    PatchedComponentUserUsageLimitRequest:
      type: object
      properties:
        resource:
          type: string
          format: uri
        component:
          type: string
          format: uuid
        user:
          type: string
          format: uri
        limit:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
      description: ''
    PatchedConflictOfInterestRequest:
      type: object
      description: ''
      properties:
        status:
          $ref: '#/components/schemas/ConflictOfInterestStatusEnum'
        review_notes:
          type: string
        management_plan:
          type: string
          description: If waived, how is it managed
    PatchedCreateCustomerCreditRequest:
      type: object
      properties:
        value:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        customer:
          type: string
          format: uri
        offerings:
          type: array
          items:
            type: string
            format: uri
            nullable: true
        end_date:
          type: string
          format: date
          nullable: true
        expected_consumption:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        minimal_consumption_logic:
          $ref: '#/components/schemas/MinimalConsumptionLogicEnum'
        grace_coefficient:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
        apply_as_minimal_consumption:
          type: boolean
      description: ''
    PatchedCustomerComponentUsagePolicyRequest:
      type: object
      properties:
        scope:
          type: string
          format: uri
        actions:
          type: string
          minLength: 1
          maxLength: 255
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        component_limits_set:
          type: array
          items:
            $ref: '#/components/schemas/NestedCustomerUsagePolicyComponentRequest'
      description: ''
    PatchedCustomerEstimatedCostPolicyRequest:
      type: object
      description: ''
      properties:
        scope:
          type: string
          format: uri
        actions:
          type: string
          minLength: 1
          maxLength: 255
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        limit_cost:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
    PatchedCustomerRequest:
      type: object
      description: ''
      properties:
        backend_id:
          type: string
          description: Organization identifier in another application.
          maxLength: 255
        image:
          type: string
          format: binary
          nullable: true
        blocked:
          type: boolean
        archived:
          type: boolean
        display_billing_info_in_projects:
          type: boolean
        default_tax_percent:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
        accounting_start_date:
          type: string
          format: date-time
          title: Start date of accounting
        sponsor_number:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: External ID of the sponsor covering the costs
        max_service_accounts:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Maximum number of service accounts allowed
        project_metadata_checklist:
          type: string
          format: uuid
          nullable: true
          description: Checklist to be used for project metadata validation in this
            organization
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        name:
          type: string
          minLength: 1
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        native_name:
          type: string
          maxLength: 160
        abbreviation:
          type: string
          maxLength: 12
        description:
          type: string
          maxLength: 4096
        contact_details:
          type: string
          maxLength: 500
        agreement_number:
          type: string
          maxLength: 160
        email:
          type: string
          format: email
          title: Email address
          maxLength: 75
        phone_number:
          type: string
          maxLength: 255
        access_subnets:
          type: string
          description: Enter a comma separated list of IPv4 or IPv6 CIDR addresses
            from where connection to self-service is allowed.
        registration_code:
          type: string
          maxLength: 160
        homepage:
          type: string
          format: uri
          maxLength: 255
        domain:
          type: string
          maxLength: 255
        vat_code:
          type: string
          description: VAT number
          maxLength: 20
        postal:
          type: string
          maxLength: 20
        address:
          type: string
          maxLength: 300
        bank_name:
          type: string
          maxLength: 150
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        bank_account:
          type: string
          maxLength: 50
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        notification_emails:
          type: string
          description: Comma-separated list of notification email addresses
          maxLength: 640
    PatchedCustomerServiceAccountRequest:
      type: object
      properties:
        username:
          type: string
          maxLength: 32
        description:
          type: string
        error_traceback:
          type: string
        email:
          type: string
          format: email
          minLength: 1
          maxLength: 320
        preferred_identifier:
          type: string
          maxLength: 32
        customer:
          type: string
          format: uuid
      description: ''
    PatchedDigitalOceanDropletRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
    PatchedEmailHookRequest:
      type: object
      properties:
        is_active:
          type: boolean
        event_types:
          type: array
          items:
            $ref: '#/components/schemas/EventTypesEnum'
        event_groups:
          type: array
          items:
            $ref: '#/components/schemas/EventGroupsEnum'
        email:
          type: string
          format: email
          minLength: 1
          maxLength: 320
      description: ''
    PatchedExternalLinkRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        link:
          type: string
          format: uri
          minLength: 1
          maxLength: 500
        image:
          type: string
          format: binary
          nullable: true
      description: ''
    PatchedFirecrestJobRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        runtime_state:
          type: string
          maxLength: 100
    PatchedGroupInvitationUpdateRequest:
      type: object
      properties:
        is_public:
          type: boolean
          description: Allow non-authenticated users to see and accept this invitation.
            Only staff can create public invitations.
        role:
          type: string
          format: uuid
          description: UUID of the role to grant.
        scope:
          type: string
          description: URL of the scope (Customer or Project) for this invitation
        auto_create_project:
          type: boolean
          description: Create project and grant project permissions instead of customer
            permissions
        auto_approve:
          type: boolean
          description: Automatically approve permission requests from users matching
            email patterns or affiliations
        project_name_template:
          type: string
          nullable: true
          description: Template for project name. Supports {username}, {email}, {full_name}
            variables
          maxLength: 255
        project_role:
          type: string
          format: uuid
          nullable: true
          description: UUID of the project role to grant if auto_create_project is
            enabled
        user_affiliations: {}
        user_email_patterns: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        custom_text:
          type: string
          description: Custom description text displayed to users viewing this invitation.
          maxLength: 500
      description: ''
    PatchedIdentityProviderRequest:
      type: object
      properties:
        provider:
          type: string
          minLength: 1
          maxLength: 32
        is_active:
          type: boolean
        client_id:
          type: string
          minLength: 1
          description: ID of application used for OAuth authentication.
          maxLength: 200
        client_secret:
          type: string
          minLength: 1
          description: Application secret key.
          maxLength: 200
        verify_ssl:
          type: boolean
        enable_post_logout_redirect:
          type: boolean
        enable_pkce:
          type: boolean
        discovery_url:
          type: string
          minLength: 1
          description: The endpoint for endpoint discovery.
          maxLength: 200
        label:
          type: string
          minLength: 1
          description: Human-readable identity provider is label.
          maxLength: 200
        management_url:
          type: string
          description: The endpoint for user details management.
          maxLength: 200
        protected_fields: {}
        extra_scope:
          type: string
          nullable: true
          description: Space-separated list of scopes to request during authentication.
          maxLength: 200
        user_field:
          type: string
          minLength: 1
          description: The field in Waldur User model to be used for looking up the
            user
          maxLength: 100
        user_claim:
          type: string
          minLength: 1
          description: The OIDC claim from the userinfo endpoint to be used as the
            value for the lookup field.
          maxLength: 100
        attribute_mapping:
          description: 'A JSON object mapping Waldur User model fields to OIDC claims.
            Example: {"first_name": "given_name", "last_name": "family_name", "email":
            "email"}'
        extra_fields:
          type: string
          nullable: true
          description: Space-separated list of extra fields to persist.
          maxLength: 200
        allowed_redirects:
          description: 'List of allowed redirect URLs for OAuth authentication. URLs
            must be exact matches (origin only: scheme + domain + port). HTTPS required
            except for localhost. No wildcards, paths, query params, or fragments.
            Example: ["https://portal1.example.com", "https://portal2.example.com:8443"].
            If empty, falls back to HOMEPORT_URL setting.'
      description: ''
    PatchedInvitationUpdateRequest:
      type: object
      properties:
        email:
          type: string
          format: email
          minLength: 1
          description: Invitation link will be sent to this email. Note that user
            can accept invitation with different email.
          maxLength: 254
        role:
          type: string
          format: uuid
          description: UUID of the new role to assign. Must be compatible with the
            invitation scope.
      description: ''
    PatchedInvoiceItemUpdateRequest:
      type: object
      properties:
        article_code:
          type: string
          maxLength: 30
        quantity:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        start:
          type: string
          format: date-time
          description: Date and time when item usage has started.
        end:
          type: string
          format: date-time
          description: Date and time when item usage has ended.
      description: ''
    PatchedIssueRequest:
      type: object
      description: ''
      properties:
        summary:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        assignee:
          type: string
          format: uri
          nullable: true
        is_reported_manually:
          type: boolean
          writeOnly: true
          default: false
          description: Set true if issue is created by regular user via portal.
    PatchedIssueStatusRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          description: Status name in Jira.
          maxLength: 255
        type:
          allOf:
          - $ref: '#/components/schemas/IssueStatusType'
          minimum: -2147483648
          maximum: 2147483647
      description: ''
    PatchedKeycloakUserGroupMembershipRequest:
      type: object
      properties:
        username:
          type: string
          minLength: 1
          description: Keycloak user username
          maxLength: 255
        email:
          type: string
          format: email
          minLength: 1
          description: User's email for notifications
          maxLength: 254
        scope_uuid:
          type: string
          format: uuid
          writeOnly: true
          description: UUID of a cluster or a project in Rancher
        role:
          type: string
          format: uri
          writeOnly: true
      description: ''
    PatchedLexisLinkRequest:
      type: object
      properties:
        heappe_project_id:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
      description: ''
    PatchedMaintenanceAnnouncementOfferingRequest:
      type: object
      properties:
        maintenance:
          type: string
          format: uri
        offering:
          type: string
          format: uri
        impact_level:
          allOf:
          - $ref: '#/components/schemas/ImpactLevelEnum'
          description: Expected impact on this offering
          minimum: 0
          maximum: 32767
        impact_description:
          type: string
          description: Specific description of how this offering will be affected
      description: ''
    PatchedMaintenanceAnnouncementOfferingTemplateRequest:
      type: object
      properties:
        maintenance_template:
          type: string
          format: uri
        offering:
          type: string
          format: uri
        impact_level:
          allOf:
          - $ref: '#/components/schemas/ImpactLevelEnum'
          description: Expected impact on this offering
          minimum: 0
          maximum: 32767
        impact_description:
          type: string
          description: Specific description of how this offering will be affected
      description: ''
    PatchedMaintenanceAnnouncementRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        message:
          type: string
          maxLength: 2000
        internal_notes:
          type: string
          maxLength: 2000
        maintenance_type:
          allOf:
          - $ref: '#/components/schemas/MaintenanceTypeEnum'
          description: Type of maintenance being performed
          minimum: 0
          maximum: 32767
        external_reference_url:
          type: string
          format: uri
          description: Optional reference to an external maintenance tracker
          maxLength: 200
        scheduled_start:
          type: string
          format: date-time
          description: When the maintenance is scheduled to begin
        scheduled_end:
          type: string
          format: date-time
          description: When the maintenance is scheduled to complete
        service_provider:
          type: string
          format: uri
          description: Service provider announcing the maintenance
      description: ''
    PatchedMaintenanceAnnouncementTemplateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        message:
          type: string
          maxLength: 2000
        maintenance_type:
          allOf:
          - $ref: '#/components/schemas/MaintenanceTypeEnum'
          description: Type of maintenance being performed
          minimum: 0
          maximum: 32767
        service_provider:
          type: string
          format: uri
          description: Service provider announcing the maintenance
      description: ''
    PatchedMarketplaceCategoryRequest:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: binary
          nullable: true
        default_vm_category:
          type: boolean
          description: Set to "true" if this category is for OpenStack VM. Only one
            category can have "true" value.
        default_volume_category:
          type: boolean
          description: Set to true if this category is for OpenStack Volume. Only
            one category can have "true" value.
        default_tenant_category:
          type: boolean
          description: Set to true if this category is for OpenStack Tenant. Only
            one category can have "true" value.
        group:
          type: string
          format: uri
          nullable: true
    PatchedMatchingConfigurationRequest:
      type: object
      description: ''
      properties:
        affinity_method:
          $ref: '#/components/schemas/AffinityMethodEnum'
        keyword_weight:
          type: number
          format: double
          minimum: 0.0
        text_weight:
          type: number
          format: double
          minimum: 0.0
        min_reviewers_per_proposal:
          type: integer
          maximum: 2147483647
          minimum: 0
        max_reviewers_per_proposal:
          type: integer
          maximum: 2147483647
          minimum: 0
        min_proposals_per_reviewer:
          type: integer
          maximum: 2147483647
          minimum: 0
        max_proposals_per_reviewer:
          type: integer
          maximum: 2147483647
          minimum: 0
        algorithm:
          $ref: '#/components/schemas/MatchingAlgorithm'
        min_affinity_threshold:
          type: number
          format: double
          minimum: 0.0
          description: Minimum affinity score for FairFlow algorithm
        use_reviewer_bids:
          type: boolean
        bid_weight:
          type: number
          format: double
          minimum: 0.0
    PatchedMessageTemplateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        subject:
          type: string
          minLength: 1
        body:
          type: string
          minLength: 1
      description: ''
    PatchedMigrationDetailsRequest:
      type: object
      properties:
        mappings:
          $ref: '#/components/schemas/MappingRequest'
        error_message:
          type: string
        error_traceback:
          type: string
      description: ''
    PatchedNetworkRBACPolicyRequest:
      type: object
      description: ''
      properties:
        network:
          type: string
          format: uri
        target_tenant:
          type: string
          format: uri
        policy_type:
          allOf:
          - $ref: '#/components/schemas/PolicyTypeEnum'
          default: access_as_shared
          description: Type of access granted - either shared access or external network
            access
    PatchedNotificationRequest:
      type: object
      properties:
        key:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
          maxLength: 4096
      description: ''
    PatchedNotificationTemplateDetailSerializersRequest:
      type: object
      properties:
        path:
          type: string
          minLength: 1
          description: 'Example: ''flatpages/default.html'''
          maxLength: 150
        name:
          type: string
          minLength: 1
          maxLength: 150
      description: ''
    PatchedOfferingEstimatedCostPolicyRequest:
      type: object
      description: ''
      properties:
        scope:
          type: string
          format: uri
        actions:
          type: string
          minLength: 1
          maxLength: 255
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        limit_cost:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
        organization_groups:
          type: array
          items:
            type: string
            format: uri
        apply_to_all:
          type: boolean
          description: If True, policy applies to all customers. Mutually exclusive
            with organization_groups.
    PatchedOfferingPartitionUpdateRequest:
      type: object
      description: ''
      properties:
        partition_uuid:
          type: string
          format: uuid
          writeOnly: true
        partition_name:
          type: string
          minLength: 1
          description: Name of the SLURM partition
          maxLength: 255
        cpu_bind:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default task binding policy (SLURM cpu_bind)
        def_cpu_per_gpu:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default CPUs allocated per GPU
        max_cpus_per_node:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum allocated CPUs per node
        max_cpus_per_socket:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum allocated CPUs per socket
        def_mem_per_cpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per CPU in MB
        def_mem_per_gpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per GPU in MB
        def_mem_per_node:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Default memory per node in MB
        max_mem_per_cpu:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Maximum memory per CPU in MB
        max_mem_per_node:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          nullable: true
          description: Maximum memory per node in MB
        default_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Default time limit in minutes
        max_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum time limit in minutes
        grace_time:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Preemption grace time in seconds
        max_nodes:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum nodes per job
        min_nodes:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Minimum nodes per job
        exclusive_topo:
          type: boolean
          description: Exclusive topology access required
        exclusive_user:
          type: boolean
          description: Exclusive user access required
        priority_tier:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Priority tier for scheduling and preemption
        qos:
          type: string
          description: Quality of Service (QOS) name
          maxLength: 255
        req_resv:
          type: boolean
          description: Require reservation for job allocation
    PatchedOfferingSoftwareCatalogUpdateRequest:
      type: object
      description: ''
      properties:
        offering_catalog_uuid:
          type: string
          format: uuid
          writeOnly: true
        catalog:
          type: string
          format: uuid
        enabled_cpu_family:
          description: 'List of enabled CPU families: [''x86_64'', ''aarch64'']'
        enabled_cpu_microarchitectures:
          description: 'List of enabled CPU microarchitectures: [''generic'', ''zen3'']'
        partition:
          type: string
          format: uuid
          nullable: true
    PatchedOfferingTermsOfServiceRequest:
      type: object
      description: ''
      properties:
        terms_of_service:
          type: string
        terms_of_service_link:
          type: string
          format: uri
          maxLength: 200
        is_active:
          type: boolean
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Number of days before outdated consents are automatically revoked.
            Only applies when requires_reconsent=True.
    PatchedOfferingUsagePolicyRequest:
      type: object
      description: ''
      properties:
        scope:
          type: string
          format: uri
        actions:
          type: string
          minLength: 1
          maxLength: 255
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        organization_groups:
          type: array
          items:
            type: string
            format: uri
        apply_to_all:
          type: boolean
          description: If True, policy applies to all customers. Mutually exclusive
            with organization_groups.
        component_limits_set:
          type: array
          items:
            $ref: '#/components/schemas/NestedOfferingComponentLimitRequest'
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
    PatchedOfferingUserAttributeConfigRequest:
      type: object
      description: ''
      properties:
        offering:
          type: string
          format: uuid
          writeOnly: true
        expose_username:
          type: boolean
        expose_full_name:
          type: boolean
        expose_email:
          type: boolean
        expose_phone_number:
          type: boolean
        expose_organization:
          type: boolean
        expose_job_title:
          type: boolean
        expose_affiliations:
          type: boolean
        expose_gender:
          type: boolean
        expose_personal_title:
          type: boolean
        expose_place_of_birth:
          type: boolean
        expose_country_of_residence:
          type: boolean
        expose_nationality:
          type: boolean
        expose_nationalities:
          type: boolean
        expose_organization_country:
          type: boolean
        expose_organization_type:
          type: boolean
        expose_eduperson_assurance:
          type: boolean
        expose_civil_number:
          type: boolean
        expose_birth_date:
          type: boolean
        expose_identity_source:
          type: boolean
    PatchedOfferingUserRequest:
      type: object
      description: ''
      properties:
        user:
          type: string
          format: uri
        offering:
          type: string
          format: uri
        username:
          type: string
          nullable: true
          maxLength: 100
        offering_uuid:
          type: string
          format: uuid
        user_uuid:
          type: string
          format: uuid
    PatchedOfferingUserRoleRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        offering:
          type: string
          format: uri
      description: ''
    PatchedOfferingUserServiceProviderCommentRequest:
      type: object
      description: ''
      properties:
        service_provider_comment:
          type: string
        service_provider_comment_url:
          type: string
          format: uri
          description: URL link for additional information or actions related to service
            provider comment
          maxLength: 200
    PatchedOnboardingJustificationRequest:
      type: object
      description: ''
      properties:
        verification:
          type: string
          format: uri
        user_justification:
          type: string
          nullable: true
          description: User's explanation for why they should be authorized
    PatchedOnboardingQuestionMetadataRequest:
      type: object
      description: ''
      properties:
        question:
          type: string
          format: uri
        maps_to_customer_field:
          type: string
          description: Customer model field name to map this answer to (e.g., 'registration_code',
            'email', 'vat_code')
          maxLength: 100
        intent_field:
          type: string
          description: Type of intent/purpose field (e.g., 'intent', 'registration_purpose')
            - stays with verification
          maxLength: 50
    PatchedOnboardingVerificationRequest:
      type: object
      description: ''
      properties:
        country:
          type: string
          description: ISO country code (e.g., 'EE', 'AT') for context. Can be inferred
            from validation_method.
          maxLength: 2
        legal_person_identifier:
          type: string
          description: Official company registration code (required for automatic
            validation)
          maxLength: 50
        legal_name:
          type: string
          description: Company name(optional, for reference)
          maxLength: 255
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: When this verification expires
    PatchedOpenStackBackupRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        kept_until:
          type: string
          format: date-time
          nullable: true
          description: Guaranteed time of backup retention. If null - keep forever.
    PatchedOpenStackInstanceRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
    PatchedOpenStackNetworkRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
    PatchedOpenStackPortRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        target_tenant:
          type: string
          format: uri
          writeOnly: true
          description: Target tenant for shared network port creation. If not specified,
            defaults to network's tenant.
        security_groups:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackPortNestedSecurityGroupRequest'
    PatchedOpenStackSecurityGroupUpdateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
      description: ''
    PatchedOpenStackSnapshotRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        metadata: {}
        kept_until:
          type: string
          format: date-time
          nullable: true
          description: Guaranteed time of snapshot retention. If null - keep forever.
    PatchedOpenStackSubNetRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        cidr:
          type: string
          minLength: 1
        gateway_ip:
          description: IP address of the gateway for this subnet
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          nullable: true
          minLength: 1
        disable_gateway:
          type: boolean
          description: If True, no gateway IP address will be allocated
        allocation_pools:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackSubNetAllocationPoolRequest'
        dns_nameservers:
          type: array
          items:
            description: An IPv4 or IPv6 address.
            oneOf:
            - type: string
              format: ipv4
            - type: string
              format: ipv6
            minLength: 1
        host_routes:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackStaticRouteRequest'
    PatchedOpenStackTenantRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 64
        description:
          type: string
          maxLength: 4096
        availability_zone:
          type: string
          description: Optional availability group. Will be used for all instances
            provisioned in this tenant
          maxLength: 100
        default_volume_type_name:
          type: string
          description: Volume type name to use when creating volumes.
          maxLength: 100
        security_groups:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackTenantSecurityGroupRequest'
          writeOnly: true
        skip_creation_of_default_subnet:
          type: boolean
          writeOnly: true
          default: false
        skip_creation_of_default_router:
          type: boolean
          default: false
    PatchedOpenStackVolumeRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        bootable:
          type: boolean
          description: Indicates if this volume can be used to boot an instance
    PatchedOrderUpdateRequest:
      type: object
      description: ''
      properties:
        limits:
          type: object
          additionalProperties:
            type: integer
        attributes: {}
        start_date:
          type: string
          format: date
          nullable: true
          description: Enables delayed processing of resource provisioning order.
    PatchedOrganizationGroupRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        parent:
          type: string
          format: uri
          nullable: true
      description: ''
    PatchedPaymentProfileRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        organization:
          type: string
          format: uri
        attributes:
          $ref: '#/components/schemas/PaymentProfileAttributesRequest'
        payment_type:
          $ref: '#/components/schemas/PaymentTypeEnum'
        is_active:
          type: boolean
          nullable: true
          default: true
      description: ''
    PatchedPaymentRequest:
      type: object
      properties:
        profile:
          type: string
          format: uri
        date_of_payment:
          type: string
          format: date
        sum:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        proof:
          type: string
          format: binary
          nullable: true
      description: ''
    PatchedProjectCreditRequest:
      type: object
      properties:
        value:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        project:
          type: string
          format: uri
        end_date:
          type: string
          format: date
          nullable: true
        expected_consumption:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        minimal_consumption_logic:
          $ref: '#/components/schemas/MinimalConsumptionLogicEnum'
        grace_coefficient:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
        apply_as_minimal_consumption:
          type: boolean
        mark_unused_credit_as_spent_on_project_termination:
          type: boolean
      description: ''
    PatchedProjectDigestConfigRequest:
      type: object
      properties:
        is_enabled:
          type: boolean
        frequency:
          $ref: '#/components/schemas/FrequencyEnum'
        enabled_sections:
          type: array
          items:
            type: string
            minLength: 1
        day_of_week:
          type: integer
          maximum: 6
          minimum: 0
          description: 'For weekly/biweekly: 0=Sunday..6=Saturday'
        day_of_month:
          type: integer
          maximum: 28
          minimum: 1
          description: 'For monthly: day of month (1-28)'
      description: ''
    PatchedProjectEstimatedCostPolicyRequest:
      type: object
      description: ''
      properties:
        scope:
          type: string
          format: uri
        actions:
          type: string
          minLength: 1
          maxLength: 255
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        limit_cost:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
    PatchedProjectInfoRequest:
      type: object
      properties:
        project:
          type: string
          format: uri
        shortname:
          type: string
          nullable: true
          minLength: 3
          description: A short, unique name for the project. It will be used to form
            the local username of any users in the project on any systems. Should
            only contain lower-case letters and digits and must start with a letter.
          pattern: ^[a-z0-9\-_]+$
          maxLength: 30
        allowed_destinations:
          type: string
          nullable: true
          description: A comma-separated list of allowable destinations of instances
            that              can be attached to this project. For example, a project
            may only allow              'brics.aip1.*', meaning that only instances
            that start with 'brics.aip1.'              can be attached to this project.
          maxLength: 1024
      description: ''
    PatchedProjectRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 500
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        customer:
          type: string
          format: uri
          title: Organization
        description:
          type: string
          description: Project description (HTML content will be sanitized)
        type:
          type: string
          format: uri
          nullable: true
          title: Project type
        backend_id:
          type: string
          maxLength: 255
        start_date:
          type: string
          format: date
          nullable: true
          description: Project start date. Cannot be edited after the start date has
            arrived.
        end_date:
          type: string
          format: date
          nullable: true
          description: Project end date. Setting this field requires DELETE_PROJECT
            permission.
        oecd_fos_2007_code:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/OecdFos2007CodeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        is_industry:
          type: boolean
        image:
          type: string
          format: binary
          nullable: true
        kind:
          allOf:
          - $ref: '#/components/schemas/KindEnum'
          title: Project type
        staff_notes:
          type: string
          description: Internal notes visible only to staff and support users (HTML
            content will be sanitized)
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated. Overrides customer-level setting.
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
    PatchedProjectServiceAccountRequest:
      type: object
      properties:
        username:
          type: string
          maxLength: 32
        description:
          type: string
        error_traceback:
          type: string
        email:
          type: string
          format: email
          minLength: 1
          maxLength: 320
        preferred_identifier:
          type: string
          maxLength: 32
        project:
          type: string
          format: uuid
      description: ''
    PatchedProjectTemplateRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 128
        offering:
          type: string
          nullable: true
          description: The offering for which this template applies.
          maxLength: 256
        provider:
          type: string
          format: uri
        portal:
          type: string
          minLength: 1
          maxLength: 32
        key:
          type: string
          nullable: true
          description: The key that is used to authenticate requests for this class.
          maxLength: 256
        customer:
          type: string
          format: uri
        shortname:
          type: string
          nullable: true
          maxLength: 30
        offerings:
          type: array
          items:
            type: string
            format: uri
        approval_limit:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
          description: The credit limit beyond which requests need to be approved
            by a local admin. If this is None, then no local approval is required.
            If this is set to 0, then all requests (including creating the project)
            need to be approved.
        max_credit_limit:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
          title: Maximum credit limit
          description: The maximum credit limit for any projects created in this class.
            Any requests beyond this limit are automatically rejected. If this is
            None, then no maximum limit is set. If this is set to 0, then no projects
            can be created in this class.
        allocation_units_mapping:
          description: The mapping of credits to allocation units, i.e. how many allocation
            units to award per credit allocated.
        role_mapping:
          description: The mapping of role names from the remote portal to role information
            in this portal for users in projects created in this class.
    PatchedProposalProjectRoleMappingRequest:
      type: object
      properties:
        call:
          type: string
          format: uri
        proposal_role:
          type: string
          minLength: 1
        project_role:
          type: string
          minLength: 1
          nullable: true
      description: ''
    PatchedProposalReviewRequest:
      type: object
      description: ''
      properties:
        summary_score:
          type: integer
          maximum: 32767
          minimum: 0
        summary_public_comment:
          type: string
        summary_private_comment:
          type: string
        comment_project_title:
          type: string
          nullable: true
          maxLength: 255
        comment_project_summary:
          type: string
          nullable: true
          maxLength: 255
        comment_project_is_confidential:
          type: string
          nullable: true
          maxLength: 255
        comment_project_has_civilian_purpose:
          type: string
          nullable: true
          maxLength: 255
        comment_project_description:
          type: string
          nullable: true
          maxLength: 255
        comment_project_duration:
          type: string
          nullable: true
          maxLength: 255
        comment_project_supporting_documentation:
          type: string
          nullable: true
          maxLength: 255
        comment_resource_requests:
          type: string
          nullable: true
          maxLength: 255
        comment_team:
          type: string
          nullable: true
          maxLength: 255
      required: []
    PatchedProtectedCallRequest:
      type: object
      description: ''
      properties:
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
        fixed_duration_in_days:
          type: integer
          nullable: true
        backend_id:
          type: string
          maxLength: 255
        external_url:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        reviewer_identity_visible_to_submitters:
          type: boolean
          description: Whether proposal applicants can see reviewer identities
        reviews_visible_to_submitters:
          type: boolean
          description: Whether proposal applicants can see review comments and scores
        created_by:
          type: string
          format: uri
          nullable: true
        reference_code:
          type: string
          minLength: 1
        compliance_checklist:
          type: string
          format: uuid
          nullable: true
          description: Compliance checklist that proposals must complete before submission
        proposal_slug_template:
          type: string
          nullable: true
          description: 'Template for proposal slugs. Supports: {call_slug}, {round_slug},
            {org_slug}, {year}, {month}, {counter}, {counter_padded}. Default: {round_slug}-{counter_padded}'
        user_email_patterns:
          description: List of email regex patterns. User must match one.
        user_affiliations:
          description: List of allowed affiliations. User must have one.
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        user_nationalities:
          description: List of allowed nationality codes (ISO 3166-1 alpha-2). User
            must have one.
        user_organization_types:
          description: List of allowed organization type URNs (SCHAC). User must match
            one.
        user_assurance_levels:
          description: List of required assurance URIs (REFEDS). User must have ALL
            of these.
    PatchedProtectedRoundRequest:
      type: object
      description: ''
      properties:
        start_time:
          type: string
          format: date-time
        cutoff_time:
          type: string
          format: date-time
        review_strategy:
          $ref: '#/components/schemas/ReviewStrategyEnum'
        deciding_entity:
          $ref: '#/components/schemas/DecidingEntityEnum'
        allocation_time:
          $ref: '#/components/schemas/AllocationTimeEnum'
        allocation_date:
          type: string
          format: date-time
          nullable: true
        minimal_average_scoring:
          type: string
          format: decimal
          pattern: ^-?\d{0,4}(?:\.\d{0,1})?$
          nullable: true
        review_duration_in_days:
          type: integer
        minimum_number_of_reviewers:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
    PatchedProviderPlanDetailsRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
        article_code:
          type: string
          maxLength: 30
        max_amount:
          type: integer
          maximum: 32767
          minimum: 1
          nullable: true
          description: Maximum number of plans that could be active. Plan is disabled
            when maximum amount is reached.
        archived:
          type: boolean
          description: Forbids creation of new resources.
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        unit:
          $ref: '#/components/schemas/BillingUnit'
        backend_id:
          type: string
          maxLength: 255
    PatchedQuestionAdminRequest:
      type: object
      description: ''
      properties:
        required:
          type: boolean
        description:
          type: string
          maxLength: 4096
        user_guidance:
          type: string
          description: Additional guidance text visible to users when answering and
            reviewing
        question_type:
          allOf:
          - $ref: '#/components/schemas/QuestionTypeEnum'
          description: Type of question and expected answer format
        order:
          type: integer
          maximum: 2147483647
          minimum: 0
        min_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          nullable: true
          description: Minimum value allowed for NUMBER, YEAR, and RATING type questions
        max_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          nullable: true
          description: Maximum value allowed for NUMBER, YEAR, and RATING type questions
        allowed_file_types:
          description: List of allowed file extensions (e.g., ['.pdf', '.doc', '.docx']).
            If empty, all file types are allowed.
        allowed_mime_types:
          description: List of allowed MIME types (e.g., ['application/pdf', 'application/msword']).
            If empty, MIME type validation is not enforced. When both extensions and
            MIME types are specified, files must match both criteria for security.
        max_file_size_mb:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum file size in megabytes. If not set, no size limit is
            enforced.
        max_files_count:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum number of files allowed for MULTIPLE_FILES type questions.
            If not set, no count limit is enforced.
        operator:
          oneOf:
          - $ref: '#/components/schemas/ChecklistOperators'
          - $ref: '#/components/schemas/BlankEnum'
        review_answer_value:
          nullable: true
          description: Answer value that trigger review.
        always_requires_review:
          type: boolean
          description: This question always requires review regardless of answer
        guidance_answer_value:
          nullable: true
          description: Answer value that triggers display of user guidance.
        guidance_operator:
          description: Operator to use when comparing answer with guidance_answer_value
          oneOf:
          - $ref: '#/components/schemas/ChecklistOperators'
          - $ref: '#/components/schemas/BlankEnum'
        always_show_guidance:
          type: boolean
          description: Show user guidance always, regardless of answer. If False,
            guidance is conditional on answer matching guidance_answer_value with
            guidance_operator
        dependency_logic_operator:
          allOf:
          - $ref: '#/components/schemas/DependencyLogicOperatorEnum'
          description: 'Defines how multiple dependencies are evaluated. AND: All
            dependencies must be satisfied. OR: At least one dependency must be satisfied.'
        checklist:
          type: string
          format: uri
    PatchedQuestionDependencyRequest:
      type: object
      description: ''
      properties:
        question:
          type: string
          format: uri
        depends_on_question:
          type: string
          format: uri
        required_answer_value:
          description: The answer value(s) that make this question visible
        operator:
          $ref: '#/components/schemas/ChecklistOperators'
    PatchedQuestionOptionsAdminRequest:
      type: object
      description: ''
      properties:
        label:
          type: string
          minLength: 1
          maxLength: 255
        order:
          type: integer
          maximum: 2147483647
          minimum: 0
    PatchedRancherApplicationRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        error_message:
          type: string
        error_traceback:
          type: string
        backend_id:
          type: string
          maxLength: 255
        runtime_state:
          type: string
          maxLength: 150
        template:
          type: string
          format: uri
        rancher_project:
          type: string
          format: uri
        namespace:
          type: string
          format: uri
        namespace_name:
          type: string
          writeOnly: true
          minLength: 1
        version:
          type: string
          minLength: 1
        answers:
          type: object
          additionalProperties: {}
    PatchedRancherCatalogRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        catalog_url:
          type: string
          format: uri
          minLength: 1
          maxLength: 200
        branch:
          type: string
          minLength: 1
          maxLength: 255
        scope:
          type: string
      description: ''
    PatchedRancherClusterRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          pattern: ^[a-z0-9]([-a-z0-9])+[a-z0-9]$
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        vm_project:
          type: string
          format: uri
          nullable: true
        ssh_public_key:
          type: string
          format: uri
          writeOnly: true
        install_longhorn:
          type: boolean
          default: false
          description: Longhorn is a distributed block storage deployed on top of
            Kubernetes cluster
    PatchedRancherHPARequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        workload:
          type: string
          format: uri
          nullable: true
        min_replicas:
          type: integer
          maximum: 32767
          minimum: 0
        max_replicas:
          type: integer
          maximum: 32767
          minimum: 0
        metrics: {}
      description: ''
    PatchedRancherIngressRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        error_message:
          type: string
        error_traceback:
          type: string
        backend_id:
          type: string
          maxLength: 255
        runtime_state:
          type: string
          maxLength: 150
        rancher_project:
          type: string
          format: uri
        namespace:
          type: string
          format: uri
        rules: {}
    PatchedRancherServiceRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        error_message:
          type: string
        error_traceback:
          type: string
        backend_id:
          type: string
          maxLength: 255
        runtime_state:
          type: string
          maxLength: 150
        namespace:
          type: string
          format: uri
        cluster_ip:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          nullable: true
          minLength: 1
        selector:
          nullable: true
        target_workloads:
          type: array
          items:
            $ref: '#/components/schemas/RancherNestedWorkloadRequest'
    PatchedRancherWorkloadRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        runtime_state:
          type: string
          maxLength: 150
        cluster:
          type: string
          format: uri
          nullable: true
        project:
          type: string
          format: uri
          nullable: true
        namespace:
          type: string
          format: uri
          nullable: true
        scale:
          type: integer
          maximum: 32767
          minimum: 0
      description: ''
    PatchedRemoteAllocationRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        node_limit:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
        remote_project_identifier:
          type: string
          nullable: true
          description: The identifier of the project in the remote OpenPortal instance.
          maxLength: 64
    PatchedRemoteSynchronisationRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          maxLength: 200
        token:
          type: string
          minLength: 1
          maxLength: 255
        remote_organization_name:
          type: string
          minLength: 1
          maxLength: 255
        local_service_provider:
          type: string
          format: uri
        is_active:
          type: boolean
        remotelocalcategory_set:
          type: array
          items:
            $ref: '#/components/schemas/NestedRemoteLocalCategoryRequest'
    PatchedRequestTypeAdminRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        issue_type_name:
          type: string
          minLength: 1
          maxLength: 255
        is_active:
          type: boolean
          description: Whether this request type is available for issue creation.
        order:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Display order. First type (lowest order) is the default.
    PatchedRequestedOfferingRequest:
      type: object
      description: ''
      properties:
        attributes: {}
        plan:
          type: string
          format: uri
          nullable: true
        description:
          type: string
          maxLength: 4096
    PatchedRequestedResourceRequest:
      type: object
      description: ''
      properties:
        attributes: {}
        limits: {}
        description:
          type: string
          maxLength: 4096
        requested_offering_uuid:
          type: string
          format: uuid
          writeOnly: true
        call_resource_template_uuid:
          type: string
          format: uuid
          writeOnly: true
    PatchedResourceUpdateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        end_date:
          type: string
          format: date
          nullable: true
          description: The date is inclusive. Once reached, a resource will be scheduled
            for termination.
      description: ''
    PatchedReviewerAffiliationRequest:
      type: object
      description: ''
      properties:
        organization:
          type: string
          format: uuid
          nullable: true
        organization_name:
          type: string
          minLength: 1
          description: Organization name (used when not linked to Waldur org)
          maxLength: 255
        organization_identifier:
          type: string
          description: ROR, GRID, or other external identifier
          maxLength: 100
        department:
          type: string
          maxLength: 255
        position_title:
          type: string
          maxLength: 255
        start_date:
          type: string
          format: date
          nullable: true
        end_date:
          type: string
          format: date
          nullable: true
          description: Leave empty for current affiliation
        is_primary:
          type: boolean
        affiliation_type:
          $ref: '#/components/schemas/AffiliationTypeEnum'
    PatchedReviewerBidRequest:
      type: object
      description: ''
      properties:
        proposal:
          type: string
          format: uri
        bid:
          allOf:
          - $ref: '#/components/schemas/BidEnum'
          description: Reviewer's preference for reviewing this proposal
        comment:
          type: string
          description: Optional comment explaining the bid
    PatchedReviewerExpertiseRequest:
      type: object
      description: ''
      properties:
        expertise_keyword:
          type: string
          minLength: 1
          description: Free-text keyword
          maxLength: 100
        expertise_category:
          type: string
          format: uuid
          nullable: true
        proficiency_level:
          $ref: '#/components/schemas/ProficiencyLevelEnum'
        years_experience:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        last_active_date:
          type: string
          format: date
          nullable: true
          description: When last worked in this area
    PatchedReviewerProfileCreateRequest:
      type: object
      description: ''
      properties:
        orcid_id:
          type: string
          nullable: true
          description: 'ORCID identifier (format: 0000-0000-0000-0000)'
          maxLength: 19
        biography:
          type: string
          description: Professional biography / summary
        alternative_names:
          description: List of name variants used in publications
        available_for_reviews:
          type: boolean
          description: Whether reviewer is currently accepting review requests
    PatchedReviewerProfileRequest:
      type: object
      description: ''
      properties:
        orcid_id:
          type: string
          nullable: true
          description: 'ORCID identifier (format: 0000-0000-0000-0000)'
          maxLength: 19
        biography:
          type: string
          description: Professional biography / summary
        alternative_names:
          description: List of name variants used in publications
        available_for_reviews:
          type: boolean
          description: Whether reviewer is currently accepting review requests
    PatchedReviewerPublicationRequest:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 500
        doi:
          type: string
          nullable: true
          description: Digital Object Identifier
          maxLength: 100
        publication_year:
          type: integer
          maximum: 2147483647
          minimum: 0
        venue:
          type: string
          minLength: 1
          description: Journal or conference name
          maxLength: 255
        venue_type:
          $ref: '#/components/schemas/VenueTypeEnum'
        abstract:
          type: string
        coauthors:
          description: List of co-author names and identifiers
        external_ids:
          description: 'External identifiers: {"semantic_scholar": "...", "pubmed":
            "..."}'
        is_excluded_from_matching:
          type: boolean
          description: User can exclude old papers from expertise matching
    PatchedRobotAccountRequest:
      type: object
      properties:
        username:
          type: string
          maxLength: 32
        description:
          type: string
        resource:
          type: string
          format: uri
        type:
          type: string
          minLength: 1
          description: Type of the robot account.
          maxLength: 5
        users:
          type: array
          items:
            type: string
            format: uri
          description: Users who have access to this robot account.
        keys: {}
        responsible_user:
          type: string
          format: uri
          nullable: true
      required: []
      description: ''
    PatchedRoleDetailsRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        description_en:
          type: string
          nullable: true
          title: Description [en]
          maxLength: 4096
        description_et:
          type: string
          nullable: true
          title: Description [et]
          maxLength: 4096
        description_lt:
          type: string
          nullable: true
          title: Description [lt]
          maxLength: 4096
        description_lv:
          type: string
          nullable: true
          title: Description [lv]
          maxLength: 4096
        description_ru:
          type: string
          nullable: true
          title: Description [ru]
          maxLength: 4096
        description_it:
          type: string
          nullable: true
          title: Description [it]
          maxLength: 4096
        description_de:
          type: string
          nullable: true
          title: Description [de]
          maxLength: 4096
        description_da:
          type: string
          nullable: true
          title: Description [da]
          maxLength: 4096
        description_sv:
          type: string
          nullable: true
          title: Description [sv]
          maxLength: 4096
        description_es:
          type: string
          nullable: true
          title: Description [es]
          maxLength: 4096
        description_fr:
          type: string
          nullable: true
          title: Description [fr]
          maxLength: 4096
        description_nb:
          type: string
          nullable: true
          title: Description [nb]
          maxLength: 4096
        description_ar:
          type: string
          nullable: true
          title: Description [ar]
          maxLength: 4096
        description_cs:
          type: string
          nullable: true
          title: Description [cs]
          maxLength: 4096
        is_active:
          type: boolean
    PatchedRuleRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        user_affiliations:
          type: array
          items:
            type: string
            minLength: 1
        user_email_patterns:
          type: array
          items:
            type: string
            minLength: 1
        customer:
          type: string
          format: uri
          nullable: true
        use_user_organization_as_customer_name:
          type: boolean
        project_role:
          type: string
          format: uri
          nullable: true
        project_role_name:
          type: string
          writeOnly: true
          nullable: true
          minLength: 1
        plan:
          type: string
          format: uri
          nullable: true
        plan_attributes:
          type: object
          additionalProperties: {}
        plan_limits:
          type: object
          additionalProperties: {}
      description: ''
    PatchedScreenshotRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
    PatchedSectionRequest:
      type: object
      properties:
        key:
          type: string
          minLength: 1
          maxLength: 255
        title:
          type: string
          minLength: 1
          maxLength: 255
        category:
          type: string
          format: uri
        is_standalone:
          type: boolean
          description: Whether section is rendered as a separate tab.
      description: ''
    PatchedServiceProviderRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        enable_notifications:
          type: boolean
        image:
          type: string
          format: binary
          nullable: true
    PatchedSlurmAllocationRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
    PatchedSlurmPeriodicUsagePolicyRequest:
      type: object
      description: ''
      properties:
        scope:
          type: string
          format: uri
        actions:
          type: string
          minLength: 1
          maxLength: 255
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        organization_groups:
          type: array
          items:
            type: string
            format: uri
        apply_to_all:
          type: boolean
          description: If True, policy applies to all customers. Mutually exclusive
            with organization_groups.
        component_limits_set:
          type: array
          items:
            $ref: '#/components/schemas/NestedOfferingComponentLimitRequest'
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
        limit_type:
          allOf:
          - $ref: '#/components/schemas/LimitTypeEnum'
          description: SLURM limit type to apply
        tres_billing_enabled:
          type: boolean
          description: Use TRES billing units instead of raw TRES values
        tres_billing_weights:
          description: 'TRES billing weights (e.g., {"CPU": 0.015625, "Mem": 0.001953125,
            "GRES/gpu": 0.25})'
        carryover_factor:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Maximum percentage of base allocation that can carry over from
            unused previous period (0-100)
        grace_ratio:
          type: number
          format: double
          description: Grace period ratio (0.2 = 20% overconsumption allowed)
        carryover_enabled:
          type: boolean
          description: Enable unused allocation carryover to next period
        raw_usage_reset:
          type: boolean
          description: Reset raw usage at period transitions (PriorityUsageResetPeriod=None)
        qos_strategy:
          allOf:
          - $ref: '#/components/schemas/QosStrategyEnum'
          description: QoS management strategy
    PatchedSoftwareCatalogRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          description: Catalog name (e.g., EESSI, Spack)
          maxLength: 100
        version:
          type: string
          minLength: 1
          description: Catalog version (e.g., 2023.06, 0.21.0)
          maxLength: 50
        catalog_type:
          allOf:
          - $ref: '#/components/schemas/CatalogTypeEnum'
          default: binary_runtime
          description: Type of software catalog
        source_url:
          type: string
          format: uri
          description: Catalog source URL
          maxLength: 200
        description:
          type: string
        metadata:
          description: Catalog-specific metadata (architecture maps, API endpoints,
            etc.)
        auto_update_enabled:
          type: boolean
          description: Whether to automatically update this catalog via scheduled
            tasks
        update_errors:
          type: string
    PatchedSoftwarePackageRequest:
      type: object
      description: ''
      properties:
        catalog:
          type: string
          format: uri
        name:
          type: string
          minLength: 1
          maxLength: 200
        description:
          type: string
        homepage:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        categories:
          description: Package categories (e.g., ['bio', 'hpc', 'build-tools'])
        licenses:
          description: Software licenses (e.g., ['GPL-3.0', 'MIT'])
        maintainers:
          description: Package maintainers
        is_extension:
          type: boolean
          description: Whether this package is an extension of another package
        parent_software:
          type: string
          format: uri
          nullable: true
          description: Parent package for extensions (e.g., Python package within
            Python)
    PatchedTagRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 100
        description:
          type: string
    PatchedTemplateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          minLength: 1
        issue_type:
          $ref: '#/components/schemas/IssueTypeEnum'
      description: ''
    PatchedUserAgreementRequest:
      type: object
      properties:
        content:
          type: string
          minLength: 1
        agreement_type:
          $ref: '#/components/schemas/AgreementTypeEnum'
        language:
          type: string
          description: ISO 639-1 language code (e.g., 'en', 'de', 'et'). Leave empty
            for the default version.
          maxLength: 10
      description: ''
    PatchedUserInfoRequest:
      type: object
      properties:
        shortname:
          type: string
          nullable: true
          minLength: 4
          description: A short, unique name for you. It will be used to form your
            local username on any systems. Should only contain lower-case letters
            and digits and must start with a letter.
          pattern: ^[a-z][a-z0-9]+$
          maxLength: 32
        user:
          type: string
          format: uri
      description: ''
    PatchedUserOfferingConsentRequest:
      type: object
      description: ''
      properties:
        version:
          type: string
          maxLength: 50
    PatchedUserRequest:
      type: object
      description: ''
      properties:
        username:
          type: string
          minLength: 1
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          pattern: ^[0-9a-z_.@+-]+$
          maxLength: 128
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        native_name:
          type: string
          maxLength: 100
        job_title:
          type: string
          maxLength: 120
        phone_number:
          type: string
          maxLength: 255
        organization:
          type: string
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        is_support:
          type: boolean
          title: Support status
          description: Designates whether the user is a global support user.
        token_lifetime:
          type: integer
          maximum: 2147483647
          minimum: 60
          nullable: true
          description: Token lifetime in seconds.
        agree_with_policy:
          type: boolean
          writeOnly: true
          description: User must agree with the policy to register.
        notifications_enabled:
          type: boolean
          description: Designates whether the user is allowed to receive email notifications.
        preferred_language:
          type: string
          maxLength: 10
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
        birth_date:
          type: string
          format: date
          nullable: true
        image:
          type: string
          format: binary
          nullable: true
        gender:
          nullable: true
          description: ISO 5218 gender code
          minimum: 0
          maximum: 32767
          oneOf:
          - $ref: '#/components/schemas/GenderEnum'
          - $ref: '#/components/schemas/NullEnum'
        personal_title:
          type: string
          description: Honorific title (Mr, Ms, Dr, Prof, etc.)
          maxLength: 50
        place_of_birth:
          type: string
          maxLength: 255
        country_of_residence:
          type: string
          maxLength: 2
        nationality:
          type: string
          description: Primary citizenship (ISO 3166-1 alpha-2 code)
          maxLength: 2
        nationalities:
          description: List of all citizenships (ISO 3166-1 alpha-2 codes)
        organization_country:
          type: string
          maxLength: 2
        organization_type:
          type: string
          description: SCHAC URN (e.g., urn:schac:homeOrganizationType:int:university)
          maxLength: 255
        organization_registry_code:
          type: string
          description: Company registration code of the user's organization, if known
          maxLength: 255
        eduperson_assurance:
          description: REFEDS assurance profile URIs from identity provider
        is_identity_manager:
          type: boolean
          description: Designates whether the user is allowed to manage remote user
            identities.
        managed_isds:
          description: List of ISD source identifiers this user can manage via Identity
            Bridge. E.g., ['isd:puhuri', 'isd:fenix']. Non-empty list implies identity
            manager role.
    PatchedVmwareVirtualMachineRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        cores:
          type: integer
          maximum: 32767
          minimum: 1
          description: Number of cores in a VM
        cores_per_socket:
          type: integer
          maximum: 32767
          minimum: 1
          description: Number of cores per socket in a VM
        ram:
          type: integer
          maximum: 2147483647
          minimum: 1024
          description: Memory size in MiB
    PatchedWebHookRequest:
      type: object
      properties:
        is_active:
          type: boolean
        event_types:
          type: array
          items:
            $ref: '#/components/schemas/EventTypesEnum'
        event_groups:
          type: array
          items:
            $ref: '#/components/schemas/EventGroupsEnum'
        destination_url:
          type: string
          format: uri
          minLength: 1
          maxLength: 200
        content_type:
          $ref: '#/components/schemas/WebHookContentTypeEnum'
      description: ''
    Payment:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        profile:
          type: string
          format: uri
        date_of_payment:
          type: string
          format: date
        sum:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        proof:
          type: string
          format: uri
          nullable: true
        invoice:
          type: string
          format: uri
          readOnly: true
        invoice_uuid:
          type: string
          format: uuid
          readOnly: true
        invoice_period:
          type: string
          nullable: true
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
      required:
      - customer_uuid
      - date_of_payment
      - invoice
      - invoice_period
      - invoice_uuid
      - profile
      - url
      - uuid
      description: ''
    PaymentProfile:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          maxLength: 150
        organization_uuid:
          type: string
          format: uuid
          readOnly: true
        organization:
          type: string
          format: uri
        attributes:
          $ref: '#/components/schemas/PaymentProfileAttributes'
        payment_type:
          $ref: '#/components/schemas/PaymentTypeEnum'
        payment_type_display:
          type: string
          readOnly: true
        is_active:
          type: boolean
          nullable: true
          default: true
      required: []
      description: ''
    PaymentProfileAttributes:
      type: object
      properties:
        end_date:
          type: string
        agreement_number:
          type: string
        contract_sum:
          type: integer
      description: ''
    PaymentProfileAttributesRequest:
      type: object
      properties:
        end_date:
          type: string
          minLength: 1
        agreement_number:
          type: string
          minLength: 1
        contract_sum:
          type: integer
      description: ''
    PaymentProfileRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        organization:
          type: string
          format: uri
        attributes:
          $ref: '#/components/schemas/PaymentProfileAttributesRequest'
        payment_type:
          $ref: '#/components/schemas/PaymentTypeEnum'
        is_active:
          type: boolean
          nullable: true
          default: true
      required:
      - name
      - organization
      - payment_type
      description: ''
    PaymentRequest:
      type: object
      properties:
        profile:
          type: string
          format: uri
        date_of_payment:
          type: string
          format: date
        sum:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        proof:
          type: string
          format: binary
          nullable: true
      required:
      - date_of_payment
      - profile
      description: ''
    PaymentTypeEnum:
      enum:
      - fixed_price
      - invoices
      - payment_gw_monthly
      type: string
      description: ''
    PaymentURLRequest:
      type: object
      properties:
        payment_url:
          type: string
          format: uri
          description: URL for initiating payment via payment gateway.
          maxLength: 200
      description: ''
    PendingRecord:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        resource_uuid:
          type: string
          format: uuid
        resource_name:
          type: string
        license_reference:
          type: string
        billing_period:
          type: string
          format: date
        consumed_sell:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
        last_sync_at:
          type: string
          format: date-time
          nullable: true
      required:
      - billing_period
      - consumed_sell
      - last_sync_at
      - license_reference
      - resource_name
      - resource_uuid
      - uuid
    PeriodBreakdown:
      type: object
      description: ''
      properties:
        period:
          type: string
        count:
          type: integer
        consumed_sell:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
        finalized_count:
          type: integer
        reconciled_count:
          type: integer
      required:
      - consumed_sell
      - count
      - finalized_count
      - period
      - reconciled_count
    Permission:
      type: object
      properties:
        user_uuid:
          type: string
          format: uuid
          readOnly: true
        user_name:
          type: string
          readOnly: true
        user_slug:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        expiration_time:
          type: string
          format: date-time
          nullable: true
        created_by_full_name:
          type: string
          readOnly: true
        created_by_username:
          type: string
          readOnly: true
        role_name:
          type: string
          readOnly: true
        role_description:
          type: string
          readOnly: true
        role_uuid:
          type: string
          format: uuid
          readOnly: true
        scope_type:
          type: string
          nullable: true
          readOnly: true
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
        scope_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
      required: []
      description: ''
    PermissionMetadataResponse:
      type: object
      description: ''
      properties:
        roles:
          type: object
          additionalProperties:
            enum:
            - CUSTOMER.OWNER
            - CUSTOMER.SUPPORT
            - CUSTOMER.MANAGER
            - PROJECT.ADMIN
            - PROJECT.MANAGER
            - PROJECT.MEMBER
            - OFFERING.MANAGER
            - CALL.REVIEWER
            - CALL.MANAGER
            - PROPOSAL.MEMBER
            - PROPOSAL.MANAGER
            type: string
          description: Map of role keys to role enum values from RoleEnum
        permissions:
          type: object
          additionalProperties:
            enum:
            - SERVICE_PROVIDER.REGISTER
            - OFFERING.CREATE
            - OFFERING.DELETE
            - OFFERING.UPDATE_THUMBNAIL
            - OFFERING.UPDATE
            - OFFERING.UPDATE_ATTRIBUTES
            - OFFERING.UPDATE_LOCATION
            - OFFERING.UPDATE_DESCRIPTION
            - OFFERING.UPDATE_OPTIONS
            - OFFERING.UPDATE_INTEGRATION
            - OFFERING.ADD_ENDPOINT
            - OFFERING.DELETE_ENDPOINT
            - OFFERING.UPDATE_COMPONENTS
            - OFFERING.PAUSE
            - OFFERING.UNPAUSE
            - OFFERING.ARCHIVE
            - OFFERING.DRY_RUN_SCRIPT
            - OFFERING.MANAGE_CAMPAIGN
            - OFFERING.MANAGE_USER_GROUP
            - OFFERING.CREATE_PLAN
            - OFFERING.UPDATE_PLAN
            - OFFERING.ARCHIVE_PLAN
            - OFFERING.CREATE_SCREENSHOT
            - OFFERING.UPDATE_SCREENSHOT
            - OFFERING.DELETE_SCREENSHOT
            - OFFERING.CREATE_USER
            - OFFERING.UPDATE_USER
            - OFFERING.DELETE_USER
            - OFFERING.MANAGE_USER_ROLE
            - RESOURCE.CREATE_ROBOT_ACCOUNT
            - RESOURCE.UPDATE_ROBOT_ACCOUNT
            - RESOURCE.DELETE_ROBOT_ACCOUNT
            - ORDER.LIST
            - ORDER.APPROVE_PRIVATE
            - ORDER.APPROVE
            - ORDER.REJECT
            - ORDER.DESTROY
            - ORDER.CANCEL
            - RESOURCE.LIST
            - RESOURCE.UPDATE
            - RESOURCE.TERMINATE
            - RESOURCE.LIST_IMPORTABLE
            - RESOURCE.SET_END_DATE
            - RESOURCE.SET_USAGE
            - RESOURCE.SET_PLAN
            - RESOURCE.SET_LIMITS
            - RESOURCE.SET_BACKEND_ID
            - RESOURCE.SUBMIT_REPORT
            - RESOURCE.SET_BACKEND_METADATA
            - RESOURCE.SET_STATE
            - RESOURCE.UPDATE_OPTIONS
            - RESOURCE.ACCEPT_BOOKING_REQUEST
            - RESOURCE.REJECT_BOOKING_REQUEST
            - RESOURCE.MANAGE_USERS
            - RESOURCE.CONSUMPTION_LIMITATION
            - OFFERING.MANAGE_BACKEND_RESOURCES
            - SERVICE_PROVIDER.GET_API_SECRET_CODE
            - SERVICE_PROVIDER.GENERATE_API_SECRET_CODE
            - SERVICE_PROVIDER.LIST_CUSTOMERS
            - SERVICE_PROVIDER.LIST_CUSTOMER_PROJECTS
            - SERVICE_PROVIDER.LIST_PROJECTS
            - SERVICE_PROVIDER.LIST_PROJECT_PERMISSIONS
            - SERVICE_PROVIDER.LIST_KEYS
            - SERVICE_PROVIDER.LIST_USERS
            - SERVICE_PROVIDER.LIST_USER_CUSTOMERS
            - SERVICE_PROVIDER.LIST_SERVICE_ACCOUNTS
            - SERVICE_PROVIDER.LIST_COURSE_ACCOUNTS
            - SERVICE_PROVIDER.SET_OFFERINGS_USERNAME
            - SERVICE_PROVIDER.GET_STATISTICS
            - SERVICE_PROVIDER.GET_REVENUE
            - SERVICE_PROVIDER.GET_ROBOT_ACCOUNT_CUSTOMERS
            - SERVICE_PROVIDER.GET_ROBOT_ACCOUNT_PROJECTS
            - PROJECT.CREATE_PERMISSION
            - CUSTOMER.CREATE_PERMISSION
            - OFFERING.CREATE_PERMISSION
            - CALL.CREATE_PERMISSION
            - PROPOSAL.MANAGE
            - PROPOSAL.MANAGE_REVIEW
            - PROJECT.UPDATE_PERMISSION
            - CUSTOMER.UPDATE_PERMISSION
            - OFFERING.UPDATE_PERMISSION
            - CALL.UPDATE_PERMISSION
            - PROPOSAL.UPDATE_PERMISSION
            - PROJECT.DELETE_PERMISSION
            - CUSTOMER.DELETE_PERMISSION
            - OFFERING.DELETE_PERMISSION
            - CALL.DELETE_PERMISSION
            - PROPOSAL.DELETE_PERMISSION
            - LEXIS_LINK.CREATE
            - LEXIS_LINK.DELETE
            - PROJECT.LIST
            - PROJECT.CREATE
            - PROJECT.DELETE
            - PROJECT.UPDATE
            - PROJECT.UPDATE_METADATA
            - PROJECT.REVIEW_MEMBERSHIP
            - CUSTOMER.UPDATE
            - CUSTOMER.CONTACT_UPDATE
            - CUSTOMER.LIST_USERS
            - OFFERING.ACCEPT_CALL_REQUEST
            - CALL.APPROVE_AND_REJECT_PROPOSALS
            - CALL.CLOSE_ROUNDS
            - ACCESS_SUBNET.CREATE
            - ACCESS_SUBNET.UPDATE
            - ACCESS_SUBNET.DELETE
            - OFFERINGUSER.UPDATE_RESTRICTION
            - INVITATION.LIST
            - CUSTOMER.LIST_PERMISSION_REVIEWS
            - CALL.LIST
            - CALL.CREATE
            - CALL.UPDATE
            - ROUND.LIST
            - PROPOSAL.LIST
            - SERVICE_ACCOUNT.MANAGE
            - PROJECT.COURSE_ACCOUNT_MANAGE
            - SERVICE_PROVIDER.OPENSTACK_IMAGE_MANAGEMENT
            - OPENSTACK_INSTANCE.CONSOLE_ACCESS
            - OPENSTACK_INSTANCE.MANAGE_POWER
            - OPENSTACK_INSTANCE.MANAGE
            type: string
          description: Map of permission keys to permission enum values from PermissionEnum
        permission_map:
          type: object
          additionalProperties:
            enum:
            - SERVICE_PROVIDER.REGISTER
            - OFFERING.CREATE
            - OFFERING.DELETE
            - OFFERING.UPDATE_THUMBNAIL
            - OFFERING.UPDATE
            - OFFERING.UPDATE_ATTRIBUTES
            - OFFERING.UPDATE_LOCATION
            - OFFERING.UPDATE_DESCRIPTION
            - OFFERING.UPDATE_OPTIONS
            - OFFERING.UPDATE_INTEGRATION
            - OFFERING.ADD_ENDPOINT
            - OFFERING.DELETE_ENDPOINT
            - OFFERING.UPDATE_COMPONENTS
            - OFFERING.PAUSE
            - OFFERING.UNPAUSE
            - OFFERING.ARCHIVE
            - OFFERING.DRY_RUN_SCRIPT
            - OFFERING.MANAGE_CAMPAIGN
            - OFFERING.MANAGE_USER_GROUP
            - OFFERING.CREATE_PLAN
            - OFFERING.UPDATE_PLAN
            - OFFERING.ARCHIVE_PLAN
            - OFFERING.CREATE_SCREENSHOT
            - OFFERING.UPDATE_SCREENSHOT
            - OFFERING.DELETE_SCREENSHOT
            - OFFERING.CREATE_USER
            - OFFERING.UPDATE_USER
            - OFFERING.DELETE_USER
            - OFFERING.MANAGE_USER_ROLE
            - RESOURCE.CREATE_ROBOT_ACCOUNT
            - RESOURCE.UPDATE_ROBOT_ACCOUNT
            - RESOURCE.DELETE_ROBOT_ACCOUNT
            - ORDER.LIST
            - ORDER.APPROVE_PRIVATE
            - ORDER.APPROVE
            - ORDER.REJECT
            - ORDER.DESTROY
            - ORDER.CANCEL
            - RESOURCE.LIST
            - RESOURCE.UPDATE
            - RESOURCE.TERMINATE
            - RESOURCE.LIST_IMPORTABLE
            - RESOURCE.SET_END_DATE
            - RESOURCE.SET_USAGE
            - RESOURCE.SET_PLAN
            - RESOURCE.SET_LIMITS
            - RESOURCE.SET_BACKEND_ID
            - RESOURCE.SUBMIT_REPORT
            - RESOURCE.SET_BACKEND_METADATA
            - RESOURCE.SET_STATE
            - RESOURCE.UPDATE_OPTIONS
            - RESOURCE.ACCEPT_BOOKING_REQUEST
            - RESOURCE.REJECT_BOOKING_REQUEST
            - RESOURCE.MANAGE_USERS
            - RESOURCE.CONSUMPTION_LIMITATION
            - OFFERING.MANAGE_BACKEND_RESOURCES
            - SERVICE_PROVIDER.GET_API_SECRET_CODE
            - SERVICE_PROVIDER.GENERATE_API_SECRET_CODE
            - SERVICE_PROVIDER.LIST_CUSTOMERS
            - SERVICE_PROVIDER.LIST_CUSTOMER_PROJECTS
            - SERVICE_PROVIDER.LIST_PROJECTS
            - SERVICE_PROVIDER.LIST_PROJECT_PERMISSIONS
            - SERVICE_PROVIDER.LIST_KEYS
            - SERVICE_PROVIDER.LIST_USERS
            - SERVICE_PROVIDER.LIST_USER_CUSTOMERS
            - SERVICE_PROVIDER.LIST_SERVICE_ACCOUNTS
            - SERVICE_PROVIDER.LIST_COURSE_ACCOUNTS
            - SERVICE_PROVIDER.SET_OFFERINGS_USERNAME
            - SERVICE_PROVIDER.GET_STATISTICS
            - SERVICE_PROVIDER.GET_REVENUE
            - SERVICE_PROVIDER.GET_ROBOT_ACCOUNT_CUSTOMERS
            - SERVICE_PROVIDER.GET_ROBOT_ACCOUNT_PROJECTS
            - PROJECT.CREATE_PERMISSION
            - CUSTOMER.CREATE_PERMISSION
            - OFFERING.CREATE_PERMISSION
            - CALL.CREATE_PERMISSION
            - PROPOSAL.MANAGE
            - PROPOSAL.MANAGE_REVIEW
            - PROJECT.UPDATE_PERMISSION
            - CUSTOMER.UPDATE_PERMISSION
            - OFFERING.UPDATE_PERMISSION
            - CALL.UPDATE_PERMISSION
            - PROPOSAL.UPDATE_PERMISSION
            - PROJECT.DELETE_PERMISSION
            - CUSTOMER.DELETE_PERMISSION
            - OFFERING.DELETE_PERMISSION
            - CALL.DELETE_PERMISSION
            - PROPOSAL.DELETE_PERMISSION
            - LEXIS_LINK.CREATE
            - LEXIS_LINK.DELETE
            - PROJECT.LIST
            - PROJECT.CREATE
            - PROJECT.DELETE
            - PROJECT.UPDATE
            - PROJECT.UPDATE_METADATA
            - PROJECT.REVIEW_MEMBERSHIP
            - CUSTOMER.UPDATE
            - CUSTOMER.CONTACT_UPDATE
            - CUSTOMER.LIST_USERS
            - OFFERING.ACCEPT_CALL_REQUEST
            - CALL.APPROVE_AND_REJECT_PROPOSALS
            - CALL.CLOSE_ROUNDS
            - ACCESS_SUBNET.CREATE
            - ACCESS_SUBNET.UPDATE
            - ACCESS_SUBNET.DELETE
            - OFFERINGUSER.UPDATE_RESTRICTION
            - INVITATION.LIST
            - CUSTOMER.LIST_PERMISSION_REVIEWS
            - CALL.LIST
            - CALL.CREATE
            - CALL.UPDATE
            - ROUND.LIST
            - PROPOSAL.LIST
            - SERVICE_ACCOUNT.MANAGE
            - PROJECT.COURSE_ACCOUNT_MANAGE
            - SERVICE_PROVIDER.OPENSTACK_IMAGE_MANAGEMENT
            - OPENSTACK_INSTANCE.CONSOLE_ACCESS
            - OPENSTACK_INSTANCE.MANAGE_POWER
            - OPENSTACK_INSTANCE.MANAGE
            type: string
          description: Map of resource types to create permission enums
        permission_descriptions:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Grouped permission descriptions for UI
      required:
      - permission_descriptions
      - permission_map
      - permissions
      - roles
    PermissionRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        invitation:
          type: string
          format: uri
        state:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        created_by_full_name:
          type: string
          readOnly: true
        created_by_username:
          type: string
          readOnly: true
        created_by_email:
          type: string
          format: email
          readOnly: true
        reviewed_by_full_name:
          type: string
          readOnly: true
        reviewed_by_username:
          type: string
          readOnly: true
        reviewed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp when the review was completed
        review_comment:
          type: string
          nullable: true
          description: Optional comment provided during review
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
        scope_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        role_name:
          type: string
          readOnly: true
        role_description:
          type: string
          readOnly: true
        project_name_template:
          type: string
          readOnly: true
      required:
      - created
      - created_by_email
      - created_by_full_name
      - created_by_username
      - customer_name
      - customer_uuid
      - invitation
      - project_name_template
      - reviewed_at
      - reviewed_by_full_name
      - reviewed_by_username
      - role_description
      - role_name
      - scope_name
      - scope_uuid
      - state
      - url
      - uuid
      description: ''
    PersonIdentifierFieldsResponse:
      type: object
      description: ''
      properties:
        validation_method:
          type: string
          description: The validation method identifier
        person_identifier_fields:
          type: object
          additionalProperties: {}
          description: 'Field specification for person identification. For simple
            identifiers: {type: ''string'', field: ''civil_number'', ...}. For composite
            identifiers: {type: ''object'', fields: {...}}'
      required:
      - person_identifier_fields
      - validation_method
    PlanComponent:
      type: object
      properties:
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        plan_uuid:
          type: string
          format: uuid
          readOnly: true
        plan_name:
          type: string
          readOnly: true
        plan_unit:
          allOf:
          - $ref: '#/components/schemas/BillingUnit'
          readOnly: true
        component_name:
          type: string
          description: Display name for the measured unit, for example, Floating IP.
          readOnly: true
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          readOnly: true
        billing_type:
          allOf:
          - $ref: '#/components/schemas/BillingTypeEnum'
          readOnly: true
        amount:
          type: integer
          maximum: 2147483647
          minimum: 0
        price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          title: Price per unit per billing period.
        future_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
          nullable: true
          title: Price per unit for future month.
        discount_threshold:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Minimum amount to be eligible for discount.
        discount_rate:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Discount rate in percentage.
      required:
      - billing_type
      - component_name
      - measured_unit
      - offering_name
      - offering_uuid
      - plan_name
      - plan_unit
      - plan_uuid
      description: ''
    PlanUsageResponse:
      type: object
      properties:
        plan_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the plan
        plan_name:
          type: string
          readOnly: true
          description: Name of the plan
        limit:
          type: integer
          readOnly: true
          description: Usage limit
        usage:
          type: integer
          readOnly: true
          description: Current usage count
        remaining:
          type: integer
          readOnly: true
          description: Remaining usage
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        customer_provider_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_provider_name:
          type: string
          readOnly: true
      required:
      - customer_provider_name
      - customer_provider_uuid
      - limit
      - offering_name
      - offering_uuid
      - plan_name
      - plan_uuid
      - remaining
      - usage
      description: ''
    PluginComponent:
      type: object
      properties:
        type:
          type: string
          description: Type identifier of the component
        name:
          type: string
          description: Display name of the component
        measured_unit:
          type: string
          description: Unit of measurement for the component
        billing_type:
          allOf:
          - $ref: '#/components/schemas/BillingTypeEnum'
          description: Billing type for the component
      required:
      - billing_type
      - measured_unit
      - name
      - type
      description: ''
    PluginOfferingType:
      type: object
      properties:
        offering_type:
          type: string
        components:
          type: array
          items:
            $ref: '#/components/schemas/PluginComponent'
        available_limits:
          type: array
          items:
            type: string
      required:
      - available_limits
      - components
      - offering_type
      description: ''
    PolicyEnum:
      enum:
      - affinity
      type: string
      description: ''
    PolicyPeriodEnum:
      enum:
      - 1
      - 2
      - 3
      - 4
      type: integer
      description: ''
    PolicyTypeEnum:
      enum:
      - access_as_shared
      - access_as_external
      type: string
      description: ''
    PreviewServiceAttributesRequestRequest:
      type: object
      description: ''
      properties:
        auth_url:
          type: string
          format: uri
          minLength: 1
          description: Keystone auth URL (e.g., https://cloud.example.com:5000/v3)
        username:
          type: string
          minLength: 1
        password:
          type: string
          writeOnly: true
          minLength: 1
        user_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone user domain name
        project_domain_name:
          type: string
          minLength: 1
          default: Default
          description: Keystone project domain name
        project_name:
          type: string
          minLength: 1
          default: admin
          description: Keystone project (tenant) name
        verify_ssl:
          type: boolean
          default: false
        certificate:
          type: string
          writeOnly: true
          description: PEM-encoded CA certificate for SSL verification
        external_network_id:
          type: string
          minLength: 1
          default: ''
          description: Selected external network ID
        instance_availability_zone:
          type: string
          minLength: 1
          default: ''
          description: Selected instance availability zone name
        volume_availability_zone:
          type: string
          minLength: 1
          default: ''
          description: Selected volume availability zone name
      required:
      - auth_url
      - password
      - username
    PreviewSettingsRequestRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          description: Arrow API base URL
        api_key:
          type: string
          minLength: 1
          description: Arrow API Key
        export_type_reference:
          type: string
        classification_filter:
          type: string
          minLength: 1
          default: IAAS
        sync_enabled:
          type: boolean
          default: false
      required:
      - api_key
      - api_url
    PreviewSettingsResponse:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
        partner_name:
          type: string
        partner_reference:
          type: string
        export_type_reference:
          type: string
        classification_filter:
          type: string
        sync_enabled:
          type: boolean
      required:
      - api_url
      - classification_filter
      - export_type_reference
      - partner_name
      - partner_reference
      - sync_enabled
    PricesUpdateRequest:
      type: object
      properties:
        prices:
          type: object
          additionalProperties:
            type: string
            format: decimal
            pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
      required:
      - prices
      description: ''
    Priority:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        icon_url:
          type: string
          format: uri
          maxLength: 500
      required:
      - name
      - url
      - uuid
    ProficiencyLevelEnum:
      enum:
      - expert
      - familiar
      - basic
      type: string
      description: ''
    ProfileCompleteness:
      type: object
      description: ''
      properties:
        is_complete:
          type: boolean
          description: Whether all mandatory profile fields are filled.
        missing_fields:
          type: array
          items:
            type: string
          description: List of mandatory fields that are missing.
        mandatory_fields:
          type: array
          items:
            type: string
          description: List of all mandatory fields.
        enforcement_enabled:
          type: boolean
          description: Whether enforcement of mandatory attributes is enabled.
      required:
      - enforcement_enabled
      - is_complete
      - mandatory_fields
      - missing_fields
    Project:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 500
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        customer:
          type: string
          format: uri
          title: Organization
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_slug:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        description:
          type: string
          description: Project description (HTML content will be sanitized)
        customer_display_billing_info_in_projects:
          type: boolean
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        type:
          type: string
          format: uri
          nullable: true
          title: Project type
        type_name:
          type: string
          readOnly: true
          nullable: true
        type_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        backend_id:
          type: string
          maxLength: 255
        start_date:
          type: string
          format: date
          nullable: true
          description: Project start date. Cannot be edited after the start date has
            arrived.
        end_date:
          type: string
          format: date
          nullable: true
          description: Project end date. Setting this field requires DELETE_PROJECT
            permission.
        end_date_requested_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        oecd_fos_2007_code:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/OecdFos2007CodeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        oecd_fos_2007_label:
          type: string
          readOnly: true
          description: Human-readable label for the OECD FOS 2007 classification code
        is_industry:
          type: boolean
        image:
          type: string
          format: uri
          nullable: true
        resources_count:
          type: integer
          readOnly: true
          description: Number of active resources in this project
        max_service_accounts:
          type: integer
          maximum: 32767
          minimum: 0
          readOnly: true
          nullable: true
          description: Maximum number of service accounts allowed
        kind:
          allOf:
          - $ref: '#/components/schemas/KindEnum'
          title: Project type
        is_removed:
          type: boolean
          readOnly: true
        termination_metadata:
          readOnly: true
          nullable: true
          description: Metadata about project termination (read-only)
        staff_notes:
          type: string
          description: Internal notes visible only to staff and support users (HTML
            content will be sanitized)
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated. Overrides customer-level setting.
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        project_credit:
          type: number
          format: double
          nullable: true
          readOnly: true
        marketplace_resource_count:
          type: object
          additionalProperties:
            type: integer
          readOnly: true
        billing_price_estimate:
          allOf:
          - $ref: '#/components/schemas/NestedPriceEstimate'
          readOnly: true
      required: []
    ProjectAnswer:
      type: object
      description: ''
      properties:
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        completion_uuid:
          type: string
          nullable: true
          description: Get completion UUID.
          readOnly: true
        completion_percentage:
          type: number
          format: double
          description: Get completion percentage.
          readOnly: true
        is_completed:
          type: boolean
          description: Get completion status.
          readOnly: true
        requires_review:
          type: boolean
          description: Get review requirement status.
          readOnly: true
        answers_count:
          type: integer
          description: Get count of answers.
          readOnly: true
        unanswered_required_count:
          type: integer
          description: Get count of unanswered required questions.
          readOnly: true
      required:
      - answers_count
      - completion_percentage
      - completion_uuid
      - is_completed
      - project_name
      - project_uuid
      - requires_review
      - unanswered_required_count
    ProjectAttachRequest:
      type: object
      properties:
        project_uuid:
          type: string
          format: uuid
          description: UUID of the project to attach to this managed project
      required:
      - project_uuid
      description: ''
    ProjectClassificationSummary:
      type: object
      description: ''
      properties:
        total_projects:
          type: integer
          description: Total number of projects
        academic_projects:
          type: integer
          description: Number of academic projects (industry_flag=False)
        industry_projects:
          type: integer
          description: Number of industry projects (industry_flag=True)
      required:
      - academic_projects
      - industry_projects
      - total_projects
    ProjectCredit:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        value:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_slug:
          type: string
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_slug:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_credit:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
          readOnly: true
        allocated_customer_credit:
          type: number
          format: double
          readOnly: true
        consumption_last_month:
          type: number
          format: double
          readOnly: true
        offerings:
          type: array
          items:
            $ref: '#/components/schemas/NestedPublicOffering'
          readOnly: true
        end_date:
          type: string
          format: date
          nullable: true
        expected_consumption:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        minimal_consumption:
          type: number
          format: double
          readOnly: true
        minimal_consumption_logic:
          $ref: '#/components/schemas/MinimalConsumptionLogicEnum'
        grace_coefficient:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
        apply_as_minimal_consumption:
          type: boolean
        mark_unused_credit_as_spent_on_project_termination:
          type: boolean
      required:
      - allocated_customer_credit
      - consumption_last_month
      - customer_credit
      - customer_name
      - customer_slug
      - customer_uuid
      - minimal_consumption
      - offerings
      - project
      - project_name
      - project_slug
      - project_uuid
      - url
      - uuid
      description: ''
    ProjectCreditRequest:
      type: object
      properties:
        value:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        project:
          type: string
          format: uri
        end_date:
          type: string
          format: date
          nullable: true
        expected_consumption:
          type: string
          format: decimal
          pattern: ^-?\d{0,11}(?:\.\d{0,5})?$
        minimal_consumption_logic:
          $ref: '#/components/schemas/MinimalConsumptionLogicEnum'
        grace_coefficient:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
        apply_as_minimal_consumption:
          type: boolean
        mark_unused_credit_as_spent_on_project_termination:
          type: boolean
      required:
      - project
      description: ''
    ProjectDetail:
      type: object
      description: ''
      properties:
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        completion_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        completion_percentage:
          type: number
          format: double
          readOnly: true
        is_completed:
          type: boolean
          readOnly: true
        requires_review:
          type: boolean
          readOnly: true
        answers:
          type: array
          items: {}
          readOnly: true
        unanswered_required_questions:
          type: array
          items: {}
          readOnly: true
      required:
      - answers
      - completion_percentage
      - completion_uuid
      - is_completed
      - project_name
      - project_uuid
      - requires_review
      - unanswered_required_questions
    ProjectDetailsResponse:
      type: object
      description: ''
      properties:
        checklist:
          allOf:
          - $ref: '#/components/schemas/ChecklistInfo'
          readOnly: true
        total_projects:
          type: integer
          readOnly: true
        projects_with_completions:
          type: integer
          readOnly: true
        fully_completed_projects:
          type: integer
          readOnly: true
        projects_requiring_review:
          type: integer
          readOnly: true
        project_details:
          type: array
          items:
            $ref: '#/components/schemas/ProjectDetail'
          readOnly: true
      required:
      - checklist
      - fully_completed_projects
      - project_details
      - projects_requiring_review
      - projects_with_completions
      - total_projects
    ProjectDigestConfig:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        is_enabled:
          type: boolean
        frequency:
          $ref: '#/components/schemas/FrequencyEnum'
        enabled_sections:
          type: array
          items:
            type: string
        day_of_week:
          type: integer
          maximum: 6
          minimum: 0
          description: 'For weekly/biweekly: 0=Sunday..6=Saturday'
        day_of_month:
          type: integer
          maximum: 28
          minimum: 1
          description: 'For monthly: day of month (1-28)'
        last_sent_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        available_sections:
          type: array
          items:
            type: object
            additionalProperties:
              type: string
          readOnly: true
      required:
      - available_sections
      - last_sent_at
      - uuid
      description: ''
    ProjectDigestConfigRequest:
      type: object
      properties:
        is_enabled:
          type: boolean
        frequency:
          $ref: '#/components/schemas/FrequencyEnum'
        enabled_sections:
          type: array
          items:
            type: string
            minLength: 1
        day_of_week:
          type: integer
          maximum: 6
          minimum: 0
          description: 'For weekly/biweekly: 0=Sunday..6=Saturday'
        day_of_month:
          type: integer
          maximum: 28
          minimum: 1
          description: 'For monthly: day of month (1-28)'
      description: ''
    ProjectDigestPreviewRequest:
      type: object
      properties:
        project_uuid:
          type: string
          format: uuid
      required:
      - project_uuid
      description: ''
    ProjectDigestPreviewResponse:
      type: object
      properties:
        subject:
          type: string
        html_body:
          type: string
        text_body:
          type: string
      required:
      - html_body
      - subject
      - text_body
      description: ''
    ProjectEstimatedCostPolicy:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        scope:
          type: string
          format: uri
        scope_name:
          type: string
          readOnly: true
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
        actions:
          type: string
          maxLength: 255
        created:
          type: string
          format: date-time
          readOnly: true
        created_by_full_name:
          type: string
          readOnly: true
        created_by_username:
          type: string
          readOnly: true
        has_fired:
          type: boolean
          readOnly: true
        fired_datetime:
          type: string
          format: date-time
          readOnly: true
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        limit_cost:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
        period_name:
          type: string
          readOnly: true
        project_credit:
          type: number
          format: double
          nullable: true
          readOnly: true
        customer_credit:
          type: number
          format: double
          nullable: true
          readOnly: true
        billing_price_estimate:
          allOf:
          - $ref: '#/components/schemas/NestedPriceEstimate'
          readOnly: true
      required:
      - actions
      - billing_price_estimate
      - created
      - created_by_full_name
      - created_by_username
      - customer_credit
      - fired_datetime
      - has_fired
      - limit_cost
      - period_name
      - project_credit
      - scope
      - scope_name
      - scope_uuid
      - url
      - uuid
    ProjectEstimatedCostPolicyRequest:
      type: object
      description: ''
      properties:
        scope:
          type: string
          format: uri
        actions:
          type: string
          minLength: 1
          maxLength: 255
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        limit_cost:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
      required:
      - actions
      - limit_cost
      - scope
    ProjectHyperlinkRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
      required:
      - url
      description: ''
    ProjectInfo:
      type: object
      properties:
        project:
          type: string
          format: uri
        shortname:
          type: string
          nullable: true
          description: A short, unique name for the project. It will be used to form
            the local username of any users in the project on any systems. Should
            only contain lower-case letters and digits and must start with a letter.
          pattern: ^[a-z0-9\-_]+$
          maxLength: 30
          minLength: 3
        allowed_destinations:
          type: string
          nullable: true
          description: A comma-separated list of allowable destinations of instances
            that              can be attached to this project. For example, a project
            may only allow              'brics.aip1.*', meaning that only instances
            that start with 'brics.aip1.'              can be attached to this project.
          maxLength: 1024
      required:
      - project
      description: ''
    ProjectInfoRequest:
      type: object
      properties:
        project:
          type: string
          format: uri
        shortname:
          type: string
          nullable: true
          minLength: 3
          description: A short, unique name for the project. It will be used to form
            the local username of any users in the project on any systems. Should
            only contain lower-case letters and digits and must start with a letter.
          pattern: ^[a-z0-9\-_]+$
          maxLength: 30
        allowed_destinations:
          type: string
          nullable: true
          description: A comma-separated list of allowable destinations of instances
            that              can be attached to this project. For example, a project
            may only allow              'brics.aip1.*', meaning that only instances
            that start with 'brics.aip1.'              can be attached to this project.
          maxLength: 1024
      required:
      - project
      description: ''
    ProjectPermissionLog:
      type: object
      description: ''
      properties:
        created:
          type: string
          format: date-time
          readOnly: true
        expiration_time:
          type: string
          format: date-time
          nullable: true
        created_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        created_by_full_name:
          type: string
          readOnly: true
          nullable: true
        created_by_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
          nullable: true
        project:
          type: string
          format: uri
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_created:
          type: string
          format: date-time
          readOnly: true
        project_end_date:
          type: string
          format: date-time
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        role:
          type: string
          readOnly: true
        role_name:
          type: string
          readOnly: true
        user:
          type: string
          format: uri
        user_full_name:
          type: string
          readOnly: true
        user_native_name:
          type: string
          readOnly: true
        user_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        user_uuid:
          type: string
          format: uuid
          readOnly: true
        user_email:
          type: string
          format: email
          title: Email address
          readOnly: true
      required: []
    ProjectPermissionReview:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        reviewer_full_name:
          type: string
          readOnly: true
          nullable: true
        reviewer_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        is_pending:
          type: boolean
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        closed:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
      required:
      - closed
      - created
      - is_pending
      - project_name
      - project_uuid
      - reviewer_full_name
      - reviewer_uuid
      - url
      - uuid
    ProjectQuotas:
      type: object
      properties:
        project_name:
          type: string
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        value:
          type: integer
          readOnly: true
      required:
      - customer_abbreviation
      - customer_name
      - project_name
      - value
      description: ''
    ProjectRecoveryRequest:
      type: object
      properties:
        restore_team_members:
          type: boolean
          default: false
          description: Whether to automatically restore team members who had access
            before project deletion (staff only)
        send_invitations_to_previous_members:
          type: boolean
          default: false
          description: Whether to send invitations to users who had access before
            project deletion
        end_date:
          type: string
          format: date
          nullable: true
          description: End date for the recovered project
      description: ''
    ProjectRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 500
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        customer:
          type: string
          format: uri
          title: Organization
        description:
          type: string
          description: Project description (HTML content will be sanitized)
        type:
          type: string
          format: uri
          nullable: true
          title: Project type
        backend_id:
          type: string
          maxLength: 255
        start_date:
          type: string
          format: date
          nullable: true
          description: Project start date. Cannot be edited after the start date has
            arrived.
        end_date:
          type: string
          format: date
          nullable: true
          description: Project end date. Setting this field requires DELETE_PROJECT
            permission.
        oecd_fos_2007_code:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/OecdFos2007CodeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        is_industry:
          type: boolean
        image:
          type: string
          format: binary
          nullable: true
        kind:
          allOf:
          - $ref: '#/components/schemas/KindEnum'
          title: Project type
        staff_notes:
          type: string
          description: Internal notes visible only to staff and support users (HTML
            content will be sanitized)
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated. Overrides customer-level setting.
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
      required:
      - customer
      - name
    ProjectServiceAccount:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        username:
          type: string
          maxLength: 32
        description:
          type: string
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
        state:
          allOf:
          - $ref: '#/components/schemas/ServiceAccountState'
          readOnly: true
        token:
          type: string
          nullable: true
          readOnly: true
        email:
          type: string
          format: email
          maxLength: 320
        expires_at:
          type: string
          nullable: true
          readOnly: true
        preferred_identifier:
          type: string
          maxLength: 32
        project:
          type: string
          format: uuid
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
      required:
      - created
      - customer_abbreviation
      - customer_name
      - customer_uuid
      - error_message
      - expires_at
      - modified
      - project
      - project_name
      - project_uuid
      - state
      - token
      - url
      - uuid
      description: ''
    ProjectServiceAccountRequest:
      type: object
      properties:
        username:
          type: string
          maxLength: 32
        description:
          type: string
        error_traceback:
          type: string
        email:
          type: string
          format: email
          minLength: 1
          maxLength: 320
        preferred_identifier:
          type: string
          maxLength: 32
        project:
          type: string
          format: uuid
      required:
      - project
      description: ''
    ProjectTemplate:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 128
        offering:
          type: string
          nullable: true
          description: The offering for which this template applies.
          maxLength: 256
        provider:
          type: string
          format: uri
        provider_data:
          allOf:
          - $ref: '#/components/schemas/Customer'
          readOnly: true
        portal:
          type: string
          maxLength: 32
        key:
          type: string
          nullable: true
          description: The key that is used to authenticate requests for this class.
          maxLength: 256
        customer:
          type: string
          format: uri
        customer_data:
          allOf:
          - $ref: '#/components/schemas/Customer'
          readOnly: true
        shortname:
          type: string
          nullable: true
          maxLength: 30
        offerings:
          type: array
          items:
            type: string
            format: uri
        offerings_data:
          type: array
          items:
            $ref: '#/components/schemas/ProviderOfferingDetails'
          readOnly: true
        approval_limit:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
          description: The credit limit beyond which requests need to be approved
            by a local admin. If this is None, then no local approval is required.
            If this is set to 0, then all requests (including creating the project)
            need to be approved.
        max_credit_limit:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
          title: Maximum credit limit
          description: The maximum credit limit for any projects created in this class.
            Any requests beyond this limit are automatically rejected. If this is
            None, then no maximum limit is set. If this is set to 0, then no projects
            can be created in this class.
        allocation_units_mapping:
          description: The mapping of credits to allocation units, i.e. how many allocation
            units to award per credit allocated.
        role_mapping:
          description: The mapping of role names from the remote portal to role information
            in this portal for users in projects created in this class.
        role_mapping_data:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: string
          description: Serialize the role mapping dictionary returned by get_role_mapping()
          readOnly: true
      required:
      - customer
      - customer_data
      - name
      - offering
      - offerings
      - offerings_data
      - portal
      - provider
      - provider_data
      - role_mapping_data
      - uuid
    ProjectTemplateRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 128
        offering:
          type: string
          nullable: true
          description: The offering for which this template applies.
          maxLength: 256
        provider:
          type: string
          format: uri
        portal:
          type: string
          minLength: 1
          maxLength: 32
        key:
          type: string
          nullable: true
          description: The key that is used to authenticate requests for this class.
          maxLength: 256
        customer:
          type: string
          format: uri
        shortname:
          type: string
          nullable: true
          maxLength: 30
        offerings:
          type: array
          items:
            type: string
            format: uri
        approval_limit:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
          description: The credit limit beyond which requests need to be approved
            by a local admin. If this is None, then no local approval is required.
            If this is set to 0, then all requests (including creating the project)
            need to be approved.
        max_credit_limit:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          nullable: true
          title: Maximum credit limit
          description: The maximum credit limit for any projects created in this class.
            Any requests beyond this limit are automatically rejected. If this is
            None, then no maximum limit is set. If this is set to 0, then no projects
            can be created in this class.
        allocation_units_mapping:
          description: The mapping of credits to allocation units, i.e. how many allocation
            units to award per credit allocated.
        role_mapping:
          description: The mapping of role names from the remote portal to role information
            in this portal for users in projects created in this class.
      required:
      - customer
      - name
      - offering
      - offerings
      - portal
      - provider
    ProjectType:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
      required:
      - name
      - url
      - uuid
      description: ''
    ProjectUser:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          pattern: ^[0-9a-z_.@+-]+$
          maxLength: 128
        full_name:
          type: string
          readOnly: true
        email:
          type: string
          format: email
          title: Email address
          maxLength: 320
        role:
          type: string
          readOnly: true
        expiration_time:
          type: string
          format: date-time
          nullable: true
          readOnly: true
        offering_user_username:
          type: string
          nullable: true
          readOnly: true
        offering_user_state:
          nullable: true
          readOnly: true
          oneOf:
          - $ref: '#/components/schemas/OfferingUserState'
          - $ref: '#/components/schemas/NullEnum'
      required:
      - expiration_time
      - full_name
      - offering_user_state
      - offering_user_username
      - role
      - url
      - username
      - uuid
      description: ''
    ProjectsLimitsGroupedByIndustryFlag:
      type: object
      properties:
        limits:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: string
              format: decimal
              pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Nested dictionary of resource limits by category and component
            type
      required:
      - limits
      description: ''
    ProjectsLimitsGroupedByOecd:
      type: object
      properties:
        limits:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: string
              format: decimal
              pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Nested dictionary of resource limits by category and component
            type
      required:
      - limits
      description: ''
    ProjectsUsagesGroupedByIndustryFlag:
      type: object
      properties:
        usages:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: string
              format: decimal
              pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Nested dictionary of usage values by category and component
            type
      required:
      - usages
      description: ''
    ProjectsUsagesGroupedByOecd:
      type: object
      properties:
        usages:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: string
              format: decimal
              pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Nested dictionary of usage values by category and component
            type
      required:
      - usages
      description: ''
    Proposal:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        slug:
          type: string
          readOnly: true
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          maxLength: 150
        description:
          type: string
        project_name:
          type: string
          readOnly: true
        project_summary:
          type: string
        project_is_confidential:
          type: boolean
        project_has_civilian_purpose:
          type: boolean
        supporting_documentation:
          type: array
          items:
            $ref: '#/components/schemas/ProposalDocumentation'
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/ProposalStates'
          readOnly: true
        approved_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        created_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        created_by_name:
          type: string
          readOnly: true
        created_by_uuid:
          type: string
          format: uuid
          readOnly: true
        duration_in_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Duration in days after provisioning of resources.
        project:
          type: string
          format: uri
          readOnly: true
          nullable: true
        round:
          allOf:
          - $ref: '#/components/schemas/NestedRound'
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        call_managing_organisation_uuid:
          type: string
          format: uuid
          readOnly: true
        oecd_fos_2007_code:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/OecdFos2007CodeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        oecd_fos_2007_label:
          type: string
          readOnly: true
        allocation_comment:
          type: string
          readOnly: true
          nullable: true
        created:
          type: string
          format: date-time
          readOnly: true
        compliance_status:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        can_submit:
          type: object
          additionalProperties: {}
          readOnly: true
      required:
      - allocation_comment
      - approved_by
      - call_managing_organisation_uuid
      - call_name
      - call_uuid
      - can_submit
      - compliance_status
      - created
      - created_by
      - created_by_name
      - created_by_uuid
      - name
      - oecd_fos_2007_label
      - project
      - project_name
      - round
      - slug
      - state
      - supporting_documentation
      - url
      - uuid
    ProposalApproveRequest:
      type: object
      properties:
        allocation_comment:
          type: string
          minLength: 1
      description: ''
    ProposalChecklistAnswerSubmitResponse:
      type: object
      description: ''
      properties:
        detail:
          type: string
        completion:
          $ref: '#/components/schemas/ChecklistCompletionReviewer'
      required:
      - completion
      - detail
    ProposalDetachDocumentsRequest:
      type: object
      properties:
        documents:
          type: array
          items:
            type: string
            format: uuid
      required:
      - documents
      description: ''
    ProposalDocumentation:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        file:
          type: string
          format: uri
          nullable: true
          description: Upload supporting documentation in PDF format.
        file_name:
          type: string
          readOnly: true
        file_size:
          type: integer
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - created
      - file_name
      - file_size
      - uuid
      description: ''
    ProposalDocumentationRequest:
      type: object
      properties:
        file:
          type: string
          format: binary
          nullable: true
          description: Upload supporting documentation in PDF format.
      description: ''
    ProposalProjectRoleMapping:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        call:
          type: string
          format: uri
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        proposal_role:
          type: string
        project_role:
          type: string
          nullable: true
      required:
      - call
      - call_name
      - call_uuid
      - proposal_role
      - url
      - uuid
      description: ''
    ProposalProjectRoleMappingRequest:
      type: object
      properties:
        call:
          type: string
          format: uri
        proposal_role:
          type: string
          minLength: 1
        project_role:
          type: string
          minLength: 1
          nullable: true
      required:
      - call
      - proposal_role
      description: ''
    ProposalRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
        project_summary:
          type: string
        project_is_confidential:
          type: boolean
        project_has_civilian_purpose:
          type: boolean
        duration_in_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Duration in days after provisioning of resources.
        round_uuid:
          type: string
          format: uuid
          writeOnly: true
        oecd_fos_2007_code:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/OecdFos2007CodeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
      required:
      - name
      - round_uuid
    ProposalReview:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        proposal:
          type: string
          format: uri
        proposal_name:
          type: string
          readOnly: true
        proposal_uuid:
          type: string
          format: uuid
          readOnly: true
        proposal_slug:
          type: string
          readOnly: true
        reviewer:
          type: string
          format: uri
        reviewer_full_name:
          type: string
          readOnly: true
        reviewer_uuid:
          type: string
          format: uuid
          readOnly: true
        anonymous_reviewer_name:
          type: string
          nullable: true
          description: |-
            Generate an anonymous reviewer identifier like 'Reviewer 1', 'Reviewer 2'.
            Returns None if the review is not associated with a proposal.
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/ProposalReviewStateEnum'
          readOnly: true
        review_end_date:
          type: string
          format: date-time
          readOnly: true
        summary_score:
          type: integer
          maximum: 32767
          minimum: 0
        summary_public_comment:
          type: string
        summary_private_comment:
          type: string
        round_uuid:
          type: string
          format: uuid
          readOnly: true
        round_name:
          type: string
          readOnly: true
        round_slug:
          type: string
          readOnly: true
        round_cutoff_time:
          type: string
          format: date-time
          readOnly: true
        round_start_time:
          type: string
          format: date-time
          readOnly: true
        call_name:
          type: string
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_slug:
          type: string
          readOnly: true
        call_managing_organisation_uuid:
          type: string
          format: uuid
          readOnly: true
        comment_project_title:
          type: string
          nullable: true
          maxLength: 255
        comment_project_summary:
          type: string
          nullable: true
          maxLength: 255
        comment_project_is_confidential:
          type: string
          nullable: true
          maxLength: 255
        comment_project_has_civilian_purpose:
          type: string
          nullable: true
          maxLength: 255
        comment_project_description:
          type: string
          nullable: true
          maxLength: 255
        comment_project_duration:
          type: string
          nullable: true
          maxLength: 255
        comment_project_supporting_documentation:
          type: string
          nullable: true
          maxLength: 255
        comment_resource_requests:
          type: string
          nullable: true
          maxLength: 255
        comment_team:
          type: string
          nullable: true
          maxLength: 255
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - call_managing_organisation_uuid
      - call_name
      - call_slug
      - call_uuid
      - created
      - modified
      - proposal
      - proposal_name
      - proposal_slug
      - proposal_uuid
      - review_end_date
      - round_cutoff_time
      - round_name
      - round_slug
      - round_start_time
      - round_uuid
      - state
      - url
      - uuid
    ProposalReviewRequest:
      type: object
      description: ''
      properties:
        proposal:
          type: string
          format: uri
        reviewer:
          type: string
          format: uri
        summary_score:
          type: integer
          maximum: 32767
          minimum: 0
        summary_public_comment:
          type: string
        summary_private_comment:
          type: string
        comment_project_title:
          type: string
          nullable: true
          maxLength: 255
        comment_project_summary:
          type: string
          nullable: true
          maxLength: 255
        comment_project_is_confidential:
          type: string
          nullable: true
          maxLength: 255
        comment_project_has_civilian_purpose:
          type: string
          nullable: true
          maxLength: 255
        comment_project_description:
          type: string
          nullable: true
          maxLength: 255
        comment_project_duration:
          type: string
          nullable: true
          maxLength: 255
        comment_project_supporting_documentation:
          type: string
          nullable: true
          maxLength: 255
        comment_resource_requests:
          type: string
          nullable: true
          maxLength: 255
        comment_team:
          type: string
          nullable: true
          maxLength: 255
      required:
      - proposal
    ProposalReviewStateEnum:
      enum:
      - in_review
      - submitted
      - rejected
      type: string
      description: ''
    ProposalStates:
      enum:
      - draft
      - submitted
      - in_review
      - accepted
      - rejected
      - canceled
      type: string
      description: ''
    ProposalUpdateProjectDetailsRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        project_summary:
          type: string
        project_is_confidential:
          type: boolean
        project_has_civilian_purpose:
          type: boolean
        duration_in_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Duration in days after provisioning of resources.
        oecd_fos_2007_code:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/OecdFos2007CodeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
      required:
      - name
      description: ''
    ProposedAssignment:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        call:
          type: string
          format: uri
          readOnly: true
        reviewer:
          type: string
          format: uri
          readOnly: true
        reviewer_uuid:
          type: string
          format: uuid
          readOnly: true
        reviewer_name:
          type: string
          readOnly: true
        proposal:
          type: string
          format: uri
          readOnly: true
        proposal_uuid:
          type: string
          format: uuid
          readOnly: true
        proposal_name:
          type: string
          readOnly: true
        affinity_score:
          type: number
          format: double
          readOnly: true
        algorithm_used:
          allOf:
          - $ref: '#/components/schemas/MatchingAlgorithm'
          readOnly: true
        rank:
          type: integer
          readOnly: true
          description: Assignment rank (1 = best match)
        is_deployed:
          type: boolean
          readOnly: true
        deployed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        deployed_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        deployed_by_name:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - affinity_score
      - algorithm_used
      - call
      - created
      - deployed_at
      - deployed_by
      - deployed_by_name
      - is_deployed
      - proposal
      - proposal_name
      - proposal_uuid
      - rank
      - reviewer
      - reviewer_name
      - reviewer_uuid
      - url
      - uuid
    ProtectedCall:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        start_date:
          type: string
          format: date-time
          readOnly: true
        end_date:
          type: string
          format: date-time
          readOnly: true
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          maxLength: 150
        description:
          type: string
        state:
          allOf:
          - $ref: '#/components/schemas/CallStates'
          readOnly: true
        manager:
          type: string
          format: uri
        manager_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        offerings:
          type: array
          items:
            $ref: '#/components/schemas/NestedRequestedOffering'
          readOnly: true
        rounds:
          type: array
          items:
            $ref: '#/components/schemas/NestedRound'
          readOnly: true
        documents:
          type: array
          items:
            $ref: '#/components/schemas/CallDocument'
          readOnly: true
        resource_templates:
          type: array
          items:
            $ref: '#/components/schemas/CallResourceTemplate'
          readOnly: true
        fixed_duration_in_days:
          type: integer
          nullable: true
        backend_id:
          type: string
          maxLength: 255
        external_url:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        reviewer_identity_visible_to_submitters:
          type: boolean
          description: Whether proposal applicants can see reviewer identities
        reviews_visible_to_submitters:
          type: boolean
          description: Whether proposal applicants can see review comments and scores
        has_eligibility_restrictions:
          type: boolean
          description: Check if call has any eligibility restrictions configured.
          readOnly: true
        created_by:
          type: string
          format: uri
          nullable: true
        reference_code:
          type: string
        compliance_checklist:
          type: string
          format: uuid
          nullable: true
          description: Compliance checklist that proposals must complete before submission
        compliance_checklist_name:
          type: string
          readOnly: true
        proposal_slug_template:
          type: string
          nullable: true
          description: 'Template for proposal slugs. Supports: {call_slug}, {round_slug},
            {org_slug}, {year}, {month}, {counter}, {counter_padded}. Default: {round_slug}-{counter_padded}'
        user_email_patterns:
          description: List of email regex patterns. User must match one.
        user_affiliations:
          description: List of allowed affiliations. User must have one.
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        user_nationalities:
          description: List of allowed nationality codes (ISO 3166-1 alpha-2). User
            must have one.
        user_organization_types:
          description: List of allowed organization type URNs (SCHAC). User must match
            one.
        user_assurance_levels:
          description: List of required assurance URIs (REFEDS). User must have ALL
            of these.
      required: []
    ProtectedCallRequest:
      type: object
      description: ''
      properties:
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
        manager:
          type: string
          format: uri
        fixed_duration_in_days:
          type: integer
          nullable: true
        backend_id:
          type: string
          maxLength: 255
        external_url:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        reviewer_identity_visible_to_submitters:
          type: boolean
          description: Whether proposal applicants can see reviewer identities
        reviews_visible_to_submitters:
          type: boolean
          description: Whether proposal applicants can see review comments and scores
        created_by:
          type: string
          format: uri
          nullable: true
        reference_code:
          type: string
          minLength: 1
        compliance_checklist:
          type: string
          format: uuid
          nullable: true
          description: Compliance checklist that proposals must complete before submission
        proposal_slug_template:
          type: string
          nullable: true
          description: 'Template for proposal slugs. Supports: {call_slug}, {round_slug},
            {org_slug}, {year}, {month}, {counter}, {counter_padded}. Default: {round_slug}-{counter_padded}'
        user_email_patterns:
          description: List of email regex patterns. User must match one.
        user_affiliations:
          description: List of allowed affiliations. User must have one.
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        user_nationalities:
          description: List of allowed nationality codes (ISO 3166-1 alpha-2). User
            must have one.
        user_organization_types:
          description: List of allowed organization type URNs (SCHAC). User must match
            one.
        user_assurance_levels:
          description: List of required assurance URIs (REFEDS). User must have ALL
            of these.
      required:
      - manager
      - name
    ProtectedProposalList:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          maxLength: 150
        state:
          allOf:
          - $ref: '#/components/schemas/ProposalStates'
          readOnly: true
        reviews:
          type: array
          items: {}
          description: |-
            Return serialized reviews based on user permissions and visibility settings.
            - Staff, call managers, and reviewers see all reviews.
            - Submitters see submitted reviews if visibility is enabled.
          readOnly: true
        approved_by_name:
          type: string
          readOnly: true
        created_by_name:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - approved_by_name
      - created
      - created_by_name
      - name
      - reviews
      - slug
      - state
      - uuid
      description: ''
    ProtectedProposalListRequest:
      type: object
      properties:
        slug:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          minLength: 1
          maxLength: 150
      required:
      - name
      - slug
      description: ''
    ProtectedRound:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        slug:
          type: string
          readOnly: true
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          readOnly: true
        start_time:
          type: string
          format: date-time
        cutoff_time:
          type: string
          format: date-time
        status:
          allOf:
          - $ref: '#/components/schemas/RoundStatus'
          readOnly: true
        review_strategy:
          $ref: '#/components/schemas/ReviewStrategyEnum'
        deciding_entity:
          $ref: '#/components/schemas/DecidingEntityEnum'
        allocation_time:
          $ref: '#/components/schemas/AllocationTimeEnum'
        allocation_date:
          type: string
          format: date-time
          nullable: true
        minimal_average_scoring:
          type: string
          format: decimal
          pattern: ^-?\d{0,4}(?:\.\d{0,1})?$
          nullable: true
        review_duration_in_days:
          type: integer
        minimum_number_of_reviewers:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        url:
          type: string
          readOnly: true
        proposals:
          type: array
          items:
            $ref: '#/components/schemas/ProtectedProposalList'
          readOnly: true
      required:
      - cutoff_time
      - name
      - proposals
      - slug
      - start_time
      - status
      - url
      - uuid
    ProtectedRoundRequest:
      type: object
      description: ''
      properties:
        start_time:
          type: string
          format: date-time
        cutoff_time:
          type: string
          format: date-time
        review_strategy:
          $ref: '#/components/schemas/ReviewStrategyEnum'
        deciding_entity:
          $ref: '#/components/schemas/DecidingEntityEnum'
        allocation_time:
          $ref: '#/components/schemas/AllocationTimeEnum'
        allocation_date:
          type: string
          format: date-time
          nullable: true
        minimal_average_scoring:
          type: string
          format: decimal
          pattern: ^-?\d{0,4}(?:\.\d{0,1})?$
          nullable: true
        review_duration_in_days:
          type: integer
        minimum_number_of_reviewers:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
      required:
      - cutoff_time
      - start_time
    ProtocolEnum:
      enum:
      - tcp
      - udp
      - icmp
      type: string
      description: ''
    ProviderCustomerStats:
      type: object
      description: ''
      properties:
        total:
          type: integer
          description: Total number of customers
        new_this_month:
          type: integer
          description: New customers this month
        top_by_revenue:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Top customers by revenue
        top_by_resources:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Top customers by resource count
        monthly:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Monthly customer counts
      required:
      - monthly
      - new_this_month
      - top_by_resources
      - top_by_revenue
      - total
    ProviderOffering:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        category_title:
          type: string
          readOnly: true
        type:
          type: string
          maxLength: 100
        state:
          allOf:
          - $ref: '#/components/schemas/OfferingState'
          readOnly: true
        resources_count:
          type: integer
          readOnly: true
        billing_price_estimate:
          allOf:
          - $ref: '#/components/schemas/NestedPriceEstimate'
          readOnly: true
        components:
          type: array
          items:
            $ref: '#/components/schemas/OfferingComponent'
        plans:
          type: array
          items:
            $ref: '#/components/schemas/BaseProviderPlan'
        options:
          description: Fields describing resource provision form.
        resource_options:
          description: Fields describing resource report form.
        secret_options:
          allOf:
          - $ref: '#/components/schemas/MergedSecretOptions'
          readOnly: true
        thumbnail:
          type: string
          format: uri
          nullable: true
      required: []
    ProviderOfferingCosts:
      type: object
      properties:
        period:
          type: string
          readOnly: true
          description: Billing period (YYYY-MM)
        price:
          type: number
          format: double
          readOnly: true
          description: Price amount excluding tax
        tax:
          type: number
          format: double
          readOnly: true
          description: Tax amount
        total:
          type: number
          format: double
          readOnly: true
          description: Total amount including tax
      required:
      - period
      - price
      - tax
      - total
      description: ''
    ProviderOfferingCustomer:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        abbreviation:
          type: string
          maxLength: 12
        phone_number:
          type: string
          maxLength: 255
        email:
          type: string
          format: email
          title: Email address
          maxLength: 75
      required: []
    ProviderOfferingDetails:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        description:
          type: string
          maxLength: 4096
        full_description:
          type: string
        privacy_policy_link:
          type: string
          format: uri
          maxLength: 200
        access_url:
          type: string
          format: uri
          description: Publicly accessible offering access URL
          maxLength: 200
        endpoints:
          type: array
          items:
            $ref: '#/components/schemas/NestedEndpoint'
          readOnly: true
        software_catalogs:
          type: array
          items:
            $ref: '#/components/schemas/NestedSoftwareCatalog'
          readOnly: true
        partitions:
          type: array
          items:
            $ref: '#/components/schemas/NestedPartition'
          readOnly: true
        roles:
          type: array
          items:
            $ref: '#/components/schemas/NestedRole'
          readOnly: true
        customer:
          type: string
          format: uri
          nullable: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        customer_name:
          type: string
          readOnly: true
          nullable: true
        project:
          type: string
          format: uri
          readOnly: true
          nullable: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        project_name:
          type: string
          readOnly: true
          nullable: true
        category:
          type: string
          format: uri
        category_uuid:
          type: string
          format: uuid
          readOnly: true
        category_title:
          type: string
          readOnly: true
        attributes:
          type: object
          additionalProperties: {}
          readOnly: true
        options:
          allOf:
          - $ref: '#/components/schemas/OfferingOptions'
          readOnly: true
        resource_options:
          allOf:
          - $ref: '#/components/schemas/OfferingOptions'
          readOnly: true
        components:
          type: array
          items:
            $ref: '#/components/schemas/OfferingComponent'
          readOnly: true
        plugin_options:
          allOf:
          - $ref: '#/components/schemas/MergedPluginOptions'
          readOnly: true
        secret_options:
          allOf:
          - $ref: '#/components/schemas/MergedSecretOptions'
          readOnly: true
        service_attributes:
          type: object
          additionalProperties: {}
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/OfferingState'
          readOnly: true
        vendor_details:
          type: string
        getting_started:
          type: string
        integration_guide:
          type: string
        thumbnail:
          type: string
          format: uri
          nullable: true
        order_count:
          type: integer
          readOnly: true
        plans:
          type: array
          items:
            $ref: '#/components/schemas/BaseProviderPlan'
          readOnly: true
        screenshots:
          type: array
          items:
            $ref: '#/components/schemas/NestedScreenshot'
          readOnly: true
        type:
          type: string
          maxLength: 100
        shared:
          type: boolean
          description: Accessible to all customers.
        billable:
          type: boolean
          description: Purchase and usage is invoiced.
        scope:
          type: string
          readOnly: true
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        scope_name:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        scope_state:
          nullable: true
          readOnly: true
          oneOf:
          - $ref: '#/components/schemas/CoreStates'
          - $ref: '#/components/schemas/NullEnum'
        scope_error_message:
          type: string
          nullable: true
          readOnly: true
        files:
          type: array
          items:
            $ref: '#/components/schemas/NestedOfferingFile'
          readOnly: true
        quotas:
          type: array
          items:
            $ref: '#/components/schemas/Quota'
          readOnly: true
        paused_reason:
          type: string
          readOnly: true
        datacite_doi:
          type: string
          maxLength: 255
        citation_count:
          type: integer
          readOnly: true
          description: Number of citations of a DOI
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        backend_id:
          type: string
          maxLength: 255
        backend_id_rules:
          description: 'Validation rules for resource backend_id: format regex and
            uniqueness scope.'
        organization_groups:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationGroup'
          readOnly: true
        tags:
          type: array
          items:
            $ref: '#/components/schemas/NestedTag'
          readOnly: true
        image:
          type: string
          format: uri
          nullable: true
        total_customers:
          type: integer
          nullable: true
          readOnly: true
        total_cost:
          type: integer
          nullable: true
          readOnly: true
        total_cost_estimated:
          type: integer
          nullable: true
          readOnly: true
        parent_description:
          type: string
          readOnly: true
          nullable: true
        parent_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        parent_name:
          type: string
          readOnly: true
          nullable: true
        backend_metadata: {}
        has_compliance_requirements:
          type: boolean
          readOnly: true
        billing_type_classification:
          type: string
          description: |-
            Classify offering components by billing type.
            Returns 'limit_only', 'usage_only', or 'mixed'.
          readOnly: true
        compliance_checklist:
          type: string
          format: uri
          nullable: true
        integration_status:
          type: array
          items:
            $ref: '#/components/schemas/IntegrationStatus'
          nullable: true
          readOnly: true
        google_calendar_is_public:
          type: boolean
          nullable: true
          readOnly: true
        google_calendar_link:
          type: string
          nullable: true
          description: Get the Google Calendar link for an offering.
          readOnly: true
      required: []
    ProviderOfferingDetailsRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        description:
          type: string
          maxLength: 4096
        full_description:
          type: string
        privacy_policy_link:
          type: string
          format: uri
          maxLength: 200
        access_url:
          type: string
          format: uri
          description: Publicly accessible offering access URL
          maxLength: 200
        customer:
          type: string
          format: uri
          nullable: true
        category:
          type: string
          format: uri
        attributes: {}
        components:
          type: array
          items:
            $ref: '#/components/schemas/OfferingComponentRequest'
        vendor_details:
          type: string
        getting_started:
          type: string
        integration_guide:
          type: string
        thumbnail:
          type: string
          format: binary
          nullable: true
        plans:
          type: array
          items:
            $ref: '#/components/schemas/BaseProviderPlanRequest'
        type:
          type: string
          minLength: 1
          maxLength: 100
        shared:
          type: boolean
          description: Accessible to all customers.
        billable:
          type: boolean
          description: Purchase and usage is invoiced.
        datacite_doi:
          type: string
          maxLength: 255
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        backend_id:
          type: string
          maxLength: 255
        backend_id_rules:
          description: 'Validation rules for resource backend_id: format regex and
            uniqueness scope.'
        image:
          type: string
          format: binary
          nullable: true
        backend_metadata: {}
        compliance_checklist:
          type: string
          format: uri
          nullable: true
      required:
      - category
      - name
      - type
    ProviderOfferingStats:
      type: object
      description: ''
      properties:
        offerings:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Offering statistics including resources, revenue, and utilization
      required:
      - offerings
    ProviderPlanDetails:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
        article_code:
          type: string
          maxLength: 30
        max_amount:
          type: integer
          maximum: 32767
          minimum: 1
          nullable: true
          description: Maximum number of plans that could be active. Plan is disabled
            when maximum amount is reached.
        archived:
          type: boolean
          description: Forbids creation of new resources.
        is_active:
          type: boolean
          readOnly: true
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        unit:
          $ref: '#/components/schemas/BillingUnit'
        init_price:
          type: number
          format: double
          readOnly: true
        switch_price:
          type: number
          format: double
          readOnly: true
        backend_id:
          type: string
          maxLength: 255
        organization_groups:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationGroup'
          readOnly: true
        components:
          type: array
          items:
            $ref: '#/components/schemas/NestedPlanComponent'
          readOnly: true
        offering:
          type: string
          format: uri
        prices:
          type: object
          additionalProperties:
            type: number
            format: double
          readOnly: true
        future_prices:
          type: object
          additionalProperties:
            type: number
            format: double
          readOnly: true
        quotas:
          type: object
          additionalProperties:
            type: number
            format: double
          readOnly: true
        resources_count:
          type: integer
          readOnly: true
        plan_type:
          type: string
          readOnly: true
        minimal_price:
          type: number
          format: double
          readOnly: true
      required:
      - components
      - future_prices
      - init_price
      - is_active
      - minimal_price
      - name
      - offering
      - organization_groups
      - plan_type
      - prices
      - quotas
      - resources_count
      - switch_price
      - url
      - uuid
    ProviderPlanDetailsRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
        article_code:
          type: string
          maxLength: 30
        max_amount:
          type: integer
          maximum: 32767
          minimum: 1
          nullable: true
          description: Maximum number of plans that could be active. Plan is disabled
            when maximum amount is reached.
        archived:
          type: boolean
          description: Forbids creation of new resources.
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        unit:
          $ref: '#/components/schemas/BillingUnit'
        backend_id:
          type: string
          maxLength: 255
        offering:
          type: string
          format: uri
      required:
      - name
      - offering
    ProviderProject:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 500
        image:
          type: string
          format: uri
          nullable: true
      required: []
      description: ''
    ProviderRequestedOffering:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/RequestedOfferingStates'
          readOnly: true
        offering:
          type: string
          format: uri
        offering_name:
          type: string
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        provider_name:
          type: string
          readOnly: true
        category_uuid:
          type: string
          format: uuid
          readOnly: true
        category_name:
          type: string
          readOnly: true
        call_managing_organisation:
          type: string
          readOnly: true
        attributes: {}
        plan:
          type: string
          format: uri
          readOnly: true
          nullable: true
        plan_details:
          allOf:
          - $ref: '#/components/schemas/BasePublicPlan'
          readOnly: true
        options:
          allOf:
          - $ref: '#/components/schemas/OfferingOptions'
          readOnly: true
        components:
          type: array
          items:
            $ref: '#/components/schemas/OfferingComponent'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        call_name:
          type: string
          readOnly: true
        call:
          type: string
          format: uri
        description:
          type: string
          readOnly: true
        created_by_name:
          type: string
          readOnly: true
        created_by_email:
          type: string
          format: email
          title: Email address
          readOnly: true
      required:
      - call
      - call_managing_organisation
      - call_name
      - category_name
      - category_uuid
      - components
      - created
      - created_by_email
      - created_by_name
      - description
      - offering
      - offering_name
      - offering_uuid
      - options
      - plan
      - plan_details
      - provider_name
      - state
      - url
      - uuid
      description: ''
    ProviderRequestedResource:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          readOnly: true
        requested_offering:
          allOf:
          - $ref: '#/components/schemas/NestedRequestedOffering'
          readOnly: true
        resource:
          type: string
          format: uri
          nullable: true
        resource_name:
          type: string
          readOnly: true
        call_resource_template:
          type: string
          readOnly: true
        call_resource_template_name:
          type: string
          readOnly: true
        attributes: {}
        limits: {}
        description:
          type: string
          maxLength: 4096
        created_by:
          type: string
          format: uri
          nullable: true
        created_by_name:
          type: string
          readOnly: true
        proposal_name:
          type: string
          readOnly: true
        proposal:
          type: string
          format: uri
      required:
      - call_resource_template
      - call_resource_template_name
      - created_by_name
      - proposal
      - proposal_name
      - requested_offering
      - resource_name
      - url
      - uuid
      description: ''
    ProviderResourceStats:
      type: object
      description: ''
      properties:
        total:
          type: integer
          description: Total number of resources
        by_state:
          type: object
          additionalProperties:
            type: integer
          description: Resource counts grouped by state
        by_offering:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Resource counts grouped by offering
        monthly:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Monthly resource counts
      required:
      - by_offering
      - by_state
      - monthly
      - total
    ProviderTeamUser:
      type: object
      description: ''
      properties:
        user_uuid:
          type: string
          format: uuid
        username:
          type: string
        full_name:
          type: string
        role:
          type: string
          nullable: true
      required:
      - full_name
      - role
      - user_uuid
      - username
    ProviderUser:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        full_name:
          type: string
          readOnly: true
        email:
          type: string
          format: email
          title: Email address
          maxLength: 320
        image:
          type: string
          format: uri
          nullable: true
      required: []
      description: ''
    PublicCall:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        start_date:
          type: string
          format: date-time
          readOnly: true
        end_date:
          type: string
          format: date-time
          readOnly: true
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          maxLength: 150
        description:
          type: string
        state:
          allOf:
          - $ref: '#/components/schemas/CallStates'
          readOnly: true
        manager:
          type: string
          format: uri
        manager_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        offerings:
          type: array
          items:
            $ref: '#/components/schemas/NestedRequestedOffering'
          readOnly: true
        rounds:
          type: array
          items:
            $ref: '#/components/schemas/NestedRound'
          readOnly: true
        documents:
          type: array
          items:
            $ref: '#/components/schemas/CallDocument'
          readOnly: true
        resource_templates:
          type: array
          items:
            $ref: '#/components/schemas/CallResourceTemplate'
          readOnly: true
        fixed_duration_in_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Fixed duration in days that applies to all proposals in this
            call
          readOnly: true
        backend_id:
          type: string
          maxLength: 255
        external_url:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        reviewer_identity_visible_to_submitters:
          type: boolean
          description: Whether proposal applicants can see reviewer identities. If
            False, reviewers appear as 'Reviewer 1', 'Reviewer 2', etc.
        reviews_visible_to_submitters:
          type: boolean
          description: Whether proposal applicants can see review comments and scores.
            If False, applicants only see final approval/rejection status.
        has_eligibility_restrictions:
          type: boolean
          description: Check if call has any eligibility restrictions configured.
          readOnly: true
      required: []
    PublicInvitation:
      type: object
      description: ''
      properties:
        call_name:
          type: string
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        invitation_status:
          type: string
          readOnly: true
        expires_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        is_expired:
          type: boolean
          readOnly: true
        max_assignments:
          type: integer
          readOnly: true
          nullable: true
        invited_by_name:
          type: string
          readOnly: true
          nullable: true
          description: Name of the person who sent the invitation
        profile_status:
          type: string
          readOnly: true
          nullable: true
          description: 'User''s profile status: ''published'', ''unpublished'', ''missing'',
            or null if not authenticated'
        requires_profile:
          type: boolean
          readOnly: true
          description: Whether the invitation requires creating a reviewer profile
        coi_configuration:
          allOf:
          - $ref: '#/components/schemas/InvitationCOIConfiguration'
          readOnly: true
          nullable: true
          description: COI configuration for this call
        coi_types:
          type: array
          items:
            type: array
            items:
              type: string
          readOnly: true
          description: Available COI types as list of [value, label] tuples
        proposals:
          type: array
          items:
            $ref: '#/components/schemas/InvitationProposalSummary'
          readOnly: true
          description: Proposals for which conflicts can be declared
      required:
      - call_name
      - call_uuid
      - coi_configuration
      - coi_types
      - expires_at
      - invitation_status
      - invited_by_name
      - is_expired
      - max_assignments
      - profile_status
      - proposals
      - requires_profile
    PublicMaintenanceAnnouncement:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
        message:
          type: string
          readOnly: true
        maintenance_type:
          allOf:
          - $ref: '#/components/schemas/MaintenanceTypeEnum'
          readOnly: true
          description: Type of maintenance being performed
        maintenance_type_display:
          type: string
          readOnly: true
        external_reference_url:
          type: string
          format: uri
          readOnly: true
          description: Optional reference to an external maintenance tracker
        state:
          allOf:
          - $ref: '#/components/schemas/PublicMaintenanceAnnouncementStateEnum'
          readOnly: true
        scheduled_start:
          type: string
          format: date-time
          readOnly: true
          description: When the maintenance is scheduled to begin
        scheduled_end:
          type: string
          format: date-time
          readOnly: true
          description: When the maintenance is scheduled to complete
        actual_start:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When the maintenance actually began
        actual_end:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When the maintenance actually completed
        affected_offerings:
          type: array
          items:
            $ref: '#/components/schemas/MaintenanceAnnouncementOffering'
          readOnly: true
        service_provider_name:
          type: string
          readOnly: true
      required:
      - actual_end
      - actual_start
      - affected_offerings
      - external_reference_url
      - maintenance_type
      - maintenance_type_display
      - message
      - name
      - scheduled_end
      - scheduled_start
      - service_provider_name
      - state
      - url
      - uuid
      description: ''
    PublicMaintenanceAnnouncementStateEnum:
      enum:
      - Scheduled
      - In progress
      - Completed
      type: string
      description: ''
    PublicOfferingDetails:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        description:
          type: string
          maxLength: 4096
        full_description:
          type: string
        privacy_policy_link:
          type: string
          format: uri
          maxLength: 200
        access_url:
          type: string
          format: uri
          description: Publicly accessible offering access URL
          maxLength: 200
        endpoints:
          type: array
          items:
            $ref: '#/components/schemas/NestedEndpoint'
          readOnly: true
        software_catalogs:
          type: array
          items:
            $ref: '#/components/schemas/NestedSoftwareCatalog'
          readOnly: true
        partitions:
          type: array
          items:
            $ref: '#/components/schemas/NestedPartition'
          readOnly: true
        roles:
          type: array
          items:
            $ref: '#/components/schemas/NestedRole'
          readOnly: true
        customer:
          type: string
          format: uri
          nullable: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        customer_name:
          type: string
          readOnly: true
          nullable: true
        project:
          type: string
          format: uri
          readOnly: true
          nullable: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        project_name:
          type: string
          readOnly: true
          nullable: true
        category:
          type: string
          format: uri
        category_uuid:
          type: string
          format: uuid
          readOnly: true
        category_title:
          type: string
          readOnly: true
        attributes:
          type: object
          additionalProperties: {}
          readOnly: true
        options:
          allOf:
          - $ref: '#/components/schemas/OfferingOptions'
          readOnly: true
        resource_options:
          allOf:
          - $ref: '#/components/schemas/OfferingOptions'
          readOnly: true
        components:
          type: array
          items:
            $ref: '#/components/schemas/OfferingComponent'
          readOnly: true
        plugin_options:
          allOf:
          - $ref: '#/components/schemas/MergedPluginOptions'
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/OfferingState'
          readOnly: true
        vendor_details:
          type: string
        getting_started:
          type: string
        integration_guide:
          type: string
        thumbnail:
          type: string
          format: uri
          nullable: true
        order_count:
          type: integer
          readOnly: true
        plans:
          type: array
          items:
            $ref: '#/components/schemas/BasePublicPlan'
          readOnly: true
        screenshots:
          type: array
          items:
            $ref: '#/components/schemas/NestedScreenshot'
          readOnly: true
        type:
          type: string
          maxLength: 100
        shared:
          type: boolean
          description: Accessible to all customers.
        billable:
          type: boolean
          description: Purchase and usage is invoiced.
        scope:
          type: string
          readOnly: true
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        scope_name:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        scope_state:
          nullable: true
          readOnly: true
          oneOf:
          - $ref: '#/components/schemas/CoreStates'
          - $ref: '#/components/schemas/NullEnum'
        scope_error_message:
          type: string
          nullable: true
          readOnly: true
        files:
          type: array
          items:
            $ref: '#/components/schemas/NestedOfferingFile'
          readOnly: true
        quotas:
          type: array
          items:
            $ref: '#/components/schemas/Quota'
          readOnly: true
        paused_reason:
          type: string
          readOnly: true
        datacite_doi:
          type: string
          maxLength: 255
        citation_count:
          type: integer
          readOnly: true
          description: Number of citations of a DOI
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        backend_id:
          type: string
          maxLength: 255
        organization_groups:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationGroup'
          readOnly: true
        tags:
          type: array
          items:
            $ref: '#/components/schemas/NestedTag'
          readOnly: true
        image:
          type: string
          format: uri
          nullable: true
        total_customers:
          type: integer
          nullable: true
          readOnly: true
        total_cost:
          type: integer
          nullable: true
          readOnly: true
        total_cost_estimated:
          type: integer
          nullable: true
          readOnly: true
        parent_description:
          type: string
          readOnly: true
          nullable: true
        parent_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        parent_name:
          type: string
          readOnly: true
          nullable: true
        backend_metadata: {}
        has_compliance_requirements:
          type: boolean
          readOnly: true
        billing_type_classification:
          type: string
          description: |-
            Classify offering components by billing type.
            Returns 'limit_only', 'usage_only', or 'mixed'.
          readOnly: true
        compliance_checklist:
          type: string
          format: uri
          nullable: true
        user_has_consent:
          type: boolean
          readOnly: true
        is_accessible:
          type: boolean
          readOnly: true
        google_calendar_is_public:
          type: boolean
          nullable: true
          readOnly: true
        google_calendar_link:
          type: string
          nullable: true
          description: Get the Google Calendar link for an offering.
          readOnly: true
        promotion_campaigns:
          type: array
          items:
            $ref: '#/components/schemas/NestedCampaign'
          readOnly: true
      required: []
    PublishingMetrics:
      type: object
      description: ''
      properties:
        messages_sent:
          type: integer
          readOnly: true
          description: Total messages successfully sent
        messages_failed:
          type: integer
          readOnly: true
          description: Total failed message attempts
        messages_retried:
          type: integer
          readOnly: true
          description: Messages that required retry
        messages_skipped:
          type: integer
          readOnly: true
          description: Messages skipped due to circuit breaker
        circuit_breaker_trips:
          type: integer
          readOnly: true
          description: Number of times circuit breaker opened
        rate_limiter_rejections:
          type: integer
          readOnly: true
          description: Messages rejected by rate limiter
        avg_publish_time_ms:
          type: number
          format: double
          readOnly: true
          description: Average message publish latency in milliseconds
        last_publish_time:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: Unix timestamp of last publish attempt
      required:
      - avg_publish_time_ms
      - circuit_breaker_trips
      - last_publish_time
      - messages_failed
      - messages_retried
      - messages_sent
      - messages_skipped
      - rate_limiter_rejections
    PubsubCircuitBreakerSummary:
      type: object
      description: ''
      properties:
        state:
          type: string
          readOnly: true
          description: 'Current state: closed, open, or half_open'
        healthy:
          type: boolean
          readOnly: true
          description: Whether circuit breaker is in healthy state (closed)
        failure_count:
          type: integer
          readOnly: true
          description: Number of consecutive failures
      required:
      - failure_count
      - healthy
      - state
    PubsubMetricsSummary:
      type: object
      description: ''
      properties:
        messages_sent:
          type: integer
          readOnly: true
          description: Total messages sent
        messages_failed:
          type: integer
          readOnly: true
          description: Total messages failed
        failure_rate:
          type: string
          readOnly: true
          description: Failure rate as percentage string
        avg_latency_ms:
          type: number
          format: double
          readOnly: true
          description: Average publish latency in milliseconds
      required:
      - avg_latency_ms
      - failure_rate
      - messages_failed
      - messages_sent
    PubsubOverview:
      type: object
      description: ''
      properties:
        health_status:
          type: string
          readOnly: true
          description: 'Overall health: healthy, degraded, or critical'
        issues:
          type: array
          items:
            type: string
          readOnly: true
          description: List of current issues affecting health
        circuit_breaker:
          allOf:
          - $ref: '#/components/schemas/PubsubCircuitBreakerSummary'
          readOnly: true
          description: Circuit breaker summary
        metrics:
          allOf:
          - $ref: '#/components/schemas/PubsubMetricsSummary'
          readOnly: true
          description: Publishing metrics summary
        last_updated:
          type: string
          format: date-time
          readOnly: true
          description: Timestamp when overview was generated
      required:
      - circuit_breaker
      - health_status
      - issues
      - last_updated
      - metrics
    PullConflictResponse:
      type: object
      properties:
        detail:
          type: string
      required:
      - detail
      description: ''
    PullMarketplaceScriptResourceRequest:
      type: object
      properties:
        resource_uuid:
          type: string
          format: uuid
      required:
      - resource_uuid
      description: ''
    PullResponse:
      type: object
      properties:
        detail:
          type: string
      required:
      - detail
      description: ''
    QosStrategyEnum:
      enum:
      - threshold
      - progressive
      type: string
      description: ''
    QueryPerformance:
      type: object
      description: ''
      properties:
        seq_scan_count:
          type: integer
          readOnly: true
          description: Total sequential scans (potentially expensive)
        seq_scan_rows:
          type: integer
          readOnly: true
          description: Total rows fetched by sequential scans
        index_scan_count:
          type: integer
          readOnly: true
          description: Total index scans
        index_scan_rows:
          type: integer
          readOnly: true
          description: Total rows fetched by index scans
        temp_files_count:
          type: integer
          readOnly: true
          description: Number of temporary files created
        temp_files_bytes:
          type: integer
          readOnly: true
          description: Total size of temporary files in bytes
      required:
      - index_scan_count
      - index_scan_rows
      - seq_scan_count
      - seq_scan_rows
      - temp_files_bytes
      - temp_files_count
    QueryRequest:
      type: object
      properties:
        query:
          type: string
          minLength: 1
          description: Search query string
      required:
      - query
      description: ''
    Question:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        required:
          type: boolean
        description:
          type: string
          maxLength: 4096
        user_guidance:
          type: string
          description: Additional guidance text visible to users when answering and
            reviewing
        question_options:
          type: array
          items:
            $ref: '#/components/schemas/QuestionOptions'
          readOnly: true
        question_type:
          allOf:
          - $ref: '#/components/schemas/QuestionTypeEnum'
          description: Type of question and expected answer format
        order:
          type: integer
          maximum: 2147483647
          minimum: 0
        min_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          nullable: true
          description: Minimum value allowed for NUMBER, YEAR, and RATING type questions
        max_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          nullable: true
          description: Maximum value allowed for NUMBER, YEAR, and RATING type questions
        allowed_file_types:
          description: List of allowed file extensions (e.g., ['.pdf', '.doc', '.docx']).
            If empty, all file types are allowed.
        allowed_mime_types:
          description: List of allowed MIME types (e.g., ['application/pdf', 'application/msword']).
            If empty, MIME type validation is not enforced. When both extensions and
            MIME types are specified, files must match both criteria for security.
        max_file_size_mb:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum file size in megabytes. If not set, no size limit is
            enforced.
        max_files_count:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum number of files allowed for MULTIPLE_FILES type questions.
            If not set, no count limit is enforced.
        operator:
          oneOf:
          - $ref: '#/components/schemas/ChecklistOperators'
          - $ref: '#/components/schemas/BlankEnum'
        review_answer_value:
          nullable: true
          description: Answer value that trigger review.
        always_requires_review:
          type: boolean
          description: This question always requires review regardless of answer
        guidance_answer_value:
          nullable: true
          description: Answer value that triggers display of user guidance.
        guidance_operator:
          description: Operator to use when comparing answer with guidance_answer_value
          oneOf:
          - $ref: '#/components/schemas/ChecklistOperators'
          - $ref: '#/components/schemas/BlankEnum'
        always_show_guidance:
          type: boolean
          description: Show user guidance always, regardless of answer. If False,
            guidance is conditional on answer matching guidance_answer_value with
            guidance_operator
        dependency_logic_operator:
          allOf:
          - $ref: '#/components/schemas/DependencyLogicOperatorEnum'
          description: 'Defines how multiple dependencies are evaluated. AND: All
            dependencies must be satisfied. OR: At least one dependency must be satisfied.'
      required:
      - question_options
      - uuid
    QuestionAdmin:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        required:
          type: boolean
        description:
          type: string
          maxLength: 4096
        user_guidance:
          type: string
          description: Additional guidance text visible to users when answering and
            reviewing
        question_options:
          type: array
          items:
            $ref: '#/components/schemas/QuestionOptionsAdmin'
          readOnly: true
        question_type:
          allOf:
          - $ref: '#/components/schemas/QuestionTypeEnum'
          description: Type of question and expected answer format
        order:
          type: integer
          maximum: 2147483647
          minimum: 0
        min_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          nullable: true
          description: Minimum value allowed for NUMBER, YEAR, and RATING type questions
        max_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          nullable: true
          description: Maximum value allowed for NUMBER, YEAR, and RATING type questions
        allowed_file_types:
          description: List of allowed file extensions (e.g., ['.pdf', '.doc', '.docx']).
            If empty, all file types are allowed.
        allowed_mime_types:
          description: List of allowed MIME types (e.g., ['application/pdf', 'application/msword']).
            If empty, MIME type validation is not enforced. When both extensions and
            MIME types are specified, files must match both criteria for security.
        max_file_size_mb:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum file size in megabytes. If not set, no size limit is
            enforced.
        max_files_count:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum number of files allowed for MULTIPLE_FILES type questions.
            If not set, no count limit is enforced.
        operator:
          oneOf:
          - $ref: '#/components/schemas/ChecklistOperators'
          - $ref: '#/components/schemas/BlankEnum'
        review_answer_value:
          nullable: true
          description: Answer value that trigger review.
        always_requires_review:
          type: boolean
          description: This question always requires review regardless of answer
        guidance_answer_value:
          nullable: true
          description: Answer value that triggers display of user guidance.
        guidance_operator:
          description: Operator to use when comparing answer with guidance_answer_value
          oneOf:
          - $ref: '#/components/schemas/ChecklistOperators'
          - $ref: '#/components/schemas/BlankEnum'
        always_show_guidance:
          type: boolean
          description: Show user guidance always, regardless of answer. If False,
            guidance is conditional on answer matching guidance_answer_value with
            guidance_operator
        dependency_logic_operator:
          allOf:
          - $ref: '#/components/schemas/DependencyLogicOperatorEnum'
          description: 'Defines how multiple dependencies are evaluated. AND: All
            dependencies must be satisfied. OR: At least one dependency must be satisfied.'
        url:
          type: string
          format: uri
          readOnly: true
        checklist_name:
          type: string
          readOnly: true
        checklist_uuid:
          type: string
          format: uuid
          readOnly: true
        checklist_type:
          type: string
          readOnly: true
        checklist:
          type: string
          format: uri
      required:
      - checklist
      - checklist_name
      - checklist_type
      - checklist_uuid
      - question_options
      - url
      - uuid
    QuestionAdminRequest:
      type: object
      description: ''
      properties:
        required:
          type: boolean
        description:
          type: string
          maxLength: 4096
        user_guidance:
          type: string
          description: Additional guidance text visible to users when answering and
            reviewing
        question_type:
          allOf:
          - $ref: '#/components/schemas/QuestionTypeEnum'
          description: Type of question and expected answer format
        order:
          type: integer
          maximum: 2147483647
          minimum: 0
        min_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          nullable: true
          description: Minimum value allowed for NUMBER, YEAR, and RATING type questions
        max_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          nullable: true
          description: Maximum value allowed for NUMBER, YEAR, and RATING type questions
        allowed_file_types:
          description: List of allowed file extensions (e.g., ['.pdf', '.doc', '.docx']).
            If empty, all file types are allowed.
        allowed_mime_types:
          description: List of allowed MIME types (e.g., ['application/pdf', 'application/msword']).
            If empty, MIME type validation is not enforced. When both extensions and
            MIME types are specified, files must match both criteria for security.
        max_file_size_mb:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum file size in megabytes. If not set, no size limit is
            enforced.
        max_files_count:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Maximum number of files allowed for MULTIPLE_FILES type questions.
            If not set, no count limit is enforced.
        operator:
          oneOf:
          - $ref: '#/components/schemas/ChecklistOperators'
          - $ref: '#/components/schemas/BlankEnum'
        review_answer_value:
          nullable: true
          description: Answer value that trigger review.
        always_requires_review:
          type: boolean
          description: This question always requires review regardless of answer
        guidance_answer_value:
          nullable: true
          description: Answer value that triggers display of user guidance.
        guidance_operator:
          description: Operator to use when comparing answer with guidance_answer_value
          oneOf:
          - $ref: '#/components/schemas/ChecklistOperators'
          - $ref: '#/components/schemas/BlankEnum'
        always_show_guidance:
          type: boolean
          description: Show user guidance always, regardless of answer. If False,
            guidance is conditional on answer matching guidance_answer_value with
            guidance_operator
        dependency_logic_operator:
          allOf:
          - $ref: '#/components/schemas/DependencyLogicOperatorEnum'
          description: 'Defines how multiple dependencies are evaluated. AND: All
            dependencies must be satisfied. OR: At least one dependency must be satisfied.'
        checklist:
          type: string
          format: uri
      required:
      - checklist
    QuestionAnswer:
      type: object
      description: ''
      properties:
        question_uuid:
          type: string
          format: uuid
          readOnly: true
        question_description:
          type: string
          readOnly: true
        question_type:
          type: string
          readOnly: true
        required:
          type: boolean
          readOnly: true
        order:
          type: integer
          readOnly: true
        min_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          readOnly: true
          nullable: true
        max_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          readOnly: true
          nullable: true
        total_projects:
          type: integer
          description: Get total projects count.
          readOnly: true
        answered_projects_count:
          type: integer
          description: Get count of projects that answered this question.
          readOnly: true
        project_answers:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Get all project answers for this question.
          readOnly: true
        question_options:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: Get question options for select-type questions.
          readOnly: true
      required:
      - answered_projects_count
      - max_value
      - min_value
      - order
      - project_answers
      - question_description
      - question_options
      - question_type
      - question_uuid
      - required
      - total_projects
    QuestionDependency:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        question:
          type: string
          format: uri
        question_name:
          type: string
          readOnly: true
        depends_on_question:
          type: string
          format: uri
        depends_on_question_name:
          type: string
          readOnly: true
        required_answer_value:
          description: The answer value(s) that make this question visible
        operator:
          $ref: '#/components/schemas/ChecklistOperators'
      required:
      - depends_on_question
      - depends_on_question_name
      - question
      - question_name
      - required_answer_value
      - url
      - uuid
    QuestionDependencyRequest:
      type: object
      description: ''
      properties:
        question:
          type: string
          format: uri
        depends_on_question:
          type: string
          format: uri
        required_answer_value:
          description: The answer value(s) that make this question visible
        operator:
          $ref: '#/components/schemas/ChecklistOperators'
      required:
      - depends_on_question
      - question
      - required_answer_value
    QuestionOptions:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        label:
          type: string
          maxLength: 255
        order:
          type: integer
          maximum: 2147483647
          minimum: 0
      required:
      - label
      - uuid
    QuestionOptionsAdmin:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        label:
          type: string
          maxLength: 255
        order:
          type: integer
          maximum: 2147483647
          minimum: 0
        url:
          type: string
          format: uri
          readOnly: true
        question:
          type: string
          format: uri
        question_uuid:
          type: string
          format: uuid
          readOnly: true
      required:
      - label
      - question
      - question_uuid
      - url
      - uuid
    QuestionOptionsAdminRequest:
      type: object
      description: ''
      properties:
        label:
          type: string
          minLength: 1
          maxLength: 255
        order:
          type: integer
          maximum: 2147483647
          minimum: 0
        question:
          type: string
          format: uri
      required:
      - label
      - question
    QuestionTypeEnum:
      enum:
      - boolean
      - single_select
      - multi_select
      - text_input
      - text_area
      - number
      - date
      - file
      - multiple_files
      - phone_number
      - year
      - email
      - url
      - country
      - rating
      - datetime
      type: string
      description: ''
    QuestionWithAnswer:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        description:
          type: string
          readOnly: true
        user_guidance:
          type: string
          nullable: true
          readOnly: true
        question_type:
          allOf:
          - $ref: '#/components/schemas/QuestionTypeEnum'
          readOnly: true
          description: Type of question and expected answer format
        required:
          type: boolean
          readOnly: true
        order:
          type: integer
          readOnly: true
        existing_answer:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        question_options:
          type: array
          items: {}
          nullable: true
          readOnly: true
        min_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          readOnly: true
          nullable: true
          description: Minimum value allowed for NUMBER, YEAR, and RATING type questions
        max_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          readOnly: true
          nullable: true
          description: Maximum value allowed for NUMBER, YEAR, and RATING type questions
        allowed_file_types:
          readOnly: true
          description: List of allowed file extensions (e.g., ['.pdf', '.doc', '.docx']).
            If empty, all file types are allowed.
        allowed_mime_types:
          readOnly: true
          description: List of allowed MIME types (e.g., ['application/pdf', 'application/msword']).
            If empty, MIME type validation is not enforced. When both extensions and
            MIME types are specified, files must match both criteria for security.
        max_file_size_mb:
          type: integer
          readOnly: true
          nullable: true
          description: Maximum file size in megabytes. If not set, no size limit is
            enforced.
        max_files_count:
          type: integer
          readOnly: true
          nullable: true
          description: Maximum number of files allowed for MULTIPLE_FILES type questions.
            If not set, no count limit is enforced.
        dependencies_info:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
      required:
      - allowed_file_types
      - allowed_mime_types
      - dependencies_info
      - description
      - existing_answer
      - max_file_size_mb
      - max_files_count
      - max_value
      - min_value
      - order
      - question_options
      - question_type
      - required
      - user_guidance
      - uuid
    QuestionWithAnswerReviewer:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        description:
          type: string
          readOnly: true
        user_guidance:
          type: string
          nullable: true
          readOnly: true
        question_type:
          allOf:
          - $ref: '#/components/schemas/QuestionTypeEnum'
          readOnly: true
          description: Type of question and expected answer format
        required:
          type: boolean
          readOnly: true
        order:
          type: integer
          readOnly: true
        existing_answer:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        question_options:
          type: array
          items: {}
          nullable: true
          readOnly: true
        min_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          readOnly: true
          nullable: true
          description: Minimum value allowed for NUMBER, YEAR, and RATING type questions
        max_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,16}(?:\.\d{0,4})?$
          readOnly: true
          nullable: true
          description: Maximum value allowed for NUMBER, YEAR, and RATING type questions
        allowed_file_types:
          readOnly: true
          description: List of allowed file extensions (e.g., ['.pdf', '.doc', '.docx']).
            If empty, all file types are allowed.
        allowed_mime_types:
          readOnly: true
          description: List of allowed MIME types (e.g., ['application/pdf', 'application/msword']).
            If empty, MIME type validation is not enforced. When both extensions and
            MIME types are specified, files must match both criteria for security.
        max_file_size_mb:
          type: integer
          readOnly: true
          nullable: true
          description: Maximum file size in megabytes. If not set, no size limit is
            enforced.
        max_files_count:
          type: integer
          readOnly: true
          nullable: true
          description: Maximum number of files allowed for MULTIPLE_FILES type questions.
            If not set, no count limit is enforced.
        dependencies_info:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        operator:
          oneOf:
          - $ref: '#/components/schemas/ChecklistOperators'
          - $ref: '#/components/schemas/BlankEnum'
        review_answer_value:
          nullable: true
          description: Answer value that trigger review.
        always_requires_review:
          type: boolean
          description: This question always requires review regardless of answer
      required:
      - allowed_file_types
      - allowed_mime_types
      - dependencies_info
      - description
      - existing_answer
      - max_file_size_mb
      - max_files_count
      - max_value
      - min_value
      - order
      - question_options
      - question_type
      - required
      - user_guidance
      - uuid
    Quota:
      type: object
      properties:
        name:
          type: string
        usage:
          type: integer
        limit:
          type: integer
      required: []
      description: ''
    QuotaRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        usage:
          type: integer
        limit:
          type: integer
      required:
      - limit
      - name
      - usage
      description: ''
    QuotasUpdateRequest:
      type: object
      properties:
        quotas:
          type: object
          additionalProperties:
            type: integer
            minimum: 0
          description: Dictionary of quotas to update
      required:
      - quotas
      description: ''
    RancherApplication:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
        error_traceback:
          type: string
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          maxLength: 255
        access_url:
          type: string
          nullable: true
          readOnly: true
        runtime_state:
          type: string
          maxLength: 150
        template:
          type: string
          format: uri
        rancher_project:
          type: string
          format: uri
        namespace:
          type: string
          format: uri
        version:
          type: string
        answers:
          type: object
          additionalProperties: {}
        rancher_project_name:
          type: string
          readOnly: true
        catalog_name:
          type: string
          readOnly: true
        template_name:
          type: string
          readOnly: true
        external_url:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    RancherApplicationRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        error_message:
          type: string
        error_traceback:
          type: string
        backend_id:
          type: string
          maxLength: 255
        runtime_state:
          type: string
          maxLength: 150
        template:
          type: string
          format: uri
        rancher_project:
          type: string
          format: uri
        namespace:
          type: string
          format: uri
        namespace_name:
          type: string
          writeOnly: true
          minLength: 1
        version:
          type: string
          minLength: 1
        answers:
          type: object
          additionalProperties: {}
      required:
      - name
      - project
      - rancher_project
      - service_settings
      - template
      - version
    RancherCatalog:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        catalog_url:
          type: string
          format: uri
          maxLength: 200
        branch:
          type: string
          maxLength: 255
        commit:
          type: string
          readOnly: true
        runtime_state:
          type: string
          readOnly: true
        scope:
          type: string
        scope_type:
          allOf:
          - $ref: '#/components/schemas/RancherCatalogScopeType'
          readOnly: true
      required:
      - branch
      - catalog_url
      - commit
      - created
      - modified
      - name
      - runtime_state
      - scope
      - scope_type
      - url
      - uuid
      description: ''
    RancherCatalogCreate:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        catalog_url:
          type: string
          format: uri
          maxLength: 200
        branch:
          type: string
          maxLength: 255
        commit:
          type: string
          readOnly: true
        runtime_state:
          type: string
          readOnly: true
        scope:
          type: string
        scope_type:
          allOf:
          - $ref: '#/components/schemas/RancherCatalogScopeType'
          readOnly: true
        username:
          type: string
          maxLength: 255
        password:
          type: string
          maxLength: 255
      required:
      - branch
      - catalog_url
      - commit
      - created
      - modified
      - name
      - runtime_state
      - scope
      - scope_type
      - url
      - uuid
      description: ''
    RancherCatalogCreateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        catalog_url:
          type: string
          format: uri
          minLength: 1
          maxLength: 200
        branch:
          type: string
          minLength: 1
          maxLength: 255
        scope:
          type: string
        username:
          type: string
          maxLength: 255
        password:
          type: string
          maxLength: 255
      required:
      - branch
      - catalog_url
      - name
      - scope
      description: ''
    RancherCatalogRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        catalog_url:
          type: string
          format: uri
          minLength: 1
          maxLength: 200
        branch:
          type: string
          minLength: 1
          maxLength: 255
        scope:
          type: string
      required:
      - branch
      - catalog_url
      - name
      - scope
      description: ''
    RancherCatalogScopeType:
      enum:
      - global
      - cluster
      - project
      type: string
      description: ''
    RancherCatalogUpdate:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        catalog_url:
          type: string
          format: uri
          maxLength: 200
        branch:
          type: string
          maxLength: 255
        commit:
          type: string
          readOnly: true
        runtime_state:
          type: string
          readOnly: true
        scope:
          type: string
        scope_type:
          allOf:
          - $ref: '#/components/schemas/RancherCatalogScopeType'
          readOnly: true
      required:
      - branch
      - catalog_url
      - commit
      - created
      - modified
      - name
      - runtime_state
      - scope
      - scope_type
      - url
      - uuid
      description: ''
    RancherCatalogUpdateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        catalog_url:
          type: string
          format: uri
          minLength: 1
          maxLength: 200
        branch:
          type: string
          minLength: 1
          maxLength: 255
        scope:
          type: string
      required:
      - branch
      - catalog_url
      - name
      - scope
      description: ''
    RancherCluster:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          pattern: ^[a-z0-9]([-a-z0-9])+[a-z0-9]$
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/RancherNestedNode'
        tenant:
          type: string
          format: uri
        tenant_uuid:
          type: string
          format: uuid
          readOnly: true
        vm_project:
          type: string
          format: uri
          nullable: true
        runtime_state:
          type: string
          readOnly: true
        install_longhorn:
          type: boolean
          default: false
          description: Longhorn is a distributed block storage deployed on top of
            Kubernetes cluster
        management_security_group:
          type: string
          format: uri
          readOnly: true
        public_ips:
          type: array
          items:
            $ref: '#/components/schemas/RancherNestedPublicIP'
          readOnly: true
        capacity:
          readOnly: true
          description: 'Cluster capacity in the format {''cpu'': ''10'', ''ram'':
            ''49125240Ki'', ''pods'': ''330''}'
        requested:
          readOnly: true
          description: 'Cluster requested resources in the format {''cpu'': ''1450m'',
            ''memory'': ''884Mi'', ''pods'': ''13''}'
        kubernetes_version:
          type: string
          readOnly: true
          description: Kubernetes version used in the cluster.
        router_ips:
          type: array
          items: {}
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    RancherClusterReference:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        marketplace_uuid:
          type: string
          nullable: true
          readOnly: true
      required: []
      description: ''
    RancherClusterRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          pattern: ^[a-z0-9]([-a-z0-9])+[a-z0-9]$
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        vm_project:
          type: string
          format: uri
          nullable: true
        ssh_public_key:
          type: string
          format: uri
          writeOnly: true
        install_longhorn:
          type: boolean
          default: false
          description: Longhorn is a distributed block storage deployed on top of
            Kubernetes cluster
      required:
      - name
    RancherClusterSecurityGroupRule:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        ethertype:
          allOf:
          - $ref: '#/components/schemas/EthertypeEnum'
          description: IP protocol version - either 'IPv4' or 'IPv6'
        direction:
          allOf:
          - $ref: '#/components/schemas/DirectionEnum'
          description: Traffic direction - either 'ingress' (incoming) or 'egress'
            (outgoing)
        protocol:
          description: The network protocol (TCP, UDP, ICMP, or empty for any protocol)
          oneOf:
          - $ref: '#/components/schemas/ProtocolEnum'
          - $ref: '#/components/schemas/BlankEnum'
        from_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Starting port number in the range (1-65535)
        to_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Ending port number in the range (1-65535)
        cidr:
          type: string
          nullable: true
          description: CIDR notation for the source/destination network address range
          maxLength: 255
        description:
          type: string
          maxLength: 4096
      required:
      - uuid
      description: ''
    RancherClusterSecurityGroupRuleRequest:
      type: object
      properties:
        ethertype:
          allOf:
          - $ref: '#/components/schemas/EthertypeEnum'
          description: IP protocol version - either 'IPv4' or 'IPv6'
        direction:
          allOf:
          - $ref: '#/components/schemas/DirectionEnum'
          description: Traffic direction - either 'ingress' (incoming) or 'egress'
            (outgoing)
        protocol:
          description: The network protocol (TCP, UDP, ICMP, or empty for any protocol)
          oneOf:
          - $ref: '#/components/schemas/ProtocolEnum'
          - $ref: '#/components/schemas/BlankEnum'
        from_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Starting port number in the range (1-65535)
        to_port:
          type: integer
          maximum: 65535
          minimum: -2147483648
          nullable: true
          description: Ending port number in the range (1-65535)
        cidr:
          type: string
          nullable: true
          description: CIDR notation for the source/destination network address range
          maxLength: 255
        description:
          type: string
          maxLength: 4096
      description: ''
    RancherClusterTemplate:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/RancherClusterTemplateNode'
      required:
      - created
      - modified
      - name
      - nodes
      - uuid
      description: ''
    RancherClusterTemplateNode:
      type: object
      properties:
        min_vcpu:
          type: integer
          maximum: 32767
          minimum: 0
          title: Min vCPU (cores)
        min_ram:
          type: integer
          maximum: 2147483647
          minimum: 0
          title: Min RAM (GB)
        system_volume_size:
          type: integer
          maximum: 2147483647
          minimum: 0
          title: System volume size (GB)
        preferred_volume_type:
          type: string
          maxLength: 150
        role:
          $ref: '#/components/schemas/RancherNodeRoleEnum'
      required:
      - min_ram
      - min_vcpu
      - role
      - system_volume_size
      description: ''
    RancherCreateNode:
      type: object
      description: ''
      properties:
        cluster:
          type: string
          format: uri
        role:
          $ref: '#/components/schemas/RancherNodeRoleEnum'
        uuid:
          type: string
          format: uuid
          readOnly: true
      required:
      - cluster
      - role
      - uuid
    RancherCreateNodeRequest:
      type: object
      description: ''
      properties:
        cluster:
          type: string
          format: uri
        role:
          $ref: '#/components/schemas/RancherNodeRoleEnum'
        system_volume_size:
          type: integer
          writeOnly: true
          minimum: 64
        system_volume_type:
          type: string
          format: uri
          writeOnly: true
          nullable: true
        memory:
          type: integer
          writeOnly: true
        cpu:
          type: integer
          writeOnly: true
        subnet:
          type: string
          format: uri
          writeOnly: true
          nullable: true
        flavor:
          type: string
          format: uri
          writeOnly: true
          nullable: true
        data_volumes:
          type: array
          items:
            $ref: '#/components/schemas/DataVolumeRequest'
          writeOnly: true
        ssh_public_key:
          type: string
          format: uri
          writeOnly: true
        tenant:
          type: string
          format: uri
          writeOnly: true
      required:
      - cluster
      - role
      - subnet
    RancherHPA:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        runtime_state:
          type: string
          readOnly: true
        cluster:
          type: string
          format: uri
          readOnly: true
          nullable: true
        cluster_uuid:
          type: string
          format: uuid
          readOnly: true
        cluster_name:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
          readOnly: true
          nullable: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        namespace:
          type: string
          format: uri
          readOnly: true
          nullable: true
        namespace_uuid:
          type: string
          format: uuid
          readOnly: true
        namespace_name:
          type: string
          readOnly: true
        workload:
          type: string
          format: uri
          nullable: true
        workload_uuid:
          type: string
          format: uuid
          readOnly: true
        workload_name:
          type: string
          readOnly: true
        min_replicas:
          type: integer
          maximum: 32767
          minimum: 0
        max_replicas:
          type: integer
          maximum: 32767
          minimum: 0
        current_replicas:
          type: integer
          readOnly: true
        desired_replicas:
          type: integer
          readOnly: true
        metrics: {}
      required:
      - cluster
      - cluster_name
      - cluster_uuid
      - created
      - current_replicas
      - desired_replicas
      - metrics
      - modified
      - name
      - namespace
      - namespace_name
      - namespace_uuid
      - project
      - project_name
      - project_uuid
      - runtime_state
      - url
      - uuid
      - workload_name
      - workload_uuid
      description: ''
    RancherHPARequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        workload:
          type: string
          format: uri
          nullable: true
        min_replicas:
          type: integer
          maximum: 32767
          minimum: 0
        max_replicas:
          type: integer
          maximum: 32767
          minimum: 0
        metrics: {}
      required:
      - metrics
      - name
      description: ''
    RancherImportYaml:
      type: object
      properties:
        yaml:
          type: string
        default_namespace:
          type: string
          format: uri
          nullable: true
        namespace:
          type: string
          format: uri
          nullable: true
      required:
      - yaml
      description: ''
    RancherImportYamlRequest:
      type: object
      properties:
        yaml:
          type: string
          minLength: 1
        default_namespace:
          type: string
          format: uri
          nullable: true
        namespace:
          type: string
          format: uri
          nullable: true
      required:
      - yaml
      description: ''
    RancherIngress:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
        error_traceback:
          type: string
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          maxLength: 255
        access_url:
          type: string
          nullable: true
          readOnly: true
        runtime_state:
          type: string
          maxLength: 150
        rancher_project:
          type: string
          format: uri
        rancher_project_name:
          type: string
          readOnly: true
        namespace:
          type: string
          format: uri
        namespace_name:
          type: string
          readOnly: true
        rules: {}
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    RancherIngressRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        error_message:
          type: string
        error_traceback:
          type: string
        backend_id:
          type: string
          maxLength: 255
        runtime_state:
          type: string
          maxLength: 150
        rancher_project:
          type: string
          format: uri
        namespace:
          type: string
          format: uri
        rules: {}
      required:
      - name
      - project
      - rancher_project
      - service_settings
    RancherNamespace:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        runtime_state:
          type: string
          maxLength: 150
        project:
          type: string
          format: uri
          nullable: true
      required:
      - created
      - modified
      - name
      - url
      - uuid
    RancherNestedNamespace:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
      required:
      - name
      - url
      - uuid
      description: ''
    RancherNestedNode:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        role:
          $ref: '#/components/schemas/RancherNodeRoleEnum'
        instance:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
        backend_id:
          type: string
          maxLength: 255
        initial_data:
          readOnly: true
          description: Initial data for instance creating.
        runtime_state:
          type: string
          readOnly: true
        k8s_version:
          type: string
          readOnly: true
        docker_version:
          type: string
          readOnly: true
        cpu_allocated:
          type: number
          format: double
          readOnly: true
          nullable: true
        cpu_total:
          type: integer
          readOnly: true
          nullable: true
        ram_allocated:
          type: integer
          readOnly: true
          nullable: true
          description: Allocated RAM in Mi.
        ram_total:
          type: integer
          readOnly: true
          nullable: true
          description: Total RAM in Mi.
        pods_allocated:
          type: integer
          readOnly: true
          nullable: true
        pods_total:
          type: integer
          readOnly: true
          nullable: true
        labels:
          readOnly: true
        annotations:
          readOnly: true
      required: []
    RancherNestedNodeRequest:
      type: object
      description: ''
      properties:
        subnet:
          type: string
          format: uri
          writeOnly: true
          nullable: true
        flavor:
          type: string
          format: uri
          writeOnly: true
          nullable: true
        system_volume_size:
          type: integer
          writeOnly: true
          minimum: 64
        system_volume_type:
          type: string
          format: uri
          writeOnly: true
          nullable: true
        data_volumes:
          type: array
          items:
            $ref: '#/components/schemas/DataVolumeRequest'
          writeOnly: true
        memory:
          type: integer
          writeOnly: true
        cpu:
          type: integer
          writeOnly: true
        role:
          $ref: '#/components/schemas/RancherNodeRoleEnum'
        tenant:
          type: string
          format: uri
          writeOnly: true
        error_traceback:
          type: string
        backend_id:
          type: string
          maxLength: 255
      required:
      - role
      - subnet
    RancherNestedPublicIP:
      type: object
      properties:
        floating_ip:
          type: string
          format: uri
          readOnly: true
        floating_ip_uuid:
          type: string
          format: uuid
          readOnly: true
        ip_address:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          readOnly: true
        external_ip_address:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          readOnly: true
      required: []
      description: ''
    RancherNestedWorkload:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        name:
          type: string
          maxLength: 150
      required: []
    RancherNestedWorkloadRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
      required:
      - name
    RancherNode:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          maxLength: 150
        backend_id:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_name:
          type: string
          readOnly: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        cluster:
          type: string
          format: uri
        cluster_name:
          type: string
          readOnly: true
        cluster_uuid:
          type: string
          format: uuid
          readOnly: true
        instance:
          type: string
        instance_name:
          type: string
          readOnly: true
        instance_uuid:
          type: string
          format: uuid
          readOnly: true
        instance_marketplace_uuid:
          type: string
          format: uuid
          readOnly: true
        role:
          $ref: '#/components/schemas/RancherNodeRoleEnum'
        k8s_version:
          type: string
          readOnly: true
        docker_version:
          type: string
          readOnly: true
        cpu_allocated:
          type: number
          format: double
          readOnly: true
          nullable: true
        cpu_total:
          type: integer
          readOnly: true
          nullable: true
        ram_allocated:
          type: integer
          readOnly: true
          nullable: true
          description: Allocated RAM in Mi.
        ram_total:
          type: integer
          readOnly: true
          nullable: true
          description: Total RAM in Mi.
        pods_allocated:
          type: integer
          readOnly: true
          nullable: true
        pods_total:
          type: integer
          readOnly: true
          nullable: true
        labels:
          readOnly: true
        annotations:
          readOnly: true
        runtime_state:
          type: string
          readOnly: true
      required:
      - annotations
      - backend_id
      - cluster
      - cluster_name
      - cluster_uuid
      - cpu_allocated
      - cpu_total
      - created
      - docker_version
      - instance
      - instance_marketplace_uuid
      - instance_name
      - instance_uuid
      - k8s_version
      - labels
      - modified
      - name
      - pods_allocated
      - pods_total
      - project_uuid
      - ram_allocated
      - ram_total
      - resource_type
      - role
      - runtime_state
      - service_settings_name
      - service_settings_uuid
      - state
      - url
      - uuid
      description: ''
    RancherNodeRoleEnum:
      enum:
      - agent
      - server
      type: string
      description: ''
    RancherProject:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        runtime_state:
          type: string
          maxLength: 150
        cluster:
          type: string
          format: uri
          nullable: true
        namespaces:
          type: array
          items:
            $ref: '#/components/schemas/RancherNestedNamespace'
      required:
      - created
      - modified
      - name
      - namespaces
      - url
      - uuid
    RancherRoleScopeType:
      enum:
      - cluster
      - project
      type: string
      description: ''
    RancherService:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
        error_traceback:
          type: string
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          maxLength: 255
        access_url:
          type: string
          nullable: true
          readOnly: true
        runtime_state:
          type: string
          maxLength: 150
        namespace:
          type: string
          format: uri
        namespace_name:
          type: string
          readOnly: true
        cluster_ip:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          nullable: true
        selector:
          nullable: true
        target_workloads:
          type: array
          items:
            $ref: '#/components/schemas/RancherNestedWorkload'
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    RancherServiceCreate:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
        error_traceback:
          type: string
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          maxLength: 255
        access_url:
          type: string
          nullable: true
          readOnly: true
        runtime_state:
          type: string
          maxLength: 150
        namespace:
          type: string
          format: uri
        namespace_name:
          type: string
          readOnly: true
        cluster_ip:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          nullable: true
        selector:
          nullable: true
        target_workloads:
          type: array
          items:
            $ref: '#/components/schemas/RancherWorkloadCreate'
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required:
      - access_url
      - created
      - customer
      - customer_abbreviation
      - customer_name
      - customer_native_name
      - customer_uuid
      - is_limit_based
      - is_usage_based
      - marketplace_category_name
      - marketplace_category_uuid
      - marketplace_offering_name
      - marketplace_offering_plugin_options
      - marketplace_offering_uuid
      - marketplace_plan_uuid
      - marketplace_resource_state
      - marketplace_resource_uuid
      - modified
      - name
      - namespace_name
      - project
      - project_name
      - project_uuid
      - resource_type
      - service_name
      - service_settings
      - service_settings_error_message
      - service_settings_state
      - service_settings_uuid
      - state
      - url
      - uuid
    RancherServiceCreateRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        error_message:
          type: string
        error_traceback:
          type: string
        backend_id:
          type: string
          maxLength: 255
        runtime_state:
          type: string
          maxLength: 150
        namespace:
          type: string
          format: uri
        cluster_ip:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          nullable: true
          minLength: 1
        selector:
          nullable: true
        target_workloads:
          type: array
          items:
            $ref: '#/components/schemas/RancherWorkloadCreateRequest'
      required:
      - name
      - project
      - service_settings
    RancherServiceRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        error_message:
          type: string
        error_traceback:
          type: string
        backend_id:
          type: string
          maxLength: 255
        runtime_state:
          type: string
          maxLength: 150
        namespace:
          type: string
          format: uri
        cluster_ip:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          nullable: true
          minLength: 1
        selector:
          nullable: true
        target_workloads:
          type: array
          items:
            $ref: '#/components/schemas/RancherNestedWorkloadRequest'
      required:
      - name
      - project
      - service_settings
      - target_workloads
    RancherTemplate:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        runtime_state:
          type: string
          maxLength: 150
        catalog:
          type: string
          format: uri
          nullable: true
        cluster:
          type: string
          format: uri
          nullable: true
        project:
          type: string
          format: uri
          nullable: true
        icon:
          type: string
          format: uri
          nullable: true
        project_url:
          type: string
          format: uri
          maxLength: 500
        default_version:
          type: string
          maxLength: 255
        catalog_name:
          type: string
          readOnly: true
        versions:
          type: array
          items:
            type: string
            maxLength: 255
      required:
      - catalog_name
      - created
      - default_version
      - modified
      - name
      - url
      - uuid
      - versions
    RancherTemplateBaseQuestion:
      type: object
      properties:
        label:
          type: string
        description:
          type: string
        variable:
          type: string
        required:
          type: boolean
        validate_:
          title: 'Validate '
        type:
          $ref: '#/components/schemas/RancherTemplateQuestionType'
        default:
          type: string
          nullable: true
        group:
          type: string
        showIf:
          type: string
      required:
      - label
      - type
      - variable
      description: ''
    RancherTemplateQuestion:
      type: object
      properties:
        label:
          type: string
        description:
          type: string
        variable:
          type: string
        required:
          type: boolean
        validate_:
          title: 'Validate '
        type:
          $ref: '#/components/schemas/RancherTemplateQuestionType'
        default:
          type: string
          nullable: true
        group:
          type: string
        showIf:
          type: string
        subquestions:
          type: array
          items:
            $ref: '#/components/schemas/RancherTemplateBaseQuestion'
        showSubquestionIf:
          type: string
      required:
      - label
      - type
      - variable
      description: ''
    RancherTemplateQuestionType:
      enum:
      - boolean
      - string
      - enum
      - secret
      type: string
      description: ''
    RancherUser:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        user:
          type: string
          format: uri
        cluster_roles:
          type: array
          items:
            $ref: '#/components/schemas/RancherUserClusterLink'
          readOnly: true
        project_roles:
          type: array
          items:
            $ref: '#/components/schemas/RancherUserProjectLink'
          readOnly: true
        settings:
          type: string
          format: uri
        is_active:
          type: boolean
        user_name:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        full_name:
          type: string
          readOnly: true
      required:
      - cluster_roles
      - full_name
      - project_roles
      - settings
      - url
      - user
      - user_name
      - uuid
      description: ''
    RancherUserClusterLink:
      type: object
      properties:
        cluster:
          type: string
          format: uri
        role:
          type: string
          format: uri
        cluster_name:
          type: string
          readOnly: true
        cluster_uuid:
          type: string
          format: uuid
          readOnly: true
      required:
      - cluster
      - cluster_name
      - cluster_uuid
      - role
      description: ''
    RancherUserProjectLink:
      type: object
      properties:
        project:
          type: string
          format: uri
        role:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
      required:
      - project
      - project_name
      - project_uuid
      - role
      description: ''
    RancherWorkload:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        runtime_state:
          type: string
          maxLength: 150
        cluster:
          type: string
          format: uri
          nullable: true
        cluster_uuid:
          type: string
          format: uuid
          readOnly: true
        cluster_name:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
          nullable: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        namespace:
          type: string
          format: uri
          nullable: true
        namespace_uuid:
          type: string
          format: uuid
          readOnly: true
        namespace_name:
          type: string
          readOnly: true
        scale:
          type: integer
          maximum: 32767
          minimum: 0
      required:
      - cluster_name
      - cluster_uuid
      - created
      - modified
      - name
      - namespace_name
      - namespace_uuid
      - project_name
      - project_uuid
      - scale
      - url
      - uuid
      description: ''
    RancherWorkloadCreate:
      type: object
      properties:
        url:
          type: string
          format: uri
      required:
      - url
      description: ''
    RancherWorkloadCreateRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
      required:
      - url
      description: ''
    RancherWorkloadRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        runtime_state:
          type: string
          maxLength: 150
        cluster:
          type: string
          format: uri
          nullable: true
        project:
          type: string
          format: uri
          nullable: true
        namespace:
          type: string
          format: uri
          nullable: true
        scale:
          type: integer
          maximum: 32767
          minimum: 0
      required:
      - name
      - scale
      description: ''
    ReassignItemRequest:
      type: object
      description: ''
      properties:
        reviewer_pool_entry_uuid:
          type: string
          format: uuid
          description: UUID of the pool entry for the new reviewer
        manager_notes:
          type: string
          description: Notes to include in the reassignment notification
      required:
      - reviewer_pool_entry_uuid
    ReassignItemResponse:
      type: object
      description: ''
      properties:
        detail:
          type: string
        new_item_uuid:
          type: string
          format: uuid
        new_batch_uuid:
          type: string
          format: uuid
      required:
      - detail
      - new_batch_uuid
      - new_item_uuid
    ReconcileRequestRequest:
      type: object
      description: ''
      properties:
        year:
          type: integer
          maximum: 2100
          minimum: 2000
        month:
          type: integer
          maximum: 12
          minimum: 1
        settings_uuid:
          type: string
          format: uuid
        force:
          type: boolean
          default: false
          description: Force reconciliation even if not validated
      required:
      - month
      - year
    ReferenceNumberRequest:
      type: object
      properties:
        reference_number:
          type: string
          description: Reference number associated with the invoice.
          maxLength: 300
      description: ''
    RelationshipTypeEnum:
      enum:
      - employment
      - consulting
      - equity
      - board
      - royalties
      - gifts
      - other
      type: string
      description: ''
    RemoteAllocation:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        node_limit:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
        remote_project_identifier:
          type: string
          nullable: true
          description: The identifier of the project in the remote OpenPortal instance.
          maxLength: 64
        node_usage:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          readOnly: true
        is_active:
          type: boolean
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    RemoteAllocationRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        node_limit:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
        remote_project_identifier:
          type: string
          nullable: true
          description: The identifier of the project in the remote OpenPortal instance.
          maxLength: 64
      required:
      - name
      - project
      - service_settings
    RemoteAllocationSetLimits:
      type: object
      properties:
        node_limit:
          type: integer
          minimum: -1
      required:
      - node_limit
      description: ''
    RemoteAllocationSetLimitsRequest:
      type: object
      properties:
        node_limit:
          type: integer
          minimum: -1
      required:
      - node_limit
      description: ''
    RemoteAssociation:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        allocation:
          type: string
          format: uri
      required:
      - allocation
      - uuid
      description: ''
    RemoteCredentialsRequest:
      type: object
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
        token:
          type: string
          minLength: 1
      required:
      - api_url
      - token
      description: ''
    RemoteCustomer:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
        abbreviation:
          type: string
          readOnly: true
        phone_number:
          type: string
          readOnly: true
        email:
          type: string
          readOnly: true
      required:
      - abbreviation
      - email
      - name
      - phone_number
      - uuid
      description: ''
    RemoteEduteamsRequestRequest:
      type: object
      properties:
        cuid:
          type: string
          minLength: 1
          maxLength: 256
      required:
      - cuid
      description: ''
    RemoteEduteamsUUID:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
      required:
      - uuid
      description: ''
    RemoteOffering:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
        type:
          type: string
          readOnly: true
        state:
          type: string
          readOnly: true
        category_title:
          type: string
          readOnly: true
      required:
      - category_title
      - name
      - state
      - type
      - uuid
      description: ''
    RemoteOfferingCreateRequest:
      type: object
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
        token:
          type: string
          minLength: 1
        remote_offering_uuid:
          type: string
          format: uuid
        local_category_uuid:
          type: string
          format: uuid
        local_customer_uuid:
          type: string
          format: uuid
        remote_customer_uuid:
          type: string
          format: uuid
      required:
      - api_url
      - local_category_uuid
      - local_customer_uuid
      - remote_customer_uuid
      - remote_offering_uuid
      - token
      description: ''
    RemoteOfferingCreateResponse:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
      required:
      - uuid
      description: ''
    RemoteProjectUpdateRequest:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        state:
          type: string
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        reviewed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Timestamp when the review was completed
        reviewed_by_full_name:
          type: string
          readOnly: true
        reviewed_by_uuid:
          type: string
          format: uuid
          readOnly: true
        review_comment:
          type: string
          nullable: true
          description: Optional comment provided during review
        old_name:
          type: string
          maxLength: 500
        new_name:
          type: string
          maxLength: 500
        old_description:
          type: string
          maxLength: 4096
        new_description:
          type: string
          maxLength: 4096
        old_end_date:
          type: string
          format: date
          nullable: true
        new_end_date:
          type: string
          format: date
          nullable: true
        old_oecd_fos_2007_code:
          type: string
          nullable: true
          maxLength: 5
        old_oecd_fos_2007_label:
          type: string
          readOnly: true
        new_oecd_fos_2007_code:
          type: string
          nullable: true
          maxLength: 5
        new_oecd_fos_2007_label:
          type: string
          readOnly: true
        old_is_industry:
          type: boolean
          nullable: true
        new_is_industry:
          type: boolean
          nullable: true
        created_by:
          type: integer
          nullable: true
      required:
      - created
      - customer_name
      - customer_uuid
      - new_oecd_fos_2007_label
      - offering_name
      - offering_uuid
      - old_oecd_fos_2007_label
      - reviewed_at
      - reviewed_by_full_name
      - reviewed_by_uuid
      - state
      - uuid
      description: ''
    RemoteResourceOrder:
      type: object
      description: ''
      properties:
        order_uuid:
          type: string
          format: uuid
          readOnly: true
          description: Order UUID
        remote_state:
          allOf:
          - $ref: '#/components/schemas/RemoteResourceOrderRemoteStateEnum'
          readOnly: true
          description: Remote order state
        local_state:
          allOf:
          - $ref: '#/components/schemas/OrderState'
          readOnly: true
          description: Local order state
        sync_status:
          allOf:
          - $ref: '#/components/schemas/SyncStatusEnum'
          readOnly: true
          description: 'Sync status: in_sync, out_of_sync, sync_failed'
      required:
      - local_state
      - order_uuid
      - remote_state
      - sync_status
    RemoteResourceOrderRemoteStateEnum:
      enum:
      - 1
      - 7
      - 8
      - 9
      - 2
      - 3
      - 4
      - 5
      - 6
      type: integer
      description: ''
    RemoteResourceSyncStatus:
      type: object
      description: ''
      properties:
        local_state:
          allOf:
          - $ref: '#/components/schemas/ResourceState'
          readOnly: true
          description: Local resource state
        remote_state:
          readOnly: true
          nullable: true
          description: Remote resource state
          oneOf:
          - $ref: '#/components/schemas/RemoteResourceSyncStatusRemoteStateEnum'
          - $ref: '#/components/schemas/NullEnum'
        sync_status:
          allOf:
          - $ref: '#/components/schemas/SyncStatusEnum'
          readOnly: true
          description: 'Sync status: in_sync, out_of_sync, sync_failed'
        last_sync:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Last sync timestamp
      required:
      - last_sync
      - local_state
      - remote_state
      - sync_status
    RemoteResourceSyncStatusRemoteStateEnum:
      enum:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      type: integer
      description: ''
    RemoteResourceTeamMember:
      type: object
      description: ''
      properties:
        full_name:
          type: string
          readOnly: true
          description: Full name
        local_role:
          type: string
          readOnly: true
          description: Local role
        remote_role:
          type: string
          readOnly: true
          description: Remote role
        sync_status:
          allOf:
          - $ref: '#/components/schemas/SyncStatusEnum'
          readOnly: true
          description: 'Sync status: in_sync, out_of_sync, sync_failed'
      required:
      - full_name
      - local_role
      - remote_role
      - sync_status
    RemoteSynchronisation:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        api_url:
          type: string
          format: uri
          maxLength: 200
        token:
          type: string
          maxLength: 255
        remote_organization_uuid:
          type: string
          format: uuid
        remote_organization_name:
          type: string
          maxLength: 255
        local_service_provider:
          type: string
          format: uri
        local_service_provider_name:
          type: string
          readOnly: true
        is_active:
          type: boolean
        last_execution:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        last_output:
          type: string
          readOnly: true
        get_state_display:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        remotelocalcategory_set:
          type: array
          items:
            $ref: '#/components/schemas/NestedRemoteLocalCategory'
      required:
      - api_url
      - created
      - error_message
      - get_state_display
      - last_execution
      - last_output
      - local_service_provider
      - local_service_provider_name
      - modified
      - remote_organization_name
      - remote_organization_uuid
      - remotelocalcategory_set
      - token
      - url
      - uuid
    RemoteSynchronisationRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          maxLength: 200
        token:
          type: string
          minLength: 1
          maxLength: 255
        remote_organization_uuid:
          type: string
          format: uuid
        remote_organization_name:
          type: string
          minLength: 1
          maxLength: 255
        local_service_provider:
          type: string
          format: uri
        is_active:
          type: boolean
        remotelocalcategory_set:
          type: array
          items:
            $ref: '#/components/schemas/NestedRemoteLocalCategoryRequest'
      required:
      - api_url
      - local_service_provider
      - remote_organization_name
      - remote_organization_uuid
      - remotelocalcategory_set
      - token
    RemoveOfferingComponentRequest:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID of the component to remove
      required:
      - uuid
      description: ''
    RemovePartitionRequest:
      type: object
      properties:
        partition_uuid:
          type: string
          format: uuid
      required:
      - partition_uuid
      description: ''
    RemoveSoftwareCatalogRequest:
      type: object
      properties:
        offering_catalog_uuid:
          type: string
          format: uuid
          description: UUID of the offering catalog to remove
      required:
      - offering_catalog_uuid
      description: ''
    RenewalEstimateComponent:
      type: object
      properties:
        component_type:
          type: string
        component_name:
          type: string
        billing_type:
          type: string
        billing_period:
          type: string
          nullable: true
        current_limit:
          type: integer
        new_limit:
          type: integer
        unit_price:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        measured_unit:
          type: string
        period_description:
          type: string
        total:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
      required:
      - billing_period
      - billing_type
      - component_name
      - component_type
      - current_limit
      - measured_unit
      - new_limit
      - period_description
      - total
      - unit_price
      description: ''
    RenewalEstimateRequestRequest:
      type: object
      properties:
        extension_months:
          type: integer
          maximum: 60
          minimum: 1
        limits:
          type: object
          additionalProperties:
            type: integer
            minimum: 0
      required:
      - extension_months
      description: ''
    RenewalEstimateResponse:
      type: object
      properties:
        components:
          type: array
          items:
            $ref: '#/components/schemas/RenewalEstimateComponent'
        subscription_total:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        limit_change_total:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        total:
          type: string
          format: decimal
          pattern: ^-?\d{0,12}(?:\.\d{0,10})?$
        remaining_days:
          type: integer
        new_end_date:
          type: string
          format: date
      required:
      - components
      - limit_change_total
      - new_end_date
      - remaining_days
      - subscription_total
      - total
      description: ''
    ReplicationStats:
      type: object
      description: ''
      properties:
        is_replica:
          type: boolean
          readOnly: true
          description: Whether this database is a replica
        wal_bytes:
          type: integer
          readOnly: true
          nullable: true
          description: Write-ahead log size in bytes
        replication_lag_bytes:
          type: integer
          readOnly: true
          nullable: true
          description: Replication lag in bytes (only for replicas)
      required:
      - is_replica
      - replication_lag_bytes
      - wal_bytes
    ReportSection:
      type: object
      properties:
        header:
          type: string
          description: Section header text
        body:
          type: string
          description: Section body content
      required: []
      description: ''
    ReportSectionRequest:
      type: object
      properties:
        header:
          type: string
          minLength: 1
          description: Section header text
        body:
          type: string
          minLength: 1
          description: Section body content
      required:
      - body
      - header
      description: ''
    RequestType:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        issue_type_name:
          type: string
          maxLength: 255
        order:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Display order. First type (lowest order) is the default.
      required:
      - issue_type_name
      - name
      - url
      - uuid
    RequestTypeAdmin:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        issue_type_name:
          type: string
          maxLength: 255
        backend_id:
          type: integer
          readOnly: true
          nullable: true
          description: Backend ID for synced types. Null for manually created types.
        backend_name:
          type: string
          readOnly: true
          nullable: true
        is_active:
          type: boolean
          description: Whether this request type is available for issue creation.
        order:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Display order. First type (lowest order) is the default.
        is_synced:
          type: boolean
          description: Returns True if the request type was synced from a backend.
          readOnly: true
      required:
      - backend_id
      - backend_name
      - is_synced
      - issue_type_name
      - name
      - url
      - uuid
    RequestTypeAdminRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        issue_type_name:
          type: string
          minLength: 1
          maxLength: 255
        is_active:
          type: boolean
          description: Whether this request type is available for issue creation.
        order:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Display order. First type (lowest order) is the default.
      required:
      - issue_type_name
      - name
    RequestTypes:
      enum:
      - Create
      - Update
      - Terminate
      - Restore
      type: string
      description: ''
    RequestedOffering:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/RequestedOfferingStates'
          readOnly: true
        offering:
          type: string
          format: uri
        offering_name:
          type: string
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        provider_name:
          type: string
          readOnly: true
        category_uuid:
          type: string
          format: uuid
          readOnly: true
        category_name:
          type: string
          readOnly: true
        call_managing_organisation:
          type: string
          readOnly: true
        attributes: {}
        plan:
          type: string
          format: uri
          nullable: true
        plan_details:
          allOf:
          - $ref: '#/components/schemas/BasePublicPlan'
          readOnly: true
        options:
          allOf:
          - $ref: '#/components/schemas/OfferingOptions'
          readOnly: true
        components:
          type: array
          items:
            $ref: '#/components/schemas/OfferingComponent'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        url:
          type: string
          readOnly: true
        approved_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        created_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        created_by_name:
          type: string
          readOnly: true
        approved_by_name:
          type: string
          readOnly: true
        description:
          type: string
          maxLength: 4096
      required:
      - approved_by
      - approved_by_name
      - call_managing_organisation
      - category_name
      - category_uuid
      - components
      - created
      - created_by
      - created_by_name
      - offering
      - offering_name
      - offering_uuid
      - options
      - plan_details
      - provider_name
      - state
      - url
      - uuid
    RequestedOfferingRequest:
      type: object
      description: ''
      properties:
        offering:
          type: string
          format: uri
        attributes: {}
        plan:
          type: string
          format: uri
          nullable: true
        description:
          type: string
          maxLength: 4096
      required:
      - offering
    RequestedOfferingStates:
      enum:
      - requested
      - accepted
      - canceled
      type: string
      description: ''
    RequestedResource:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          readOnly: true
        requested_offering:
          allOf:
          - $ref: '#/components/schemas/NestedRequestedOffering'
          readOnly: true
        resource:
          type: string
          format: uri
          readOnly: true
          nullable: true
        resource_name:
          type: string
          readOnly: true
        call_resource_template:
          type: string
          readOnly: true
        call_resource_template_name:
          type: string
          readOnly: true
        attributes: {}
        limits: {}
        description:
          type: string
          maxLength: 4096
        created_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        created_by_name:
          type: string
          readOnly: true
      required:
      - call_resource_template
      - call_resource_template_name
      - created_by
      - created_by_name
      - requested_offering
      - resource
      - resource_name
      - url
      - uuid
    RequestedResourceRequest:
      type: object
      description: ''
      properties:
        attributes: {}
        limits: {}
        description:
          type: string
          maxLength: 4096
        requested_offering_uuid:
          type: string
          format: uuid
          writeOnly: true
        call_resource_template_uuid:
          type: string
          format: uuid
          writeOnly: true
    Resource:
      type: object
      description: ''
      properties:
        offering:
          type: string
          format: uri
        offering_name:
          type: string
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_description:
          type: string
          readOnly: true
        offering_image:
          type: string
          format: uri
          readOnly: true
        offering_thumbnail:
          type: string
          format: uri
          readOnly: true
        offering_type:
          type: string
          readOnly: true
        offering_shared:
          type: boolean
          description: Accessible to all customers.
          readOnly: true
        offering_billable:
          type: boolean
          description: Purchase and usage is invoiced.
          readOnly: true
        offering_plugin_options:
          description: Public data used by specific plugin, such as storage mode for
            OpenStack.
          readOnly: true
        provider_name:
          type: string
          readOnly: true
        provider_uuid:
          type: string
          format: uuid
          readOnly: true
        provider_slug:
          type: string
          readOnly: true
        category_title:
          type: string
          readOnly: true
        category_uuid:
          type: string
          format: uuid
          readOnly: true
        category_icon:
          type: string
          format: uri
          readOnly: true
        plan:
          type: string
          format: uri
        plan_unit:
          allOf:
          - $ref: '#/components/schemas/BillingUnit'
          readOnly: true
          nullable: true
        plan_name:
          type: string
          readOnly: true
          nullable: true
        plan_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        plan_description:
          type: string
          readOnly: true
          nullable: true
        attributes:
          type: object
          additionalProperties: {}
          readOnly: true
        limits:
          type: object
          additionalProperties:
            type: integer
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        scope:
          type: string
          readOnly: true
        description:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/ResourceState'
          readOnly: true
        resource_uuid:
          type: string
          format: uuid
          readOnly: true
          nullable: true
        backend_id:
          type: string
          readOnly: true
        effective_id:
          type: string
          readOnly: true
        resource_type:
          type: string
          nullable: true
          readOnly: true
        project:
          type: string
          format: uri
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_description:
          type: string
          readOnly: true
        project_end_date:
          type: string
          format: date
          nullable: true
          description: The date is inclusive. Once reached, all project resource will
            be scheduled for termination.
          readOnly: true
        project_end_date_requested_by:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        offering_slug:
          type: string
          readOnly: true
        parent_offering_uuid:
          type: string
          format: uuid
          readOnly: true
        parent_offering_name:
          type: string
          readOnly: true
        parent_offering_slug:
          type: string
          readOnly: true
        offering_backend_id:
          type: string
          readOnly: true
        parent_uuid:
          type: string
          format: uuid
          readOnly: true
        parent_name:
          type: string
          readOnly: true
        backend_metadata:
          allOf:
          - $ref: '#/components/schemas/BackendMetadata'
          readOnly: true
        is_usage_based:
          type: boolean
          readOnly: true
        is_limit_based:
          type: boolean
          readOnly: true
        name:
          type: string
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        current_usages:
          type: object
          additionalProperties:
            type: integer
          readOnly: true
        can_terminate:
          type: boolean
          readOnly: true
        report:
          type: array
          items:
            $ref: '#/components/schemas/ReportSection'
          readOnly: true
        end_date:
          type: string
          format: date
          nullable: true
          description: The date is inclusive. Once reached, a resource will be scheduled
            for termination.
        end_date_requested_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        username:
          type: string
          nullable: true
          readOnly: true
        limit_usage:
          type: object
          additionalProperties:
            type: number
            format: double
          readOnly: true
        downscaled:
          type: boolean
        restrict_member_access:
          type: boolean
          readOnly: true
        paused:
          type: boolean
        endpoints:
          type: array
          items:
            $ref: '#/components/schemas/NestedEndpoint'
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        options:
          readOnly: true
          nullable: true
        available_actions:
          type: array
          items:
            type: string
          readOnly: true
        last_sync:
          type: string
          format: date-time
          readOnly: true
        order_in_progress:
          allOf:
          - $ref: '#/components/schemas/OrderDetails'
          readOnly: true
          nullable: true
        creation_order:
          allOf:
          - $ref: '#/components/schemas/OrderDetails'
          readOnly: true
          nullable: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        project_slug:
          type: string
          readOnly: true
        customer_slug:
          type: string
          readOnly: true
        user_requires_reconsent:
          type: boolean
          description: Check if the current user needs to re-consent for this resource's
            offering.
          readOnly: true
        renewal_date:
          type: object
          additionalProperties:
            type: string
            format: date
          nullable: true
          readOnly: true
        offering_state:
          allOf:
          - $ref: '#/components/schemas/OfferingState'
          readOnly: true
        offering_components:
          type: array
          items:
            $ref: '#/components/schemas/OfferingComponent'
          readOnly: true
      required: []
    ResourceBackendIDRequest:
      type: object
      properties:
        backend_id:
          type: string
          maxLength: 255
      description: ''
    ResourceBackendMetadataRequest:
      type: object
      properties:
        backend_metadata: {}
      required:
      - backend_metadata
      description: ''
    ResourceDownscaledRequest:
      type: object
      properties:
        downscaled:
          type: boolean
      description: ''
    ResourceEndDateByProviderRequest:
      type: object
      properties:
        end_date:
          type: string
          format: date
          nullable: true
          description: The date is inclusive. Once reached, a resource will be scheduled
            for termination.
      description: ''
    ResourceLimitPeriod:
      type: object
      properties:
        start:
          type: string
          description: Start date of the resource limit period
        end:
          type: string
          description: End date of the resource limit period
        quantity:
          type: integer
          description: Quantity of resources consumed during this period
        billing_periods:
          type: integer
          description: Number of billing periods
        total:
          type: string
          description: Total amount for this period
      required: []
      description: ''
    ResourceMissingUsage:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID of the resource
        name:
          type: string
          description: Name of the resource
        state:
          type: string
          description: Current state of the resource
        created:
          type: string
          format: date-time
          description: Creation date of the resource
        offering_name:
          type: string
          description: Name of the offering
        offering_uuid:
          type: string
          format: uuid
          description: UUID of the offering
        provider_name:
          type: string
          description: Name of the service provider
        provider_uuid:
          type: string
          format: uuid
          description: UUID of the service provider
        customer_name:
          type: string
          description: Name of the customer organization
        customer_uuid:
          type: string
          format: uuid
          description: UUID of the customer organization
        project_name:
          type: string
          description: Name of the project
        project_uuid:
          type: string
          format: uuid
          description: UUID of the project
        last_usage_date:
          type: string
          format: date-time
          nullable: true
          description: Date of the last usage report
        days_since_last_report:
          type: integer
          nullable: true
          description: Number of days since last usage report
      required:
      - created
      - customer_name
      - customer_uuid
      - days_since_last_report
      - last_usage_date
      - name
      - offering_name
      - offering_uuid
      - project_name
      - project_uuid
      - provider_name
      - provider_uuid
      - state
      - uuid
    ResourceOffering:
      type: object
      properties:
        name:
          type: string
          maxLength: 150
        uuid:
          type: string
          format: uuid
          readOnly: true
      required:
      - name
      - uuid
      description: ''
    ResourceOptionsRequest:
      type: object
      properties:
        options:
          nullable: true
      description: ''
    ResourcePausedRequest:
      type: object
      properties:
        paused:
          type: boolean
      description: ''
    ResourcePlanPeriod:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        plan_name:
          type: string
          readOnly: true
        plan_uuid:
          type: string
          format: uuid
          readOnly: true
        start:
          type: string
          format: date-time
          nullable: true
        end:
          type: string
          format: date-time
          nullable: true
        components:
          type: array
          items:
            $ref: '#/components/schemas/BaseComponentUsage'
      required:
      - components
      - plan_name
      - plan_uuid
      - uuid
      description: ''
    ResourceProvisioningStats:
      type: object
      properties:
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the offering
        offering_name:
          type: string
          readOnly: true
          description: Name of the offering
        service_provider_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the service provider
        service_provider_name:
          type: string
          readOnly: true
          description: Name of the service provider
        provisioning_count:
          type: integer
          readOnly: true
          description: Total finished provisioning attempts (DONE + ERRED)
        provisioning_success_count:
          type: integer
          readOnly: true
          description: Total successful provisioning attempts (DONE)
        provisioning_error_count:
          type: integer
          readOnly: true
          description: Total failed provisioning attempts (ERRED)
        provisioning_in_progress_count:
          type: integer
          readOnly: true
          description: Total currently in-progress provisioning attempts
        provisioning_success_rate:
          type: number
          format: double
          readOnly: true
          description: Rate of successful provisioning (0.0 to 1.0)
        avg_provisioning_duration:
          type: number
          format: double
          readOnly: true
          description: Average duration in seconds from Executing to Terminal state
        avg_pending_duration:
          type: number
          format: double
          readOnly: true
          description: Average duration in seconds from Creation to Executing state
      required:
      - avg_pending_duration
      - avg_provisioning_duration
      - offering_name
      - offering_uuid
      - provisioning_count
      - provisioning_error_count
      - provisioning_in_progress_count
      - provisioning_success_count
      - provisioning_success_rate
      - service_provider_name
      - service_provider_uuid
      description: ''
    ResourceReallocateLimitsRequest:
      type: object
      properties:
        limits:
          type: object
          additionalProperties:
            type: integer
            minimum: 1
        targets:
          type: array
          items:
            $ref: '#/components/schemas/ResourceReallocateTargetRequest'
      required:
      - limits
      - targets
      description: ''
    ResourceReallocateLimitsResponse:
      type: object
      properties:
        source_order_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the source order for limit reallocation
        target_order_uuids:
          type: array
          items:
            type: string
            format: uuid
          readOnly: true
          description: List of UUIDs for target orders receiving the reallocated limits
      required:
      - source_order_uuid
      - target_order_uuids
      description: ''
    ResourceReallocateTargetRequest:
      type: object
      properties:
        resource_uuid:
          type: string
          format: uuid
        allocated_limits:
          type: object
          additionalProperties:
            type: integer
            minimum: 1
      required:
      - allocated_limits
      - resource_uuid
      description: ''
    ResourceRenewRequest:
      type: object
      description: ''
      properties:
        extension_months:
          type: integer
          maximum: 60
          minimum: 12
          description: Number of months to extend the subscription by.
        limits:
          type: object
          additionalProperties:
            type: integer
            minimum: 0
          description: Optional new limits for the resource. Supports upgrades only.
        request_comment:
          type: string
          description: Optional comment for the renewal request.
          maxLength: 255
        attachment:
          type: string
          format: binary
          description: Optional PDF attachment for the renewal request.
      required:
      - extension_months
    ResourceReportRequest:
      type: object
      properties:
        report:
          type: array
          items:
            $ref: '#/components/schemas/ReportSectionRequest'
      required:
      - report
      description: ''
    ResourceRequest:
      type: object
      description: ''
      properties:
        offering:
          type: string
          format: uri
        plan:
          type: string
          format: uri
        name:
          type: string
          minLength: 1
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        end_date:
          type: string
          format: date
          nullable: true
          description: The date is inclusive. Once reached, a resource will be scheduled
            for termination.
        downscaled:
          type: boolean
        paused:
          type: boolean
      required:
      - name
      - offering
    ResourceResponseStatus:
      type: object
      properties:
        status:
          type: string
          readOnly: true
          description: Status of the resource response
      required:
      - status
      description: ''
    ResourceRestrictMemberAccessRequest:
      type: object
      properties:
        restrict_member_access:
          type: boolean
      description: ''
    ResourceSetLimitsRequest:
      type: object
      properties:
        limits:
          description: Dictionary mapping component types to their new limit values
      required:
      - limits
      description: ''
    ResourceSetStateErredRequest:
      type: object
      properties:
        error_message:
          type: string
        error_traceback:
          type: string
      description: ''
    ResourceSlugRequest:
      type: object
      properties:
        slug:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
      required:
      - slug
      description: ''
    ResourceState:
      enum:
      - Creating
      - OK
      - Erred
      - Updating
      - Terminating
      - Terminated
      type: string
      description: ''
    ResourceSuggestNameRequest:
      type: object
      properties:
        project:
          type: string
          format: uuid
        offering:
          type: string
          format: uuid
      required:
      - offering
      - project
      description: ''
    ResourceSwitchPlanRequest:
      type: object
      properties:
        plan:
          type: string
          format: uri
      required:
      - plan
      description: ''
    ResourceTerminateRequest:
      type: object
      properties:
        attributes:
          title: Termination attributes
          description: Optional attributes/parameters to pass to the termination operation
      description: ''
    ResourceUpdate:
      type: object
      properties:
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        end_date:
          type: string
          format: date
          nullable: true
          description: The date is inclusive. Once reached, a resource will be scheduled
            for termination.
      required:
      - name
      description: ''
    ResourceUpdateLimitsRequest:
      type: object
      properties:
        limits:
          type: object
          additionalProperties:
            type: integer
            minimum: 0
        request_comment:
          type: string
          nullable: true
          maxLength: 255
      required:
      - limits
      description: ''
    ResourceUpdateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        end_date:
          type: string
          format: date
          nullable: true
          description: The date is inclusive. Once reached, a resource will be scheduled
            for termination.
      required:
      - name
      description: ''
    ResourceUsageByAffiliation:
      type: object
      description: ''
      properties:
        affiliation:
          type: string
          description: User affiliation value
        component_type:
          type: string
          description: Component type
        total_usage:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Total usage
        total_cost:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Total cost
        resource_count:
          type: integer
          description: Number of resources
      required:
      - affiliation
      - component_type
      - resource_count
      - total_cost
      - total_usage
    ResourceUsageByCustomer:
      type: object
      description: ''
      properties:
        customer_uuid:
          type: string
          format: uuid
          description: UUID of the customer
        customer_name:
          type: string
          description: Name of the customer
        customer_abbreviation:
          type: string
          nullable: true
          description: Abbreviation of the customer
        resources_ok:
          type: integer
          description: Number of OK resources
        resources_erred:
          type: integer
          description: Number of erred resources
        resources_total:
          type: integer
          description: Total number of active resources
        total_cost:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Total cost of resources
        usages:
          type: object
          additionalProperties:
            type: string
            format: decimal
            pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Component usages keyed by component type
        limits:
          type: object
          additionalProperties:
            type: integer
          description: Resource limits keyed by limit name
      required:
      - customer_abbreviation
      - customer_name
      - customer_uuid
      - limits
      - resources_erred
      - resources_ok
      - resources_total
      - total_cost
      - usages
    ResourceUsageByOrgType:
      type: object
      description: ''
      properties:
        organization_type:
          type: string
          nullable: true
          description: SCHAC organization type URN
        component_type:
          type: string
          description: Component type (e.g., cpu, gpu)
        usage:
          type: string
          format: decimal
          pattern: ^-?\d{0,18}(?:\.\d{0,2})?$
          description: Total usage for this component
        resource_count:
          type: integer
          description: Number of resources
      required:
      - component_type
      - organization_type
      - resource_count
      - usage
    ResourceUser:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        resource:
          type: string
          format: uri
        role:
          type: string
          format: uri
        user:
          type: string
          format: uri
        resource_uuid:
          type: string
          format: uuid
          readOnly: true
        role_uuid:
          type: string
          format: uuid
          readOnly: true
        user_uuid:
          type: string
          format: uuid
          readOnly: true
        resource_name:
          type: string
          readOnly: true
        role_name:
          type: string
          readOnly: true
        user_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        user_full_name:
          type: string
          readOnly: true
      required:
      - resource
      - resource_name
      - resource_uuid
      - role
      - role_name
      - role_uuid
      - user
      - user_full_name
      - user_username
      - user_uuid
      - uuid
      description: ''
    ResourceUserRequest:
      type: object
      properties:
        resource:
          type: string
          format: uri
        role:
          type: string
          format: uri
        user:
          type: string
          format: uri
      required:
      - resource
      - role
      - user
      description: ''
    ResourcesGeographySummary:
      type: object
      description: ''
      properties:
        total_resources:
          type: integer
          description: Total number of active resources
        countries_count:
          type: integer
          description: Number of countries with active resources
        org_groups_count:
          type: integer
          description: Number of organization groups with active resources
        offerings_count:
          type: integer
          description: Number of offerings with active resources
      required:
      - countries_count
      - offerings_count
      - org_groups_count
      - total_resources
    ResourcesLimits:
      type: object
      properties:
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the offering
        name:
          type: string
          readOnly: true
          description: Name of the limit
        value:
          type: integer
          readOnly: true
          description: Limit value
        offering_country:
          type: string
          readOnly: true
          description: Country of the offering
        organization_group_name:
          type: string
          readOnly: true
          description: Name of the organization group
        organization_group_uuid:
          type: string
          readOnly: true
          description: UUID of the organization group
      required:
      - name
      - offering_country
      - offering_uuid
      - organization_group_name
      - organization_group_uuid
      - value
      description: ''
    ReviewCommentRequest:
      type: object
      properties:
        comment:
          type: string
          minLength: 1
          description: Optional comment for review
      description: ''
    ReviewStrategyEnum:
      enum:
      - after_round
      - after_proposal
      type: string
      description: ''
    ReviewSubmitRequest:
      type: object
      properties:
        summary_score:
          type: integer
          maximum: 32767
          minimum: 0
        summary_public_comment:
          type: string
        summary_private_comment:
          type: string
      description: ''
    ReviewerAffiliation:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        organization:
          type: string
          format: uuid
          nullable: true
        organization_name:
          type: string
          description: Organization name (used when not linked to Waldur org)
          maxLength: 255
        organization_name_display:
          type: string
          description: Return organization name from linked Customer or from the text
            field.
          readOnly: true
        organization_identifier:
          type: string
          description: ROR, GRID, or other external identifier
          maxLength: 100
        department:
          type: string
          maxLength: 255
        position_title:
          type: string
          maxLength: 255
        start_date:
          type: string
          format: date
          nullable: true
        end_date:
          type: string
          format: date
          nullable: true
          description: Leave empty for current affiliation
        is_primary:
          type: boolean
        affiliation_type:
          $ref: '#/components/schemas/AffiliationTypeEnum'
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - created
      - organization_name
      - organization_name_display
      - uuid
    ReviewerAffiliationRequest:
      type: object
      description: ''
      properties:
        organization:
          type: string
          format: uuid
          nullable: true
        organization_name:
          type: string
          minLength: 1
          description: Organization name (used when not linked to Waldur org)
          maxLength: 255
        organization_identifier:
          type: string
          description: ROR, GRID, or other external identifier
          maxLength: 100
        department:
          type: string
          maxLength: 255
        position_title:
          type: string
          maxLength: 255
        start_date:
          type: string
          format: date
          nullable: true
        end_date:
          type: string
          format: date
          nullable: true
          description: Leave empty for current affiliation
        is_primary:
          type: boolean
        affiliation_type:
          $ref: '#/components/schemas/AffiliationTypeEnum'
      required:
      - organization_name
    ReviewerBid:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        call:
          type: string
          format: uri
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        reviewer:
          type: string
          format: uri
          readOnly: true
        reviewer_uuid:
          type: string
          format: uuid
          readOnly: true
        reviewer_name:
          type: string
          readOnly: true
        proposal:
          type: string
          format: uri
        proposal_uuid:
          type: string
          format: uuid
          readOnly: true
        proposal_name:
          type: string
          readOnly: true
        bid:
          allOf:
          - $ref: '#/components/schemas/BidEnum'
          description: Reviewer's preference for reviewing this proposal
        bid_display:
          type: string
          readOnly: true
        comment:
          type: string
          description: Optional comment explaining the bid
        submitted_at:
          type: string
          format: date-time
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
      required:
      - bid
      - bid_display
      - call
      - call_uuid
      - modified_at
      - proposal
      - proposal_name
      - proposal_uuid
      - reviewer
      - reviewer_name
      - reviewer_uuid
      - submitted_at
      - uuid
    ReviewerBidRequest:
      type: object
      description: ''
      properties:
        proposal:
          type: string
          format: uri
        bid:
          allOf:
          - $ref: '#/components/schemas/BidEnum'
          description: Reviewer's preference for reviewing this proposal
        comment:
          type: string
          description: Optional comment explaining the bid
      required:
      - bid
      - proposal
    ReviewerBidSubmitRequest:
      type: object
      description: ''
      properties:
        proposal_uuid:
          type: string
          format: uuid
        bid:
          $ref: '#/components/schemas/BidEnum'
        comment:
          type: string
          default: ''
      required:
      - bid
      - proposal_uuid
    ReviewerBulkBidRequest:
      type: object
      description: ''
      properties:
        bids:
          type: array
          items:
            $ref: '#/components/schemas/ReviewerBidSubmitRequest'
      required:
      - bids
    ReviewerExpertise:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        expertise_keyword:
          type: string
          description: Free-text keyword
          maxLength: 100
        expertise_category:
          type: string
          format: uuid
          nullable: true
        expertise_category_name:
          type: string
          readOnly: true
        proficiency_level:
          $ref: '#/components/schemas/ProficiencyLevelEnum'
        years_experience:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        last_active_date:
          type: string
          format: date
          nullable: true
          description: When last worked in this area
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - created
      - expertise_category_name
      - expertise_keyword
      - uuid
    ReviewerExpertiseRequest:
      type: object
      description: ''
      properties:
        expertise_keyword:
          type: string
          minLength: 1
          description: Free-text keyword
          maxLength: 100
        expertise_category:
          type: string
          format: uuid
          nullable: true
        proficiency_level:
          $ref: '#/components/schemas/ProficiencyLevelEnum'
        years_experience:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
        last_active_date:
          type: string
          format: date
          nullable: true
          description: When last worked in this area
      required:
      - expertise_keyword
    ReviewerInvitationRequest:
      type: object
      description: ''
      properties:
        reviewer_uuids:
          type: array
          items:
            type: string
            format: uuid
          description: List of reviewer profile UUIDs to invite
        max_assignments:
          type: integer
          minimum: 1
          default: 5
        invitation_message:
          type: string
          description: Custom message to include in invitation email
      required:
      - reviewer_uuids
    ReviewerProfile:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        user:
          type: string
          format: uri
          readOnly: true
        user_uuid:
          type: string
          format: uuid
          readOnly: true
        user_full_name:
          type: string
          readOnly: true
        user_email:
          type: string
          format: email
          title: Email address
          readOnly: true
        orcid_id:
          type: string
          nullable: true
          description: 'ORCID identifier (format: 0000-0000-0000-0000)'
          maxLength: 19
        orcid_connected:
          type: boolean
          description: Check if ORCID is connected (has access token).
          readOnly: true
        orcid_last_sync:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        biography:
          type: string
          description: Professional biography / summary
        alternative_names:
          description: List of name variants used in publications
        affiliations:
          type: array
          items:
            $ref: '#/components/schemas/ReviewerAffiliation'
          readOnly: true
        expertise_set:
          type: array
          items:
            $ref: '#/components/schemas/ReviewerExpertise'
          readOnly: true
        publications:
          type: array
          items:
            $ref: '#/components/schemas/ReviewerPublication'
          readOnly: true
        stats:
          allOf:
          - $ref: '#/components/schemas/ReviewerStats'
          readOnly: true
        profile_completeness:
          type: object
          additionalProperties: {}
          description: Calculate profile completeness percentage and missing fields.
          readOnly: true
        is_published:
          type: boolean
          readOnly: true
          description: Whether profile is discoverable by call managers
        published_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: When the profile was published
        available_for_reviews:
          type: boolean
          description: Whether reviewer is currently accepting review requests
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - affiliations
      - created
      - expertise_set
      - is_published
      - modified
      - orcid_connected
      - orcid_last_sync
      - profile_completeness
      - publications
      - published_at
      - stats
      - url
      - user
      - user_email
      - user_full_name
      - user_uuid
      - uuid
    ReviewerProfileCreateRequest:
      type: object
      description: ''
      properties:
        orcid_id:
          type: string
          nullable: true
          description: 'ORCID identifier (format: 0000-0000-0000-0000)'
          maxLength: 19
        biography:
          type: string
          description: Professional biography / summary
        alternative_names:
          description: List of name variants used in publications
        available_for_reviews:
          type: boolean
          description: Whether reviewer is currently accepting review requests
    ReviewerProfileRequest:
      type: object
      description: ''
      properties:
        orcid_id:
          type: string
          nullable: true
          description: 'ORCID identifier (format: 0000-0000-0000-0000)'
          maxLength: 19
        biography:
          type: string
          description: Professional biography / summary
        alternative_names:
          description: List of name variants used in publications
        available_for_reviews:
          type: boolean
          description: Whether reviewer is currently accepting review requests
    ReviewerPublication:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        title:
          type: string
          maxLength: 500
        doi:
          type: string
          nullable: true
          description: Digital Object Identifier
          maxLength: 100
        publication_year:
          type: integer
          maximum: 2147483647
          minimum: 0
        venue:
          type: string
          description: Journal or conference name
          maxLength: 255
        venue_type:
          $ref: '#/components/schemas/VenueTypeEnum'
        abstract:
          type: string
        coauthors:
          description: List of co-author names and identifiers
        external_ids:
          description: 'External identifiers: {"semantic_scholar": "...", "pubmed":
            "..."}'
        is_excluded_from_matching:
          type: boolean
          description: User can exclude old papers from expertise matching
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - created
      - publication_year
      - title
      - uuid
      - venue
    ReviewerPublicationRequest:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 500
        doi:
          type: string
          nullable: true
          description: Digital Object Identifier
          maxLength: 100
        publication_year:
          type: integer
          maximum: 2147483647
          minimum: 0
        venue:
          type: string
          minLength: 1
          description: Journal or conference name
          maxLength: 255
        venue_type:
          $ref: '#/components/schemas/VenueTypeEnum'
        abstract:
          type: string
        coauthors:
          description: List of co-author names and identifiers
        external_ids:
          description: 'External identifiers: {"semantic_scholar": "...", "pubmed":
            "..."}'
        is_excluded_from_matching:
          type: boolean
          description: User can exclude old papers from expertise matching
      required:
      - publication_year
      - title
      - venue
    ReviewerStats:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        total_reviews_completed:
          type: integer
          readOnly: true
        total_reviews_declined:
          type: integer
          readOnly: true
        total_reviews_timeout:
          type: integer
          readOnly: true
        average_review_time_days:
          type: number
          format: double
          readOnly: true
          nullable: true
        average_score_given:
          type: number
          format: double
          readOnly: true
          nullable: true
        last_review_date:
          type: string
          format: date
          readOnly: true
          nullable: true
        quality_rating:
          type: number
          format: double
          readOnly: true
          nullable: true
        quality_rating_count:
          type: integer
          readOnly: true
      required:
      - average_review_time_days
      - average_score_given
      - last_review_date
      - quality_rating
      - quality_rating_count
      - total_reviews_completed
      - total_reviews_declined
      - total_reviews_timeout
      - uuid
    ReviewerSuggestion:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        call:
          type: string
          format: uri
          readOnly: true
        call_uuid:
          type: string
          format: uuid
          readOnly: true
        call_name:
          type: string
          readOnly: true
        reviewer:
          type: string
          format: uri
          readOnly: true
        reviewer_uuid:
          type: string
          format: uuid
          readOnly: true
        reviewer_name:
          type: string
          readOnly: true
        reviewer_email:
          type: string
          format: email
          title: Email address
          readOnly: true
        reviewer_biography:
          type: string
          description: Professional biography / summary
          readOnly: true
        affinity_score:
          type: number
          format: double
          readOnly: true
          description: Combined affinity score (0-1)
        keyword_score:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: Keyword matching score
        text_score:
          type: number
          format: double
          readOnly: true
          nullable: true
          description: TF-IDF text similarity score
        status:
          $ref: '#/components/schemas/ReviewerSuggestionStatusEnum'
        status_display:
          type: string
          readOnly: true
        reviewed_by:
          type: string
          format: uri
          readOnly: true
          nullable: true
        reviewed_by_name:
          type: string
          readOnly: true
        reviewed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        rejection_reason:
          type: string
        matched_keywords:
          readOnly: true
          description: Keywords from reviewer's expertise that matched the source
            text
        top_matching_proposals:
          readOnly: true
          description: 'Top proposals with highest affinity: [{uuid, name, slug, affinity},
            ...]'
        source_type:
          allOf:
          - $ref: '#/components/schemas/SourceTypeEnum'
          readOnly: true
          description: What content was used to generate this suggestion
        source_type_display:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - affinity_score
      - call
      - call_name
      - call_uuid
      - created
      - keyword_score
      - matched_keywords
      - reviewed_at
      - reviewed_by
      - reviewed_by_name
      - reviewer
      - reviewer_biography
      - reviewer_email
      - reviewer_name
      - reviewer_uuid
      - source_type
      - source_type_display
      - status_display
      - text_score
      - top_matching_proposals
      - url
      - uuid
    ReviewerSuggestionRequest:
      type: object
      description: ''
      properties:
        status:
          $ref: '#/components/schemas/ReviewerSuggestionStatusEnum'
        rejection_reason:
          type: string
    ReviewerSuggestionStatusEnum:
      enum:
      - pending
      - confirmed
      - rejected
      - invited
      type: string
      description: ''
    RmqClientProperties:
      type: object
      description: ''
      properties:
        product:
          type: string
          readOnly: true
          nullable: true
          description: Client product name (e.g., 'pika', 'amqp-client')
        version:
          type: string
          readOnly: true
          nullable: true
          description: Client library version
        platform:
          type: string
          readOnly: true
          nullable: true
          description: Client platform (e.g., 'Python 3.11')
      required:
      - platform
      - product
      - version
    RmqEnrichedConnection:
      type: object
      description: ''
      properties:
        source_ip:
          type: string
          readOnly: true
          description: Client IP address
        vhost:
          type: string
          readOnly: true
          description: Virtual host name
        connected_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Connection establishment timestamp
        state:
          type: string
          readOnly: true
          description: 'Connection state: ''running'', ''blocked'', ''blocking'''
        recv_oct:
          type: integer
          readOnly: true
          description: Bytes received on this connection
        send_oct:
          type: integer
          readOnly: true
          description: Bytes sent on this connection
        channels:
          type: integer
          readOnly: true
          description: Number of channels on this connection
        timeout:
          type: integer
          readOnly: true
          nullable: true
          description: Heartbeat timeout in seconds
        client_properties:
          allOf:
          - $ref: '#/components/schemas/RmqClientProperties'
          readOnly: true
          nullable: true
          description: Client identification properties
      required:
      - channels
      - client_properties
      - connected_at
      - recv_oct
      - send_oct
      - source_ip
      - state
      - timeout
      - vhost
    RmqEnrichedUserStatsItem:
      type: object
      description: ''
      properties:
        username:
          type: string
          readOnly: true
          description: RabbitMQ username (corresponds to EventSubscription UUID)
        connections:
          type: array
          items:
            $ref: '#/components/schemas/RmqEnrichedConnection'
          readOnly: true
          description: List of active connections with detailed statistics
      required:
      - connections
      - username
    RmqListener:
      type: object
      description: ''
      properties:
        protocol:
          type: string
          readOnly: true
          description: Protocol name (e.g., 'amqp', 'http', 'clustering')
        port:
          type: integer
          readOnly: true
          description: Listening port number
      required:
      - port
      - protocol
    RmqMessageStats:
      type: object
      description: ''
      properties:
        publish:
          type: integer
          readOnly: true
          description: Total messages published
        publish_rate:
          type: number
          format: double
          readOnly: true
          description: Messages published per second
        deliver:
          type: integer
          readOnly: true
          description: Total messages delivered to consumers
        deliver_rate:
          type: number
          format: double
          readOnly: true
          description: Messages delivered per second
        confirm:
          type: integer
          readOnly: true
          description: Total messages confirmed by broker
        confirm_rate:
          type: number
          format: double
          readOnly: true
          description: Messages confirmed per second
        ack:
          type: integer
          readOnly: true
          description: Total messages acknowledged by consumers
        ack_rate:
          type: number
          format: double
          readOnly: true
          description: Messages acknowledged per second
      required:
      - ack
      - ack_rate
      - confirm
      - confirm_rate
      - deliver
      - deliver_rate
      - publish
      - publish_rate
    RmqObjectTotals:
      type: object
      description: ''
      properties:
        connections:
          type: integer
          readOnly: true
          description: Total active connections
        channels:
          type: integer
          readOnly: true
          description: Total active channels
        exchanges:
          type: integer
          readOnly: true
          description: Total exchanges
        queues:
          type: integer
          readOnly: true
          description: Total queues
        consumers:
          type: integer
          readOnly: true
          description: Total active consumers
      required:
      - channels
      - connections
      - consumers
      - exchanges
      - queues
    RmqOverview:
      type: object
      description: ''
      properties:
        cluster_name:
          type: string
          readOnly: true
          description: Name of the RabbitMQ cluster
        rabbitmq_version:
          type: string
          readOnly: true
          description: RabbitMQ server version
        erlang_version:
          type: string
          readOnly: true
          description: Erlang/OTP runtime version
        message_stats:
          allOf:
          - $ref: '#/components/schemas/RmqMessageStats'
          readOnly: true
          description: Message throughput statistics with rates
        queue_totals:
          allOf:
          - $ref: '#/components/schemas/RmqQueueTotals'
          readOnly: true
          description: Global queue message counts
        object_totals:
          allOf:
          - $ref: '#/components/schemas/RmqObjectTotals'
          readOnly: true
          description: Counts of connections, channels, queues, etc.
        node:
          type: string
          readOnly: true
          description: Current RabbitMQ node name
        listeners:
          type: array
          items:
            $ref: '#/components/schemas/RmqListener'
          readOnly: true
          description: Active protocol listeners
      required:
      - cluster_name
      - erlang_version
      - listeners
      - message_stats
      - node
      - object_totals
      - queue_totals
      - rabbitmq_version
    RmqPurgeRequestRequest:
      type: object
      description: ''
      properties:
        vhost:
          type: string
          minLength: 1
          description: Virtual host name containing the queue(s)
        queue_name:
          type: string
          minLength: 1
          description: Specific queue name (requires vhost)
        queue_pattern:
          type: string
          minLength: 1
          description: Glob pattern to match queue names (e.g., '*_resource'). Requires
            vhost.
        purge_all_subscription_queues:
          type: boolean
          default: false
          description: If true, purge all subscription queues across all vhosts
        delete_queue:
          type: boolean
          default: false
          description: If true, delete the queue(s) entirely instead of just purging
            messages
        delete_all_subscription_queues:
          type: boolean
          default: false
          description: If true, delete all subscription queues across all vhosts
    RmqPurgeResponse:
      type: object
      description: ''
      properties:
        purged_queues:
          type: integer
          readOnly: true
          description: Number of queues that were purged
        purged_messages:
          type: integer
          readOnly: true
          description: Total number of messages that were purged
        deleted_queues:
          type: integer
          readOnly: true
          description: Number of queues that were deleted
      required:
      - deleted_queues
      - purged_messages
      - purged_queues
    RmqQueueStats:
      type: object
      description: ''
      properties:
        name:
          type: string
          readOnly: true
          description: Queue name (e.g., 'subscription_{uuid}_offering_{uuid}_{type}')
        messages:
          type: integer
          readOnly: true
          description: Total number of messages in the queue
        messages_ready:
          type: integer
          readOnly: true
          description: Number of messages ready for delivery
        messages_unacknowledged:
          type: integer
          readOnly: true
          description: Number of messages awaiting acknowledgement
        consumers:
          type: integer
          readOnly: true
          description: Number of active consumers for this queue
        subscription_uuid:
          type: string
          readOnly: true
          nullable: true
          description: Parsed subscription UUID from queue name
        offering_uuid:
          type: string
          readOnly: true
          nullable: true
          description: Parsed offering UUID from queue name
        object_type:
          type: string
          readOnly: true
          nullable: true
          description: Parsed object type from queue name (e.g., 'resource', 'order')
        message_ttl:
          type: integer
          readOnly: true
          nullable: true
          description: Message TTL in milliseconds
        max_length:
          type: integer
          readOnly: true
          nullable: true
          description: Maximum number of messages in queue
        max_length_bytes:
          type: integer
          readOnly: true
          nullable: true
          description: Maximum total size of messages in bytes
        expires:
          type: integer
          readOnly: true
          nullable: true
          description: Queue TTL - auto-delete after idle in milliseconds
        overflow:
          type: string
          readOnly: true
          nullable: true
          description: 'Behavior when full: ''drop-head'', ''reject-publish'', or
            ''reject-publish-dlx'''
        dead_letter_exchange:
          type: string
          readOnly: true
          nullable: true
          description: Dead letter exchange name
        dead_letter_routing_key:
          type: string
          readOnly: true
          nullable: true
          description: Dead letter routing key
        max_priority:
          type: integer
          readOnly: true
          nullable: true
          description: Maximum priority level (1-255)
        queue_mode:
          type: string
          readOnly: true
          nullable: true
          description: 'Queue mode: ''default'' or ''lazy'''
        queue_type:
          type: string
          readOnly: true
          nullable: true
          description: 'Queue type: ''classic'', ''quorum'', or ''stream'''
      required:
      - consumers
      - dead_letter_exchange
      - dead_letter_routing_key
      - expires
      - max_length
      - max_length_bytes
      - max_priority
      - message_ttl
      - messages
      - messages_ready
      - messages_unacknowledged
      - name
      - object_type
      - offering_uuid
      - overflow
      - queue_mode
      - queue_type
      - subscription_uuid
    RmqQueueTotals:
      type: object
      description: ''
      properties:
        messages:
          type: integer
          readOnly: true
          description: Total messages across all queues
        messages_ready:
          type: integer
          readOnly: true
          description: Messages ready for delivery
        messages_unacknowledged:
          type: integer
          readOnly: true
          description: Messages awaiting acknowledgement
      required:
      - messages
      - messages_ready
      - messages_unacknowledged
    RmqStatsError:
      type: object
      description: ''
      properties:
        error:
          type: string
          readOnly: true
          description: Error message describing what went wrong
      required:
      - error
    RmqStatsResponse:
      type: object
      description: ''
      properties:
        vhosts:
          type: array
          items:
            $ref: '#/components/schemas/RmqVhostStats'
          readOnly: true
          description: List of vhosts with their subscription queues
        total_messages:
          type: integer
          readOnly: true
          description: Total messages across all subscription queues
        total_queues:
          type: integer
          readOnly: true
          description: Total number of subscription queues
      required:
      - total_messages
      - total_queues
      - vhosts
    RmqStatsUser:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          readOnly: true
          description: Waldur user UUID
        username:
          type: string
          readOnly: true
          description: Waldur username
        full_name:
          type: string
          readOnly: true
          description: User's full name
      required:
      - full_name
      - username
      - uuid
    RmqSubscription:
      type: object
      properties:
        created:
          type: string
          format: date-time
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        source_ip:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          readOnly: true
      required:
      - created
      - source_ip
      - uuid
      description: ''
    RmqVHostStatsItem:
      type: object
      properties:
        name:
          type: string
          readOnly: true
        waldur_user:
          allOf:
          - $ref: '#/components/schemas/RmqWaldurUser'
          readOnly: true
        subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/RmqSubscription'
          readOnly: true
      required:
      - name
      - subscriptions
      - waldur_user
      description: ''
    RmqVhostStats:
      type: object
      description: ''
      properties:
        name:
          type: string
          readOnly: true
          description: Virtual host name (corresponds to Waldur user UUID)
        user:
          allOf:
          - $ref: '#/components/schemas/RmqStatsUser'
          readOnly: true
          nullable: true
          description: Waldur user associated with this vhost
        queues:
          type: array
          items:
            $ref: '#/components/schemas/RmqQueueStats'
          readOnly: true
          description: List of subscription queues in this vhost
        total_messages:
          type: integer
          readOnly: true
          description: Total messages across all queues in this vhost
      required:
      - name
      - queues
      - total_messages
      - user
    RmqWaldurUser:
      type: object
      properties:
        full_name:
          type: string
          readOnly: true
        username:
          type: string
          readOnly: true
        email:
          type: string
          format: email
          readOnly: true
      required:
      - email
      - full_name
      - username
      description: ''
    RobotAccount:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        username:
          type: string
          maxLength: 32
        description:
          type: string
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/RobotAccountStates'
          readOnly: true
        resource:
          type: string
          format: uri
        type:
          type: string
          description: Type of the robot account.
          maxLength: 5
        users:
          type: array
          items:
            type: string
            format: uri
          description: Users who have access to this robot account.
        keys: {}
        backend_id:
          type: string
          readOnly: true
        fingerprints:
          type: array
          items:
            $ref: '#/components/schemas/Fingerprint'
          readOnly: true
        responsible_user:
          type: string
          format: uri
          nullable: true
      required:
      - backend_id
      - created
      - fingerprints
      - modified
      - resource
      - type
      - url
      - uuid
      description: ''
    RobotAccountDetails:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        username:
          type: string
          maxLength: 32
        description:
          type: string
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/RobotAccountStates'
          readOnly: true
        resource:
          type: string
          format: uri
        type:
          type: string
          description: Type of the robot account.
          maxLength: 5
        users:
          type: array
          items:
            $ref: '#/components/schemas/BasicUser'
          readOnly: true
        keys: {}
        backend_id:
          type: string
          readOnly: true
        fingerprints:
          type: array
          items:
            $ref: '#/components/schemas/Fingerprint'
          readOnly: true
        responsible_user:
          allOf:
          - $ref: '#/components/schemas/BasicUser'
          readOnly: true
          nullable: true
        user_keys:
          type: array
          items:
            $ref: '#/components/schemas/SshKey'
          readOnly: true
        resource_name:
          type: string
          readOnly: true
        resource_uuid:
          type: string
          format: uuid
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        provider_uuid:
          type: string
          format: uuid
          readOnly: true
        provider_name:
          type: string
          readOnly: true
        offering_plugin_options:
          allOf:
          - $ref: '#/components/schemas/MergedPluginOptions'
          readOnly: true
      required: []
    RobotAccountErrorRequest:
      type: object
      properties:
        error_message:
          type: string
          minLength: 1
          description: Error message to be saved to the robot account
      description: ''
    RobotAccountRequest:
      type: object
      properties:
        username:
          type: string
          maxLength: 32
        description:
          type: string
        resource:
          type: string
          format: uri
        type:
          type: string
          minLength: 1
          description: Type of the robot account.
          maxLength: 5
        users:
          type: array
          items:
            type: string
            format: uri
          description: Users who have access to this robot account.
        keys: {}
        responsible_user:
          type: string
          format: uri
          nullable: true
      required:
      - resource
      - type
      description: ''
    RobotAccountStates:
      enum:
      - Requested
      - Creating
      - OK
      - Requested deletion
      - Deleted
      - Error
      type: string
      description: ''
    RoleDescription:
      type: object
      properties:
        description:
          type: string
          maxLength: 4096
        description_en:
          type: string
          nullable: true
          title: Description [en]
          maxLength: 4096
        description_et:
          type: string
          nullable: true
          title: Description [et]
          maxLength: 4096
        description_lt:
          type: string
          nullable: true
          title: Description [lt]
          maxLength: 4096
        description_lv:
          type: string
          nullable: true
          title: Description [lv]
          maxLength: 4096
        description_ru:
          type: string
          nullable: true
          title: Description [ru]
          maxLength: 4096
        description_it:
          type: string
          nullable: true
          title: Description [it]
          maxLength: 4096
        description_de:
          type: string
          nullable: true
          title: Description [de]
          maxLength: 4096
        description_da:
          type: string
          nullable: true
          title: Description [da]
          maxLength: 4096
        description_sv:
          type: string
          nullable: true
          title: Description [sv]
          maxLength: 4096
        description_es:
          type: string
          nullable: true
          title: Description [es]
          maxLength: 4096
        description_fr:
          type: string
          nullable: true
          title: Description [fr]
          maxLength: 4096
        description_nb:
          type: string
          nullable: true
          title: Description [nb]
          maxLength: 4096
        description_ar:
          type: string
          nullable: true
          title: Description [ar]
          maxLength: 4096
        description_cs:
          type: string
          nullable: true
          title: Description [cs]
          maxLength: 4096
      description: ''
    RoleDescriptionRequest:
      type: object
      properties:
        description:
          type: string
          maxLength: 4096
        description_en:
          type: string
          nullable: true
          title: Description [en]
          maxLength: 4096
        description_et:
          type: string
          nullable: true
          title: Description [et]
          maxLength: 4096
        description_lt:
          type: string
          nullable: true
          title: Description [lt]
          maxLength: 4096
        description_lv:
          type: string
          nullable: true
          title: Description [lv]
          maxLength: 4096
        description_ru:
          type: string
          nullable: true
          title: Description [ru]
          maxLength: 4096
        description_it:
          type: string
          nullable: true
          title: Description [it]
          maxLength: 4096
        description_de:
          type: string
          nullable: true
          title: Description [de]
          maxLength: 4096
        description_da:
          type: string
          nullable: true
          title: Description [da]
          maxLength: 4096
        description_sv:
          type: string
          nullable: true
          title: Description [sv]
          maxLength: 4096
        description_es:
          type: string
          nullable: true
          title: Description [es]
          maxLength: 4096
        description_fr:
          type: string
          nullable: true
          title: Description [fr]
          maxLength: 4096
        description_nb:
          type: string
          nullable: true
          title: Description [nb]
          maxLength: 4096
        description_ar:
          type: string
          nullable: true
          title: Description [ar]
          maxLength: 4096
        description_cs:
          type: string
          nullable: true
          title: Description [cs]
          maxLength: 4096
      description: ''
    RoleDetails:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        description_en:
          type: string
          nullable: true
          title: Description [en]
          maxLength: 4096
        description_et:
          type: string
          nullable: true
          title: Description [et]
          maxLength: 4096
        description_lt:
          type: string
          nullable: true
          title: Description [lt]
          maxLength: 4096
        description_lv:
          type: string
          nullable: true
          title: Description [lv]
          maxLength: 4096
        description_ru:
          type: string
          nullable: true
          title: Description [ru]
          maxLength: 4096
        description_it:
          type: string
          nullable: true
          title: Description [it]
          maxLength: 4096
        description_de:
          type: string
          nullable: true
          title: Description [de]
          maxLength: 4096
        description_da:
          type: string
          nullable: true
          title: Description [da]
          maxLength: 4096
        description_sv:
          type: string
          nullable: true
          title: Description [sv]
          maxLength: 4096
        description_es:
          type: string
          nullable: true
          title: Description [es]
          maxLength: 4096
        description_fr:
          type: string
          nullable: true
          title: Description [fr]
          maxLength: 4096
        description_nb:
          type: string
          nullable: true
          title: Description [nb]
          maxLength: 4096
        description_ar:
          type: string
          nullable: true
          title: Description [ar]
          maxLength: 4096
        description_cs:
          type: string
          nullable: true
          title: Description [cs]
          maxLength: 4096
        permissions:
          type: array
          items:
            type: string
          readOnly: true
        is_system_role:
          type: boolean
          readOnly: true
        is_active:
          type: boolean
        users_count:
          type: integer
          readOnly: true
        content_type:
          allOf:
          - $ref: '#/components/schemas/RoleType'
          readOnly: true
      required: []
    RoleModifyRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        description_en:
          type: string
          nullable: true
          title: Description [en]
          maxLength: 4096
        description_et:
          type: string
          nullable: true
          title: Description [et]
          maxLength: 4096
        description_lt:
          type: string
          nullable: true
          title: Description [lt]
          maxLength: 4096
        description_lv:
          type: string
          nullable: true
          title: Description [lv]
          maxLength: 4096
        description_ru:
          type: string
          nullable: true
          title: Description [ru]
          maxLength: 4096
        description_it:
          type: string
          nullable: true
          title: Description [it]
          maxLength: 4096
        description_de:
          type: string
          nullable: true
          title: Description [de]
          maxLength: 4096
        description_da:
          type: string
          nullable: true
          title: Description [da]
          maxLength: 4096
        description_sv:
          type: string
          nullable: true
          title: Description [sv]
          maxLength: 4096
        description_es:
          type: string
          nullable: true
          title: Description [es]
          maxLength: 4096
        description_fr:
          type: string
          nullable: true
          title: Description [fr]
          maxLength: 4096
        description_nb:
          type: string
          nullable: true
          title: Description [nb]
          maxLength: 4096
        description_ar:
          type: string
          nullable: true
          title: Description [ar]
          maxLength: 4096
        description_cs:
          type: string
          nullable: true
          title: Description [cs]
          maxLength: 4096
        permissions: {}
        is_active:
          type: boolean
        content_type:
          type: string
          minLength: 1
      required:
      - content_type
      - name
      - permissions
    RoleTemplate:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
          description: Role internal name
        scope_type:
          allOf:
          - $ref: '#/components/schemas/RancherRoleScopeType'
          readOnly: true
        display_name:
          type: string
          readOnly: true
          description: Role public name
        settings:
          type: string
          format: uri
          readOnly: true
      required:
      - display_name
      - name
      - scope_type
      - settings
      - url
      - uuid
      description: ''
    RoleType:
      enum:
      - customer
      - service_provider
      - call_organizer
      - project
      - offering
      - call
      - proposal
      type: string
      description: ''
    RoundReviewer:
      type: object
      properties:
        full_name:
          type: string
          readOnly: true
        email:
          type: string
          format: email
        accepted_proposals:
          type: integer
        rejected_proposals:
          type: integer
        in_review_proposals:
          type: integer
      required:
      - accepted_proposals
      - email
      - full_name
      - in_review_proposals
      - rejected_proposals
      description: ''
    RoundStatus:
      enum:
      - scheduled
      - open
      - ended
      type: string
      description: ''
    RouterSetErredResponse:
      type: object
      properties:
        detail:
          type: string
      required:
      - detail
      description: ''
    RouterSetOkResponse:
      type: object
      properties:
        detail:
          type: string
      required:
      - detail
      description: ''
    Rule:
      type: object
      properties:
        name:
          type: string
          maxLength: 150
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        user_affiliations:
          type: array
          items:
            type: string
        user_email_patterns:
          type: array
          items:
            type: string
        customer:
          type: string
          format: uri
          nullable: true
        customer_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          readOnly: true
        use_user_organization_as_customer_name:
          type: boolean
        project_role:
          type: string
          format: uri
          nullable: true
        project_role_display_name:
          type: string
          readOnly: true
        project_role_description:
          type: string
          readOnly: true
        plan:
          type: string
          format: uri
          nullable: true
        plan_attributes:
          type: object
          additionalProperties: {}
        plan_limits:
          type: object
          additionalProperties: {}
        plan_name:
          type: string
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        category_title:
          type: string
          readOnly: true
        category_url:
          type: string
          format: uri
          readOnly: true
      required:
      - category_title
      - category_url
      - customer_name
      - customer_uuid
      - name
      - offering_name
      - offering_uuid
      - plan_name
      - project_role_description
      - project_role_display_name
      - url
      - uuid
      description: ''
    RuleRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        user_affiliations:
          type: array
          items:
            type: string
            minLength: 1
        user_email_patterns:
          type: array
          items:
            type: string
            minLength: 1
        customer:
          type: string
          format: uri
          nullable: true
        use_user_organization_as_customer_name:
          type: boolean
        project_role:
          type: string
          format: uri
          nullable: true
        project_role_name:
          type: string
          writeOnly: true
          nullable: true
          minLength: 1
        plan:
          type: string
          format: uri
          nullable: true
        plan_attributes:
          type: object
          additionalProperties: {}
        plan_limits:
          type: object
          additionalProperties: {}
      required:
      - name
      description: ''
    RuntimeStates:
      type: object
      properties:
        value:
          type: string
          readOnly: true
          description: Value of the runtime state
        label:
          type: string
          readOnly: true
          description: Human-readable label for the runtime state
      required:
      - label
      - value
      description: ''
    Saml2Login:
      type: object
      properties:
        idp:
          type: string
      required:
      - idp
      description: ''
    Saml2LoginComplete:
      type: object
      properties:
        SAMLResponse:
          type: string
      required:
      - SAMLResponse
      description: ''
    Saml2LoginCompleteRequest:
      type: object
      properties:
        SAMLResponse:
          type: string
          minLength: 1
      required:
      - SAMLResponse
      description: ''
    Saml2LoginRequest:
      type: object
      properties:
        idp:
          type: string
          minLength: 1
      required:
      - idp
      description: ''
    Saml2LogoutComplete:
      type: object
      properties:
        SAMLResponse:
          type: string
        SAMLRequest:
          type: string
      description: ''
    Saml2LogoutCompleteRequest:
      type: object
      properties:
        SAMLResponse:
          type: string
          minLength: 1
        SAMLRequest:
          type: string
          minLength: 1
      description: ''
    Saml2Provider:
      type: object
      properties:
        name:
          type: string
        url:
          type: string
          format: uri
          maxLength: 200
      required:
      - name
      - url
      description: ''
    SaveSettingsRequestRequest:
      type: object
      description: ''
      properties:
        api_url:
          type: string
          format: uri
          minLength: 1
          description: Arrow API base URL
        api_key:
          type: string
          minLength: 1
          description: Arrow API Key
        export_type_reference:
          type: string
        classification_filter:
          type: string
          minLength: 1
          default: IAAS
        sync_enabled:
          type: boolean
          default: false
        customer_mappings:
          type: array
          items:
            $ref: '#/components/schemas/CustomerMappingInputRequest'
      required:
      - api_key
      - api_url
    SaveSettingsResponse:
      type: object
      description: ''
      properties:
        settings_uuid:
          type: string
          format: uuid
        mappings_created:
          type: integer
        message:
          type: string
      required:
      - mappings_created
      - message
      - settings_uuid
    ScimSyncAllResponse:
      type: object
      properties:
        detail:
          type: string
      required:
      - detail
      description: ''
    Screenshot:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        created:
          type: string
          format: date-time
          readOnly: true
        description:
          type: string
          maxLength: 4096
        image:
          type: string
          format: uri
        thumbnail:
          type: string
          format: uri
          readOnly: true
          nullable: true
        offering:
          type: string
          format: uri
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
      required:
      - created
      - customer_uuid
      - image
      - name
      - offering
      - thumbnail
      - url
      - uuid
    ScreenshotRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        image:
          type: string
          format: binary
        offering:
          type: string
          format: uri
      required:
      - image
      - name
      - offering
    Section:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        key:
          type: string
          maxLength: 255
        created:
          type: string
          format: date-time
          readOnly: true
        title:
          type: string
          maxLength: 255
        category:
          type: string
          format: uri
        category_title:
          type: string
          readOnly: true
        is_standalone:
          type: boolean
          description: Whether section is rendered as a separate tab.
      required:
      - category
      - category_title
      - created
      - key
      - title
      - url
      description: ''
    SectionRequest:
      type: object
      properties:
        key:
          type: string
          minLength: 1
          maxLength: 255
        title:
          type: string
          minLength: 1
          maxLength: 255
        category:
          type: string
          format: uri
        is_standalone:
          type: boolean
          description: Whether section is rendered as a separate tab.
      required:
      - category
      - key
      - title
      description: ''
    SelfDeclaredConflictRequest:
      type: object
      description: ''
      properties:
        proposal_uuid:
          type: string
          format: uuid
        coi_type:
          $ref: '#/components/schemas/CoiTypeEnum'
        severity:
          allOf:
          - $ref: '#/components/schemas/COISeverityLevel'
          default: apparent
        description:
          type: string
          default: ''
      required:
      - coi_type
      - proposal_uuid
    SendAllAssignmentBatchesRequest:
      type: object
      description: ''
      properties:
        batch_uuids:
          type: array
          items:
            type: string
            format: uuid
          description: Specific batch UUIDs to send. If empty, sends all draft batches.
    SendAllAssignmentBatchesResponse:
      type: object
      description: ''
      properties:
        batches_sent:
          type: integer
        skipped:
          type: integer
      required:
      - batches_sent
      - skipped
    SendAssignmentBatchRequest:
      type: object
      description: ''
      properties:
        manager_notes:
          type: string
          description: Optional notes to include in the invitation email
    SendAssignmentBatchResponse:
      type: object
      description: ''
      properties:
        detail:
          type: string
        expires_at:
          type: string
          format: date-time
      required:
      - detail
      - expires_at
    SendInvitationsResponse:
      type: object
      description: ''
      properties:
        invitations_sent:
          type: integer
      required:
      - invitations_sent
    SendNotificationResponse:
      type: object
      description: ''
      properties:
        status:
          type: string
        message:
          type: string
      required:
      - message
      - status
    ServerInfo:
      type: object
      description: ''
      properties:
        auth_url:
          type: string
        identity_api_version:
          type: string
        user_domain_name:
          type: string
        project_name:
          type: string
        project_id:
          type: string
      required:
      - auth_url
      - identity_api_version
      - project_id
      - project_name
      - user_domain_name
    ServiceAccountState:
      enum:
      - OK
      - Closed
      - Erred
      description: ''
    ServiceAttributesPreview:
      type: object
      description: ''
      properties:
        service_attributes:
          type: object
          additionalProperties: {}
        plugin_options:
          type: object
          additionalProperties: {}
      required:
      - plugin_options
      - service_attributes
    ServiceProvider:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        description:
          type: string
          maxLength: 4096
        enable_notifications:
          type: boolean
        customer:
          type: string
          format: uri
        customer_name:
          type: string
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_image:
          type: string
          format: uri
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        customer_slug:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_country:
          type: string
          readOnly: true
        image:
          type: string
          format: uri
          nullable: true
        organization_groups:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationGroup'
          readOnly: true
        offering_count:
          type: integer
          readOnly: true
      required: []
    ServiceProviderAccess:
      type: object
      description: ''
      properties:
        offering_uuid:
          type: string
          format: uuid
        offering_name:
          type: string
        provider_name:
          type: string
          nullable: true
        provider_uuid:
          type: string
          format: uuid
          nullable: true
        exposed_fields:
          type: array
          items:
            type: string
        consent_date:
          type: string
          nullable: true
        consent_version:
          type: string
          nullable: true
        provider_team:
          type: array
          items:
            $ref: '#/components/schemas/ProviderTeamUser'
      required:
      - consent_date
      - consent_version
      - exposed_fields
      - offering_name
      - offering_uuid
      - provider_name
      - provider_uuid
    ServiceProviderApiSecretCode:
      type: object
      properties:
        api_secret_code:
          type: string
          readOnly: true
          description: API secret code for authenticating service provider requests
      required:
      - api_secret_code
      description: ''
    ServiceProviderChecklistSummary:
      type: object
      description: ''
      properties:
        checklist_uuid:
          type: string
          format: uuid
          readOnly: true
        checklist_name:
          type: string
          readOnly: true
        questions_count:
          type: integer
          readOnly: true
        offerings_count:
          type: integer
          readOnly: true
      required:
      - checklist_name
      - checklist_uuid
      - offerings_count
      - questions_count
    ServiceProviderComplianceOverview:
      type: object
      description: ''
      properties:
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        checklist_name:
          type: string
          readOnly: true
          nullable: true
        total_users:
          type: integer
          readOnly: true
        users_with_completions:
          type: integer
          readOnly: true
        completed_users:
          type: integer
          readOnly: true
        pending_users:
          type: integer
          readOnly: true
        compliance_rate:
          type: number
          format: double
          readOnly: true
      required:
      - checklist_name
      - completed_users
      - compliance_rate
      - offering_name
      - offering_uuid
      - pending_users
      - total_users
      - users_with_completions
    ServiceProviderOfferingUserCompliance:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        user_full_name:
          type: string
          readOnly: true
        user_email:
          type: string
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        checklist_name:
          type: string
          readOnly: true
          nullable: true
        username:
          type: string
          readOnly: true
          nullable: true
        state:
          allOf:
          - $ref: '#/components/schemas/ServiceProviderOfferingUserComplianceStateEnum'
          readOnly: true
        completion_percentage:
          type: integer
          nullable: true
          readOnly: true
        compliance_status:
          type: string
          readOnly: true
        last_updated:
          type: string
          format: date-time
          nullable: true
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - checklist_name
      - completion_percentage
      - compliance_status
      - created
      - last_updated
      - offering_name
      - state
      - user_email
      - user_full_name
      - username
      - uuid
    ServiceProviderOfferingUserComplianceStateEnum:
      enum:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      - 9
      - 10
      type: integer
      description: ''
    ServiceProviderRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        enable_notifications:
          type: boolean
        customer:
          type: string
          format: uri
        image:
          type: string
          format: binary
          nullable: true
      required:
      - customer
    ServiceProviderRevenues:
      type: object
      properties:
        total:
          type: integer
          readOnly: true
          description: Total revenue amount
        year:
          type: integer
          readOnly: true
          description: Invoice year
        month:
          type: integer
          readOnly: true
          description: Invoice month
      required:
      - month
      - total
      - year
      description: ''
    ServiceProviderSignatureRequest:
      type: object
      properties:
        customer:
          type: string
          format: uuid
          description: Service provider customer UUID
        data:
          type: string
          minLength: 1
          description: JWT-encoded data signed with the service provider's API secret
            code
        dry_run:
          type: boolean
          default: false
          description: If true, validates the signature without executing the operation
      required:
      - customer
      - data
      description: ''
    ServiceProviderStatistics:
      type: object
      properties:
        active_campaigns:
          type: integer
          readOnly: true
          description: Number of active campaigns
        current_customers:
          type: integer
          readOnly: true
          description: Number of current customers
        customers_number_change:
          type: integer
          readOnly: true
          description: Change in number of customers
        active_resources:
          type: integer
          readOnly: true
          description: Number of active resources
        resources_number_change:
          type: integer
          readOnly: true
          description: Change in number of resources
        active_and_paused_offerings:
          type: integer
          readOnly: true
          description: Number of active and paused offerings
        unresolved_tickets:
          type: integer
          readOnly: true
          description: Number of unresolved support tickets
        pending_orders:
          type: integer
          readOnly: true
          description: Number of pending orders
        erred_resources:
          type: integer
          readOnly: true
          description: Number of resources in error state
      required:
      - active_and_paused_offerings
      - active_campaigns
      - active_resources
      - current_customers
      - customers_number_change
      - erred_resources
      - pending_orders
      - resources_number_change
      - unresolved_tickets
      description: ''
    ServiceSettings:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        type:
          type: string
          maxLength: 255
        state:
          allOf:
          - $ref: '#/components/schemas/ServiceSettingsStateEnum'
          readOnly: true
        error_message:
          type: string
          readOnly: true
        shared:
          type: boolean
          description: Anybody can use it
        customer:
          type: string
          format: uri
          nullable: true
          title: Organization
        customer_name:
          type: string
          readOnly: true
          nullable: true
        customer_native_name:
          type: string
          readOnly: true
        terms_of_services:
          type: string
          format: uri
          maxLength: 255
        scope:
          type: string
          nullable: true
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
        options:
          type: object
          additionalProperties: {}
          readOnly: true
      required: []
    ServiceSettingsStateEnum:
      enum:
      - CREATION_SCHEDULED
      - CREATING
      - UPDATE_SCHEDULED
      - UPDATING
      - DELETION_SCHEDULED
      - DELETING
      - OK
      - ERRED
      type: string
      description: ''
    SetErredRequest:
      type: object
      properties:
        error_message:
          type: string
          default: ''
        error_traceback:
          type: string
          default: ''
      description: ''
    SetErredResponse:
      type: object
      properties:
        detail:
          type: string
      required:
      - detail
      description: ''
    SetMtu:
      type: object
      properties:
        mtu:
          type: integer
      required:
      - mtu
      description: ''
    SetMtuRequest:
      type: object
      properties:
        mtu:
          type: integer
      required:
      - mtu
      description: ''
    SetOfferingsUsernameRequest:
      type: object
      properties:
        user_uuid:
          type: string
          format: uuid
          description: UUID of the user
        username:
          type: string
          description: Username for offering access
      required:
      - user_uuid
      - username
      description: ''
    SetOkResponse:
      type: object
      properties:
        detail:
          type: string
      required:
      - detail
      description: ''
    SetTokenQuotaRequest:
      type: object
      description: ''
      properties:
        user_uuid:
          type: string
          format: uuid
          description: UUID of the user to set quota for.
        daily_limit:
          type: integer
          minimum: -1
          nullable: true
          description: Daily token limit. Omit or null = system default, -1 = unlimited.
        weekly_limit:
          type: integer
          minimum: -1
          nullable: true
          description: Weekly token limit. Omit or null = system default, -1 = unlimited.
        monthly_limit:
          type: integer
          minimum: -1
          nullable: true
          description: Monthly token limit. Omit or null = system default, -1 = unlimited.
      required:
      - user_uuid
    SettingsMetadataResponse:
      type: object
      description: ''
      properties:
        settings:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: List of settings sections with configuration items
      required:
      - settings
    SilenceActionRequest:
      type: object
      description: ''
      properties:
        duration_days:
          type: integer
          description: Duration in days to silence the action. If not provided, silences
            permanently.
    SilenceActionResponse:
      type: object
      description: ''
      properties:
        status:
          type: string
        duration_days:
          type: integer
          nullable: true
      required:
      - status
    SiteAgentConfigGenerationRequest:
      type: object
      description: ''
      properties:
        offering_uuids:
          type: array
          items:
            type: string
            format: uuid
          description: List of SLURM offering UUIDs to include in configuration
          minItems: 1
        include_policy_settings:
          type: boolean
          default: true
          description: Include SLURM periodic usage policy settings in configuration
        waldur_api_url:
          type: string
          format: uri
          description: Waldur API URL (defaults to current server URL)
        timezone:
          type: string
          minLength: 1
          default: UTC
          description: Timezone for the site agent
      required:
      - offering_uuids
    SlurmAllocation:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        cpu_limit:
          type: integer
          readOnly: true
          minimum: 0
        cpu_usage:
          type: integer
          readOnly: true
        gpu_limit:
          type: integer
          readOnly: true
          minimum: 0
        gpu_usage:
          type: integer
          readOnly: true
        ram_limit:
          type: integer
          readOnly: true
          minimum: 0
        ram_usage:
          type: integer
          readOnly: true
        username:
          type: string
          nullable: true
          readOnly: true
        gateway:
          type: string
          nullable: true
          readOnly: true
        is_active:
          type: boolean
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    SlurmAllocationRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
      required:
      - name
      - project
      - service_settings
    SlurmAllocationSetLimits:
      type: object
      properties:
        cpu_limit:
          type: integer
          minimum: -1
        gpu_limit:
          type: integer
          minimum: -1
        ram_limit:
          type: integer
          minimum: -1
      required:
      - cpu_limit
      - gpu_limit
      - ram_limit
      description: ''
    SlurmAllocationSetLimitsRequest:
      type: object
      properties:
        cpu_limit:
          type: integer
          minimum: -1
        gpu_limit:
          type: integer
          minimum: -1
        ram_limit:
          type: integer
          minimum: -1
      required:
      - cpu_limit
      - gpu_limit
      - ram_limit
      description: ''
    SlurmAllocationUserUsage:
      type: object
      properties:
        cpu_usage:
          type: integer
          maximum: 9223372036854775807
          minimum: -9223372036854775808
          format: int64
        ram_usage:
          type: integer
          maximum: 9223372036854775807
          minimum: -9223372036854775808
          format: int64
        gpu_usage:
          type: integer
          maximum: 9223372036854775807
          minimum: -9223372036854775808
          format: int64
        month:
          type: integer
          maximum: 12
          minimum: 1
        year:
          type: integer
          maximum: 32767
          minimum: 0
        allocation:
          type: string
          format: uri
        user:
          type: string
          format: uri
          nullable: true
        username:
          type: string
          maxLength: 32
        full_name:
          type: string
          readOnly: true
      required:
      - allocation
      - full_name
      - month
      - username
      - year
      description: ''
    SlurmAssociation:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        username:
          type: string
          pattern: ^[a-zA-Z0-9_.][a-zA-Z0-9_.-]*[a-zA-Z0-9_.$-]?$
          maxLength: 128
        allocation:
          type: string
          format: uri
      required:
      - allocation
      - username
      - uuid
      description: ''
    SlurmCommand:
      type: object
      description: ''
      properties:
        type:
          type: string
          description: 'Command type: fairshare, limits, qos, reset_usage'
        description:
          type: string
          description: Human-readable description
        command:
          type: string
          description: Actual shell command
        parameters:
          type: object
          additionalProperties: {}
          description: Command parameters
      required:
      - command
      - description
      - parameters
      - type
    SlurmCommandHistory:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        command_type:
          type: string
          description: 'Type of command: fairshare, limits, qos, reset_usage'
          maxLength: 50
        description:
          type: string
          description: Human-readable description of what the command does
        shell_command:
          type: string
          description: Actual shell command that was/would be executed
        parameters:
          description: Command parameters as key-value pairs
        executed_at:
          type: string
          format: date-time
          readOnly: true
        execution_mode:
          allOf:
          - $ref: '#/components/schemas/ExecutionModeEnum'
          description: Whether command was executed in production or emulator mode
        success:
          type: boolean
          description: Whether the command execution was successful
        error_message:
          type: string
          description: Error message if command execution failed
      required:
      - command_type
      - description
      - executed_at
      - shell_command
      - uuid
    SlurmCommandResultModeEnum:
      enum:
      - production
      - emulator
      type: string
      description: ''
    SlurmCommandResultRequest:
      type: object
      description: ''
      properties:
        resource_uuid:
          type: string
          format: uuid
          description: UUID of the resource the command was applied to
        success:
          type: boolean
          description: Whether the command was applied successfully
        error_message:
          type: string
          default: ''
          description: Error message if the command failed
        mode:
          allOf:
          - $ref: '#/components/schemas/SlurmCommandResultModeEnum'
          default: production
          description: Execution mode of the command
        commands_executed:
          type: array
          items:
            type: string
            minLength: 1
          description: List of shell commands actually executed by the site agent
      required:
      - resource_uuid
      - success
    SlurmPeriodicUsagePolicy:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        scope:
          type: string
          format: uri
        scope_name:
          type: string
          readOnly: true
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
        actions:
          type: string
          maxLength: 255
        created:
          type: string
          format: date-time
          readOnly: true
        created_by_full_name:
          type: string
          readOnly: true
        created_by_username:
          type: string
          readOnly: true
        has_fired:
          type: boolean
          readOnly: true
        fired_datetime:
          type: string
          format: date-time
          readOnly: true
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        organization_groups:
          type: array
          items:
            type: string
            format: uri
        apply_to_all:
          type: boolean
          description: If True, policy applies to all customers. Mutually exclusive
            with organization_groups.
        component_limits_set:
          type: array
          items:
            $ref: '#/components/schemas/NestedOfferingComponentLimit'
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
        period_name:
          type: string
          readOnly: true
        limit_type:
          allOf:
          - $ref: '#/components/schemas/LimitTypeEnum'
          description: SLURM limit type to apply
        tres_billing_enabled:
          type: boolean
          description: Use TRES billing units instead of raw TRES values
        tres_billing_weights:
          description: 'TRES billing weights (e.g., {"CPU": 0.015625, "Mem": 0.001953125,
            "GRES/gpu": 0.25})'
        carryover_factor:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Maximum percentage of base allocation that can carry over from
            unused previous period (0-100)
        grace_ratio:
          type: number
          format: double
          description: Grace period ratio (0.2 = 20% overconsumption allowed)
        carryover_enabled:
          type: boolean
          description: Enable unused allocation carryover to next period
        raw_usage_reset:
          type: boolean
          description: Reset raw usage at period transitions (PriorityUsageResetPeriod=None)
        qos_strategy:
          allOf:
          - $ref: '#/components/schemas/QosStrategyEnum'
          description: QoS management strategy
        warnings:
          type: array
          items:
            type: string
          readOnly: true
          description: Warnings about misconfiguration, e.g. missing site agent queue
            registration.
      required:
      - actions
      - component_limits_set
      - created
      - created_by_full_name
      - created_by_username
      - fired_datetime
      - has_fired
      - period_name
      - scope
      - scope_name
      - scope_uuid
      - url
      - uuid
      - warnings
    SlurmPeriodicUsagePolicyRequest:
      type: object
      description: ''
      properties:
        scope:
          type: string
          format: uri
        actions:
          type: string
          minLength: 1
          maxLength: 255
        options:
          description: Fields for saving actions extra data. Keys are name of actions.
        organization_groups:
          type: array
          items:
            type: string
            format: uri
        apply_to_all:
          type: boolean
          description: If True, policy applies to all customers. Mutually exclusive
            with organization_groups.
        component_limits_set:
          type: array
          items:
            $ref: '#/components/schemas/NestedOfferingComponentLimitRequest'
        period:
          allOf:
          - $ref: '#/components/schemas/PolicyPeriodEnum'
          minimum: -2147483648
          maximum: 2147483647
        limit_type:
          allOf:
          - $ref: '#/components/schemas/LimitTypeEnum'
          description: SLURM limit type to apply
        tres_billing_enabled:
          type: boolean
          description: Use TRES billing units instead of raw TRES values
        tres_billing_weights:
          description: 'TRES billing weights (e.g., {"CPU": 0.015625, "Mem": 0.001953125,
            "GRES/gpu": 0.25})'
        carryover_factor:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Maximum percentage of base allocation that can carry over from
            unused previous period (0-100)
        grace_ratio:
          type: number
          format: double
          description: Grace period ratio (0.2 = 20% overconsumption allowed)
        carryover_enabled:
          type: boolean
          description: Enable unused allocation carryover to next period
        raw_usage_reset:
          type: boolean
          description: Reset raw usage at period transitions (PriorityUsageResetPeriod=None)
        qos_strategy:
          allOf:
          - $ref: '#/components/schemas/QosStrategyEnum'
          description: QoS management strategy
      required:
      - actions
      - component_limits_set
      - scope
    SlurmPolicyCarryover:
      type: object
      description: ''
      properties:
        previous_usage:
          type: number
          format: double
        carryover_factor:
          type: integer
        base_allocation:
          type: number
          format: double
        unused:
          type: number
          format: double
        carryover_cap:
          type: number
          format: double
        carryover:
          type: number
          format: double
        total_allocation:
          type: number
          format: double
      required:
      - base_allocation
      - carryover
      - carryover_cap
      - carryover_factor
      - previous_usage
      - total_allocation
      - unused
    SlurmPolicyDateProjection:
      type: object
      description: ''
      properties:
        days:
          type: integer
          nullable: true
        date:
          type: string
          format: date
          nullable: true
        status:
          $ref: '#/components/schemas/SlurmPolicyDateProjectionStatusEnum'
      required:
      - date
      - days
      - status
    SlurmPolicyDateProjectionStatusEnum:
      enum:
      - never
      - exceeded
      - projected
      type: string
      description: ''
    SlurmPolicyDateProjections:
      type: object
      description: ''
      properties:
        notification:
          $ref: '#/components/schemas/SlurmPolicyDateProjection'
        slowdown:
          $ref: '#/components/schemas/SlurmPolicyDateProjection'
        blocked:
          $ref: '#/components/schemas/SlurmPolicyDateProjection'
      required:
      - blocked
      - notification
      - slowdown
    SlurmPolicyDryRunResource:
      type: object
      description: ''
      properties:
        resource_uuid:
          type: string
          format: uuid
        resource_name:
          type: string
        usage_percentage:
          type: number
          format: double
        paused:
          type: boolean
        downscaled:
          type: boolean
        would_trigger:
          type: array
          items:
            type: string
      required:
      - downscaled
      - paused
      - resource_name
      - resource_uuid
      - usage_percentage
      - would_trigger
    SlurmPolicyDryRunResponse:
      type: object
      description: ''
      properties:
        policy_uuid:
          type: string
          format: uuid
        billing_period:
          type: string
        grace_limit_percentage:
          type: number
          format: double
        resources:
          type: array
          items:
            $ref: '#/components/schemas/SlurmPolicyDryRunResource'
      required:
      - billing_period
      - grace_limit_percentage
      - policy_uuid
      - resources
    SlurmPolicyEvaluateRequestRequest:
      type: object
      description: ''
      properties:
        resource_uuid:
          type: string
          format: uuid
          nullable: true
          description: Evaluate a specific resource. If omitted, evaluates all offering
            resources.
    SlurmPolicyEvaluateResource:
      type: object
      description: ''
      properties:
        resource_uuid:
          type: string
          format: uuid
        resource_name:
          type: string
        usage_percentage:
          type: number
          format: double
        actions_taken:
          type: array
          items:
            type: string
        previous_state:
          type: object
          additionalProperties: {}
        new_state:
          type: object
          additionalProperties: {}
      required:
      - actions_taken
      - new_state
      - previous_state
      - resource_name
      - resource_uuid
      - usage_percentage
    SlurmPolicyEvaluateResponse:
      type: object
      description: ''
      properties:
        policy_uuid:
          type: string
          format: uuid
        billing_period:
          type: string
        resources:
          type: array
          items:
            $ref: '#/components/schemas/SlurmPolicyEvaluateResource'
      required:
      - billing_period
      - policy_uuid
      - resources
    SlurmPolicyEvaluationLog:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        resource_uuid:
          type: string
          format: uuid
          readOnly: true
        resource_name:
          type: string
          readOnly: true
        billing_period:
          type: string
          description: Billing period identifier, e.g. '2026-Q1'
          maxLength: 20
        usage_percentage:
          type: number
          format: double
          description: Resource usage percentage at the time of evaluation
        grace_limit_percentage:
          type: number
          format: double
          description: Grace limit percentage threshold (e.g. 120 for 20% grace)
        actions_taken:
          description: List of actions taken during this evaluation (e.g. ['pause',
            'notify'])
        previous_state:
          description: 'Resource state before evaluation: {paused: bool, downscaled:
            bool}'
        new_state:
          description: 'Resource state after evaluation: {paused: bool, downscaled:
            bool}'
        stomp_message_sent:
          type: boolean
          description: Whether a STOMP message was sent to the site agent
        site_agent_confirmed:
          type: boolean
          nullable: true
          description: Whether the site agent confirmed command execution (null =
            no response yet)
        site_agent_response:
          nullable: true
          description: Response payload from the site agent
        evaluated_at:
          type: string
          format: date-time
          readOnly: true
          description: When this evaluation was performed
      required:
      - billing_period
      - evaluated_at
      - grace_limit_percentage
      - resource_name
      - resource_uuid
      - usage_percentage
      - uuid
    SlurmPolicyPreviewRequestRequest:
      type: object
      description: ''
      properties:
        allocation:
          type: number
          format: double
          default: 1000.0
          description: Base allocation for the period (in node-hours or billing units)
        grace_ratio:
          type: number
          format: double
          maximum: 1
          minimum: 0
          default: 0.2
          description: Grace ratio for overconsumption allowance (0.2 = 20%)
        previous_usage:
          type: number
          format: double
          default: 0.0
          description: Usage from the previous period
        carryover_factor:
          type: integer
          maximum: 100
          minimum: 0
          default: 50
          description: Maximum percentage of base allocation that can carry over (0-100)
        carryover_enabled:
          type: boolean
          default: true
          description: Whether unused allocation carries over to next period
        resource_uuid:
          type: string
          format: uuid
          nullable: true
          description: Optional resource UUID to use for current usage data
        current_usage:
          type: number
          format: double
          default: 0.0
          description: Current usage in this period (manual input or from resource)
        daily_usage_rate:
          type: number
          format: double
          default: 0.0
          description: Average daily usage rate for projections
    SlurmPolicyPreviewResponse:
      type: object
      description: ''
      properties:
        base_allocation:
          type: number
          format: double
        effective_allocation:
          type: number
          format: double
        carryover_enabled:
          type: boolean
        carryover:
          allOf:
          - $ref: '#/components/schemas/SlurmPolicyCarryover'
          nullable: true
        thresholds:
          $ref: '#/components/schemas/SlurmPolicyThresholds'
        grace_ratio:
          type: number
          format: double
        carryover_factor:
          type: integer
        current_usage:
          type: number
          format: double
        daily_usage_rate:
          type: number
          format: double
        usage_percentage:
          type: number
          format: double
        current_qos_status:
          $ref: '#/components/schemas/CurrentQosStatusEnum'
        date_projections:
          $ref: '#/components/schemas/SlurmPolicyDateProjections'
        preview_commands:
          type: array
          items:
            $ref: '#/components/schemas/SlurmCommand'
        command_history:
          type: array
          items:
            $ref: '#/components/schemas/SlurmCommandHistory'
        billing_period_start:
          type: string
          format: date
        billing_period_end:
          type: string
          format: date
      required:
      - base_allocation
      - carryover
      - carryover_enabled
      - carryover_factor
      - effective_allocation
      - grace_ratio
      - thresholds
    SlurmPolicyThresholds:
      type: object
      description: ''
      properties:
        allocation:
          type: number
          format: double
        grace_ratio:
          type: number
          format: double
        notification_ratio:
          type: number
          format: double
        notification_threshold:
          type: number
          format: double
        slowdown_threshold:
          type: number
          format: double
        blocked_threshold:
          type: number
          format: double
      required:
      - allocation
      - blocked_threshold
      - grace_ratio
      - notification_ratio
      - notification_threshold
      - slowdown_threshold
    SmaxWebHookReceiver:
      type: object
      properties:
        id:
          type: string
      required:
      - id
      description: ''
    SmaxWebHookReceiverRequest:
      type: object
      properties:
        id:
          type: string
          minLength: 1
      required:
      - id
      description: ''
    SoftwareCatalog:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        name:
          type: string
          description: Catalog name (e.g., EESSI, Spack)
          maxLength: 100
        version:
          type: string
          description: Catalog version (e.g., 2023.06, 0.21.0)
          maxLength: 50
        catalog_type:
          allOf:
          - $ref: '#/components/schemas/CatalogTypeEnum'
          default: binary_runtime
          description: Type of software catalog
        catalog_type_display:
          type: string
          readOnly: true
        source_url:
          type: string
          format: uri
          description: Catalog source URL
          maxLength: 200
        description:
          type: string
        metadata:
          description: Catalog-specific metadata (architecture maps, API endpoints,
            etc.)
        auto_update_enabled:
          type: boolean
          description: Whether to automatically update this catalog via scheduled
            tasks
        last_update_attempt:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        last_successful_update:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        update_errors:
          type: string
        package_count:
          type: integer
          readOnly: true
        version_count:
          type: integer
          readOnly: true
        target_count:
          type: integer
          readOnly: true
      required:
      - catalog_type_display
      - created
      - last_successful_update
      - last_update_attempt
      - modified
      - name
      - package_count
      - target_count
      - url
      - uuid
      - version
      - version_count
    SoftwareCatalogDiscover:
      type: object
      description: ''
      properties:
        name:
          type: string
        catalog_type:
          type: string
        latest_version:
          type: string
        existing:
          type: boolean
        existing_version:
          type: string
          nullable: true
        update_available:
          type: boolean
      required:
      - catalog_type
      - existing
      - existing_version
      - latest_version
      - name
      - update_available
    SoftwareCatalogImportRequest:
      type: object
      description: ''
      properties:
        name:
          $ref: '#/components/schemas/NameEnum'
      required:
      - name
    SoftwareCatalogRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          description: Catalog name (e.g., EESSI, Spack)
          maxLength: 100
        version:
          type: string
          minLength: 1
          description: Catalog version (e.g., 2023.06, 0.21.0)
          maxLength: 50
        catalog_type:
          allOf:
          - $ref: '#/components/schemas/CatalogTypeEnum'
          default: binary_runtime
          description: Type of software catalog
        source_url:
          type: string
          format: uri
          description: Catalog source URL
          maxLength: 200
        description:
          type: string
        metadata:
          description: Catalog-specific metadata (architecture maps, API endpoints,
            etc.)
        auto_update_enabled:
          type: boolean
          description: Whether to automatically update this catalog via scheduled
            tasks
        update_errors:
          type: string
      required:
      - name
      - version
    SoftwareCatalogUUID:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          description: UUID of the software catalog
      required:
      - uuid
      description: ''
    SoftwarePackage:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        catalog:
          type: string
          format: uri
        name:
          type: string
          maxLength: 200
        description:
          type: string
        homepage:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        categories:
          description: Package categories (e.g., ['bio', 'hpc', 'build-tools'])
        licenses:
          description: Software licenses (e.g., ['GPL-3.0', 'MIT'])
        maintainers:
          description: Package maintainers
        is_extension:
          type: boolean
          description: Whether this package is an extension of another package
        parent_software:
          type: string
          format: uri
          nullable: true
          description: Parent package for extensions (e.g., Python package within
            Python)
        catalog_name:
          type: string
          readOnly: true
        catalog_version:
          type: string
          readOnly: true
        catalog_type:
          type: string
          readOnly: true
        catalog_type_display:
          type: string
          readOnly: true
        version_count:
          type: integer
          readOnly: true
        extension_count:
          type: integer
          readOnly: true
        versions:
          type: array
          items:
            $ref: '#/components/schemas/NestedSoftwareVersion'
          readOnly: true
      required:
      - catalog
      - catalog_name
      - catalog_type
      - catalog_type_display
      - catalog_version
      - created
      - extension_count
      - modified
      - name
      - url
      - uuid
      - version_count
      - versions
    SoftwarePackageRequest:
      type: object
      description: ''
      properties:
        catalog:
          type: string
          format: uri
        name:
          type: string
          minLength: 1
          maxLength: 200
        description:
          type: string
        homepage:
          type: string
          format: uri
          nullable: true
          maxLength: 200
        categories:
          description: Package categories (e.g., ['bio', 'hpc', 'build-tools'])
        licenses:
          description: Software licenses (e.g., ['GPL-3.0', 'MIT'])
        maintainers:
          description: Package maintainers
        is_extension:
          type: boolean
          description: Whether this package is an extension of another package
        parent_software:
          type: string
          format: uri
          nullable: true
          description: Parent package for extensions (e.g., Python package within
            Python)
      required:
      - catalog
      - name
    SoftwareTarget:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        target_type:
          type: string
          readOnly: true
          description: Type of target (architecture, platform, variant, etc.)
        target_name:
          type: string
          readOnly: true
          description: Target identifier (x86_64/generic, linux, variant_name, etc.)
        target_subtype:
          type: string
          readOnly: true
          description: Target subtype (microarchitecture, distribution, etc.)
        location:
          type: string
          readOnly: true
          description: Target location (CVMFS path, download URL, etc.)
        metadata:
          readOnly: true
          description: Target-specific metadata (build options, system requirements,
            etc.)
      required:
      - created
      - location
      - metadata
      - modified
      - target_name
      - target_subtype
      - target_type
      - url
      - uuid
    SoftwareVersion:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        version:
          type: string
          readOnly: true
        release_date:
          type: string
          format: date
          readOnly: true
          nullable: true
        dependencies:
          readOnly: true
          description: Package dependencies (format varies by catalog type)
        metadata:
          readOnly: true
          description: Version-specific metadata (toolchains, build info, modules,
            etc.)
        package_name:
          type: string
          readOnly: true
        catalog_type:
          type: string
          readOnly: true
        target_count:
          type: integer
          readOnly: true
        module:
          type: object
          additionalProperties: {}
          readOnly: true
        required_modules:
          type: array
          items: {}
          readOnly: true
        extensions:
          type: array
          items: {}
          readOnly: true
        toolchain:
          type: object
          additionalProperties: {}
          readOnly: true
        toolchain_families_compatibility:
          type: array
          items: {}
          readOnly: true
      required:
      - catalog_type
      - created
      - dependencies
      - extensions
      - metadata
      - modified
      - module
      - package_name
      - release_date
      - required_modules
      - target_count
      - toolchain
      - toolchain_families_compatibility
      - url
      - uuid
      - version
    SourceTypeEnum:
      enum:
      - call_description
      - all_proposals
      - selected_proposals
      - custom_keywords
      type: string
      description: ''
    SshKey:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        public_key:
          type: string
          maxLength: 2000
        fingerprint_md5:
          type: string
          readOnly: true
        fingerprint_sha256:
          type: string
          readOnly: true
        fingerprint_sha512:
          type: string
          readOnly: true
        user_uuid:
          type: string
          format: uuid
          readOnly: true
        is_shared:
          type: boolean
          readOnly: true
        type:
          type: string
          readOnly: true
      required: []
    SshKeyRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          maxLength: 150
        public_key:
          type: string
          minLength: 1
          maxLength: 2000
      required:
      - public_key
    StateTransitionError:
      type: object
      properties:
        detail:
          type: string
          description: Error message to be displayed to the user
      required:
      - detail
      description: ''
    StorageDataType:
      type: object
      properties:
        key:
          type: string
        label:
          type: string
      required:
      - key
      - label
      description: ''
    StorageDataTypeRequest:
      type: object
      properties:
        key:
          type: string
          minLength: 1
        label:
          type: string
          minLength: 1
      required:
      - key
      - label
      description: ''
    StorageFolderConfig:
      type: object
      properties:
        component_type:
          type: string
        default_hard_quota_multiplier:
          type: number
          format: double
          minimum: 1.0
          default: 1.0
        inode_soft_multiplier:
          type: integer
          minimum: 1
          default: 7000
        inode_hard_multiplier:
          type: integer
          minimum: 1
          default: 10000
        storage_data_types:
          type: array
          items:
            $ref: '#/components/schemas/StorageDataType'
        default_permission:
          allOf:
          - $ref: '#/components/schemas/DefaultPermissionEnum'
          default: '2770'
          description: Default permission to auto-select
      required:
      - component_type
      - storage_data_types
      description: ''
    StorageFolderConfigRequest:
      type: object
      properties:
        component_type:
          type: string
          minLength: 1
        default_hard_quota_multiplier:
          type: number
          format: double
          minimum: 1.0
          default: 1.0
        inode_soft_multiplier:
          type: integer
          minimum: 1
          default: 7000
        inode_hard_multiplier:
          type: integer
          minimum: 1
          default: 10000
        storage_data_types:
          type: array
          items:
            $ref: '#/components/schemas/StorageDataTypeRequest'
        default_permission:
          allOf:
          - $ref: '#/components/schemas/DefaultPermissionEnum'
          default: '2770'
          description: Default permission to auto-select
      required:
      - component_type
      - storage_data_types
      description: ''
    StorageModeEnum:
      enum:
      - fixed
      - dynamic
      type: string
      description: ''
    SubNetMapping:
      type: object
      properties:
        src_cidr:
          type: string
        dst_cidr:
          type: string
      required:
      - dst_cidr
      - src_cidr
      description: ''
    SubNetMappingRequest:
      type: object
      properties:
        src_cidr:
          type: string
          minLength: 1
        dst_cidr:
          type: string
          minLength: 1
      required:
      - dst_cidr
      - src_cidr
      description: ''
    SubmitRequestResponse:
      type: object
      properties:
        uuid:
          type: string
          description: UUID of the created permission request
        scope_name:
          type: string
          description: Name of the invitation scope
        scope_uuid:
          type: string
          description: UUID of the invitation scope
        auto_approved:
          type: boolean
          description: Whether the request was automatically approved
      required:
      - auto_approved
      - scope_name
      - scope_uuid
      - uuid
      description: ''
    SubresourceOffering:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the offering
        type:
          type: string
          readOnly: true
          description: Type of the offering
      required:
      - type
      - uuid
      description: ''
    SuggestAlternativeReviewers:
      type: object
      description: ''
      properties:
        suggestions:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: List of alternative reviewers with affinity scores
      required:
      - suggestions
    SuggestionRejectRequest:
      type: object
      description: ''
      properties:
        reason:
          type: string
          description: Reason for rejecting the suggestion
    SupportStats:
      type: object
      properties:
        open_issues_count:
          type: integer
          readOnly: true
        closed_this_month_count:
          type: integer
          readOnly: true
        recent_broadcasts_count:
          type: integer
          readOnly: true
      required:
      - closed_this_month_count
      - open_issues_count
      - recent_broadcasts_count
      description: ''
    SupportUser:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        backend_id:
          type: string
          nullable: true
          maxLength: 255
        user:
          type: string
          format: uri
          nullable: true
        backend_name:
          type: string
          nullable: true
          maxLength: 255
      required:
      - backend_id
      - name
      - url
      - user
      - uuid
    SupportedCountriesResponse:
      type: object
      properties:
        supported_countries:
          type: array
          items:
            type: string
      required:
      - supported_countries
      description: ''
    SyncFromArrowRequestRequest:
      type: object
      description: ''
      properties:
        settings_uuid:
          type: string
          format: uuid
    SyncPauseRequestRequest:
      type: object
      description: ''
      properties:
        settings_uuid:
          type: string
          format: uuid
        pause_global:
          type: boolean
          default: false
    SyncPauseResponse:
      type: object
      description: ''
      properties:
        paused:
          type: array
          items:
            type: string
          description: List of paused items
        resumed:
          type: array
          items:
            type: string
          description: List of resumed items
    SyncResourceHistoricalConsumptionRequestRequest:
      type: object
      description: ''
      properties:
        resource_uuid:
          type: string
          format: uuid
          description: UUID of the resource to sync
        period_from:
          type: string
          minLength: 1
          description: Start period in YYYY-MM format. Defaults to 12 months ago.
        period_to:
          type: string
          minLength: 1
          description: End period in YYYY-MM format. Defaults to current month.
        force:
          type: boolean
          default: false
          description: If True, sync even for finalized periods.
        dry_run:
          type: boolean
          default: false
          description: If True, preview consumption data without saving.
      required:
      - resource_uuid
    SyncResourceHistoricalConsumptionResponse:
      type: object
      description: ''
      properties:
        resource_uuid:
          type: string
          format: uuid
        resource_name:
          type: string
        periods_synced:
          type: integer
        periods_skipped:
          type: integer
        periods_no_data:
          type: integer
          default: 0
        errors:
          type: array
          items:
            type: object
            additionalProperties: {}
        dry_run:
          type: boolean
          default: false
        preview_periods:
          type: array
          items:
            type: object
            additionalProperties: {}
      required:
      - errors
      - periods_skipped
      - periods_synced
      - resource_name
      - resource_uuid
    SyncResourcesRequestRequest:
      type: object
      description: ''
      properties:
        period_from:
          type: string
          minLength: 1
          description: 'Start period in YYYY-MM format (default: 6 months ago, Arrow
            max)'
        period_to:
          type: string
          minLength: 1
          description: 'End period in YYYY-MM format (default: current month)'
        settings_uuid:
          type: string
          format: uuid
        offering_uuid:
          type: string
          format: uuid
          description: Offering UUID for creating new resources
        project_uuid:
          type: string
          format: uuid
          description: Project UUID for creating new resources (ignored if force_import=True)
        force_import:
          type: boolean
          default: false
          description: If True, auto-create Waldur Customers and Projects from Arrow
            data. Each Arrow customer gets a Waldur Customer with an 'Arrow Azure
            Subscriptions' project.
    SyncResourcesResponse:
      type: object
      description: ''
      properties:
        synced:
          type: integer
        created:
          type: integer
        updated:
          type: integer
        orders_created:
          type: integer
        customers_created:
          type: integer
        projects_created:
          type: integer
        mappings_created:
          type: integer
        invoices_created:
          type: integer
        invoice_items_created:
          type: integer
        errors:
          type: array
          items:
            type: object
            additionalProperties: {}
      required:
      - created
      - synced
      - updated
    SyncStatusEnum:
      enum:
      - in_sync
      - out_of_sync
      - sync_failed
      type: string
      description: ''
    SystemLog:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        source:
          allOf:
          - $ref: '#/components/schemas/SystemLogSourceEnum'
          readOnly: true
        instance:
          type: string
          readOnly: true
          description: Pod name (K8s) or container name (Docker)
        level:
          type: string
          readOnly: true
        level_number:
          type: integer
          readOnly: true
        logger_name:
          type: string
          readOnly: true
        message:
          type: string
          readOnly: true
        context:
          readOnly: true
      required:
      - context
      - created
      - id
      - instance
      - level
      - level_number
      - logger_name
      - message
      - source
      description: ''
    SystemLogInstance:
      type: object
      properties:
        source:
          type: string
          readOnly: true
        instance:
          type: string
          readOnly: true
        last_seen:
          type: string
          format: date-time
          readOnly: true
        count:
          type: integer
          readOnly: true
      required:
      - count
      - instance
      - last_seen
      - source
      description: ''
    SystemLogSourceEnum:
      enum:
      - api
      - worker
      - beat
      type: string
      description: ''
    SystemLogStatsInstance:
      type: object
      properties:
        source:
          type: string
          readOnly: true
        instance:
          type: string
          readOnly: true
        count:
          type: integer
          readOnly: true
      required:
      - count
      - instance
      - source
      description: ''
    SystemLogStatsResponse:
      type: object
      properties:
        instances:
          type: array
          items:
            $ref: '#/components/schemas/SystemLogStatsInstance'
          readOnly: true
        total_size_bytes:
          type: integer
          readOnly: true
        total_size_mb:
          type: number
          format: double
          readOnly: true
      required:
      - instances
      - total_size_bytes
      - total_size_mb
      description: ''
    TableGrowthAlert:
      type: object
      description: ''
      properties:
        table_name:
          type: string
          description: Name of the table triggering the alert
        period:
          allOf:
          - $ref: '#/components/schemas/GrowthPeriodEnum'
          description: Growth period that exceeded the threshold
        growth_percent:
          type: number
          format: double
          description: Actual growth percentage observed
        threshold:
          type: integer
          description: Configured threshold that was exceeded
      required:
      - growth_percent
      - period
      - table_name
      - threshold
    TableGrowthStats:
      type: object
      description: ''
      properties:
        table_name:
          type: string
          description: Name of the database table
        current_total_size:
          type: integer
          description: Current total size including indexes in bytes
        current_data_size:
          type: integer
          description: Current data-only size in bytes
        current_row_estimate:
          type: integer
          nullable: true
          description: Current estimated row count
        week_ago_total_size:
          type: integer
          nullable: true
          description: Total size from 7 days ago in bytes
        week_ago_row_estimate:
          type: integer
          nullable: true
          description: Row estimate from 7 days ago
        month_ago_total_size:
          type: integer
          nullable: true
          description: Total size from 30 days ago in bytes
        month_ago_row_estimate:
          type: integer
          nullable: true
          description: Row estimate from 30 days ago
        weekly_growth_percent:
          type: number
          format: double
          nullable: true
          description: Percentage growth over the past week
        monthly_growth_percent:
          type: number
          format: double
          nullable: true
          description: Percentage growth over the past month
        weekly_row_growth_percent:
          type: number
          format: double
          nullable: true
          description: Percentage row count growth over the past week
        monthly_row_growth_percent:
          type: number
          format: double
          nullable: true
          description: Percentage row count growth over the past month
      required:
      - current_data_size
      - current_row_estimate
      - current_total_size
      - month_ago_row_estimate
      - month_ago_total_size
      - monthly_growth_percent
      - monthly_row_growth_percent
      - table_name
      - week_ago_row_estimate
      - week_ago_total_size
      - weekly_growth_percent
      - weekly_row_growth_percent
    TableGrowthStatsResponse:
      type: object
      description: ''
      properties:
        date:
          type: string
          format: date
          description: Current date of the statistics
        weekly_threshold_percent:
          type: integer
          description: Configured weekly growth alert threshold
        monthly_threshold_percent:
          type: integer
          description: Configured monthly growth alert threshold
        tables:
          type: array
          items:
            $ref: '#/components/schemas/TableGrowthStats'
          description: Table growth statistics sorted by growth rate
        alerts:
          type: array
          items:
            $ref: '#/components/schemas/TableGrowthAlert'
          description: List of tables that exceeded configured growth thresholds
      required:
      - alerts
      - date
      - monthly_threshold_percent
      - tables
      - weekly_threshold_percent
    TableSize:
      type: object
      properties:
        table_name:
          type: string
          readOnly: true
          description: Name of the database table
        total_size:
          type: integer
          readOnly: true
          description: Total size of the table in bytes
        data_size:
          type: integer
          readOnly: true
          description: Size of the actual data in bytes
        external_size:
          type: integer
          readOnly: true
          description: Size of external data (e.g., TOAST) in bytes
      required:
      - data_size
      - external_size
      - table_name
      - total_size
      description: ''
    Tag:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 100
        description:
          type: string
        offering_count:
          type: integer
          description: |-
            Return offering count filtered by user permissions.
            Staff sees all offerings.
            Service providers see their own + active/paused/archived public offerings.
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        created_by_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        created_by_full_name:
          type: string
          readOnly: true
      required:
      - created
      - created_by_full_name
      - created_by_username
      - name
      - offering_count
      - url
      - uuid
    TagRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 100
        description:
          type: string
      required:
      - name
    TagsRequest:
      type: object
      properties:
        tags:
          type: array
          items:
            type: string
            format: uuid
      description: ''
    TargetUser:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        username:
          type: string
        full_name:
          type: string
      required:
      - full_name
      - username
      - uuid
    Template:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
        issue_type:
          $ref: '#/components/schemas/IssueTypeEnum'
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/TemplateAttachment'
          readOnly: true
      required:
      - attachments
      - description
      - name
      - url
      - uuid
      description: ''
    TemplateAttachment:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        file:
          type: string
          format: uri
        mime_type:
          type: string
          readOnly: true
        file_size:
          type: integer
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
      required:
      - created
      - file
      - file_size
      - mime_type
      - name
      - uuid
      description: ''
    TemplateAttachmentRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        file:
          type: string
          format: binary
      required:
      - file
      - name
      description: ''
    TemplateRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          minLength: 1
        issue_type:
          $ref: '#/components/schemas/IssueTypeEnum'
      required:
      - description
      - name
      description: ''
    TemplateVersion:
      type: object
      properties:
        readme:
          type: string
          readOnly: true
        app_readme:
          type: string
          readOnly: true
        questions:
          type: array
          items:
            $ref: '#/components/schemas/RancherTemplateQuestion'
          readOnly: true
      required:
      - app_readme
      - questions
      - readme
      description: ''
    Tenant:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
      required:
      - name
      - url
      - uuid
      description: ''
    TenantSecurityGroupUpdateRequest:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        rules:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackSecurityGroupRuleUpdateByNameRequest'
      required:
      - name
      description: ''
    ThreadSession:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        chat_session:
          type: string
          format: uuid
          readOnly: true
        flags:
          readOnly: true
        is_archived:
          type: boolean
        message_count:
          type: integer
          readOnly: true
        user_username:
          type: string
          readOnly: true
        user_full_name:
          type: string
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required: []
    ThreadSessionRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        is_archived:
          type: boolean
    TimeSeriesToSData:
      type: object
      properties:
        date:
          type: string
          format: date
          readOnly: true
          description: Date of the data point
        count:
          type: integer
          readOnly: true
          description: Count for the date
      required:
      - count
      - date
      description: ''
    ToSConsentDashboard:
      type: object
      description: ''
      properties:
        active_users_count:
          type: integer
          readOnly: true
          description: Number of active users
        total_users_count:
          type: integer
          readOnly: true
          description: Total number of users
        active_users_percentage:
          type: number
          format: double
          readOnly: true
          description: Percentage of active users
        accepted_consents_count:
          type: integer
          readOnly: true
          description: Number of accepted consents
        revoked_consents_count:
          type: integer
          readOnly: true
          description: Number of revoked consents
        total_consents_count:
          type: integer
          readOnly: true
          description: Total number of consents
        revoked_consents_over_time:
          type: array
          items:
            $ref: '#/components/schemas/TimeSeriesToSData'
          readOnly: true
        tos_version_adoption:
          type: array
          items:
            $ref: '#/components/schemas/VersionAdoption'
          readOnly: true
        active_users_over_time:
          type: array
          items:
            $ref: '#/components/schemas/TimeSeriesToSData'
          readOnly: true
        accepted_consents_over_time:
          type: array
          items:
            $ref: '#/components/schemas/TimeSeriesToSData'
          readOnly: true
      required:
      - accepted_consents_count
      - accepted_consents_over_time
      - active_users_count
      - active_users_over_time
      - active_users_percentage
      - revoked_consents_count
      - revoked_consents_over_time
      - tos_version_adoption
      - total_consents_count
      - total_users_count
    TokenQuotaUsageResponse:
      type: object
      description: ''
      properties:
        daily_limit:
          type: integer
          maximum: 2147483647
          minimum: -1
          nullable: true
          description: Daily token limit (non-negative integer). Null uses system
            default. -1 means unlimited.
        daily_usage:
          type: integer
          maximum: 2147483647
          minimum: 0
        daily_remaining:
          type: integer
          nullable: true
          description: Get remaining daily tokens.
          readOnly: true
        daily_reset_at:
          type: string
          format: date-time
          description: Calculate next midnight (00:00:00).
          readOnly: true
        daily_system_default:
          type: integer
          description: Get system default daily token limit from constance config.
          readOnly: true
        weekly_limit:
          type: integer
          maximum: 2147483647
          minimum: -1
          nullable: true
          description: Weekly token limit (non-negative integer). Null uses system
            default. -1 means unlimited.
        weekly_usage:
          type: integer
          maximum: 2147483647
          minimum: 0
        weekly_remaining:
          type: integer
          nullable: true
          description: Get remaining weekly tokens.
          readOnly: true
        weekly_reset_at:
          type: string
          format: date-time
          description: Calculate next Monday at midnight.
          readOnly: true
        weekly_system_default:
          type: integer
          description: Get system default weekly token limit from constance config.
          readOnly: true
        monthly_limit:
          type: integer
          maximum: 2147483647
          minimum: -1
          nullable: true
          description: Monthly token limit (non-negative integer). Null uses system
            default. -1 means unlimited.
        monthly_usage:
          type: integer
          maximum: 2147483647
          minimum: 0
        monthly_remaining:
          type: integer
          nullable: true
          description: Get remaining monthly tokens.
          readOnly: true
        monthly_reset_at:
          type: string
          format: date-time
          description: Calculate first day of next month at midnight.
          readOnly: true
        monthly_system_default:
          type: integer
          description: Get system default monthly token limit from constance config.
          readOnly: true
      required:
      - daily_remaining
      - daily_reset_at
      - daily_system_default
      - monthly_remaining
      - monthly_reset_at
      - monthly_system_default
      - weekly_remaining
      - weekly_reset_at
      - weekly_system_default
    TokenRequest:
      type: object
      properties:
        token:
          type: string
          minLength: 1
          description: Authentication token for invitation acceptance
      required:
      - token
      description: ''
    ToolExecuteRequest:
      type: object
      properties:
        tool:
          type: string
          minLength: 1
          description: Name of the tool to execute.
          maxLength: 100
        arguments:
          description: Tool arguments.
      required:
      - tool
      description: ''
    TopQueue:
      type: object
      description: ''
      properties:
        vhost:
          type: string
          readOnly: true
          description: Virtual host name
        name:
          type: string
          readOnly: true
          description: Queue name
        messages:
          type: integer
          readOnly: true
          description: Number of messages in queue
        consumers:
          type: integer
          readOnly: true
          description: Number of consumers attached
      required:
      - consumers
      - messages
      - name
      - vhost
    TotalCustomerCost:
      type: object
      properties:
        total:
          type: number
          format: double
          readOnly: true
        price:
          type: number
          format: double
          readOnly: true
      required:
      - price
      - total
      description: ''
    TransactionStats:
      type: object
      description: ''
      properties:
        committed:
          type: integer
          readOnly: true
          description: Total committed transactions
        rolled_back:
          type: integer
          readOnly: true
          description: Total rolled back transactions
        rollback_ratio_percent:
          type: number
          format: double
          readOnly: true
          description: Percentage of transactions that were rolled back
        deadlocks:
          type: integer
          readOnly: true
          description: Total number of deadlocks detected
      required:
      - committed
      - deadlocks
      - rollback_ratio_percent
      - rolled_back
    TriggerCOIDetectionJobTypeEnum:
      enum:
      - full_call
      - incremental
      type: string
      description: ''
    TriggerCOIDetectionRequest:
      type: object
      description: ''
      properties:
        job_type:
          allOf:
          - $ref: '#/components/schemas/TriggerCOIDetectionJobTypeEnum'
          default: full_call
    TriggerConsumptionSyncRequestRequest:
      type: object
      description: ''
      properties:
        year:
          type: integer
          maximum: 2100
          minimum: 2000
        month:
          type: integer
          maximum: 12
          minimum: 1
        settings_uuid:
          type: string
          format: uuid
        resource_uuid:
          type: string
          format: uuid
          description: Sync specific resource only
      required:
      - month
      - year
    TriggerSyncRequestRequest:
      type: object
      description: ''
      properties:
        year:
          type: integer
          maximum: 2100
          minimum: 2000
        month:
          type: integer
          maximum: 12
          minimum: 1
        settings_uuid:
          type: string
          format: uuid
        resource_uuid:
          type: string
          format: uuid
          description: If set, only sync billing lines for this resource.
      required:
      - month
      - year
    UnsilenceActionResponse:
      type: object
      description: ''
      properties:
        status:
          type: string
      required:
      - status
    UpdateActionsRequest:
      type: object
      description: ''
      properties:
        provider_action_type:
          type: string
          nullable: true
          minLength: 1
          description: Optional provider action type to update. If not provided, updates
            all providers.
    UpdateActionsResponse:
      type: object
      description: ''
      properties:
        status:
          type: string
        message:
          type: string
        provider_action_type:
          type: string
          nullable: true
      required:
      - message
      - status
    UpdateOfferingComponentRequest:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        billing_type:
          $ref: '#/components/schemas/BillingTypeEnum'
        type:
          type: string
          minLength: 1
          description: Unique internal name of the measured unit, for example floating_ip.
          pattern: ^[a-zA-Z0-9_\-\/:]+$
          maxLength: 50
        name:
          type: string
          minLength: 1
          description: Display name for the measured unit, for example, Floating IP.
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        measured_unit:
          type: string
          description: Unit of measurement, for example, GB.
          maxLength: 30
        unit_factor:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          description: The conversion factor from backend units to measured_unit
        limit_period:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/LimitPeriodEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        limit_amount:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        article_code:
          type: string
          maxLength: 30
        max_value:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        min_value:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        max_available_limit:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        is_boolean:
          type: boolean
        default_limit:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        is_prepaid:
          type: boolean
        overage_component:
          type: string
          format: uuid
          nullable: true
        min_prepaid_duration:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        max_prepaid_duration:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
      required:
      - billing_type
      - name
      - type
      - uuid
      description: ''
    UrgencyEnum:
      enum:
      - low
      - medium
      - high
      type: string
      description: ''
    User:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          pattern: ^[0-9a-z_.@+-]+$
          maxLength: 128
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        full_name:
          type: string
          readOnly: true
          maxLength: 200
        native_name:
          type: string
          maxLength: 100
        job_title:
          type: string
          maxLength: 120
        email:
          type: string
          format: email
        phone_number:
          type: string
          maxLength: 255
        organization:
          type: string
          maxLength: 255
        civil_number:
          type: string
          readOnly: true
          nullable: true
        description:
          type: string
          maxLength: 4096
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        is_support:
          type: boolean
          title: Support status
          description: Designates whether the user is a global support user.
        token:
          type: string
          readOnly: true
        token_lifetime:
          type: integer
          maximum: 2147483647
          minimum: 60
          nullable: true
          description: Token lifetime in seconds.
        token_expires_at:
          type: string
          format: date-time
          nullable: true
          readOnly: true
        registration_method:
          type: string
          readOnly: true
          description: Indicates what registration method was used.
        date_joined:
          type: string
          format: date-time
          readOnly: true
        agreement_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          description: Indicates when the user has agreed with the policy.
        notifications_enabled:
          type: boolean
          description: Designates whether the user is allowed to receive email notifications.
        preferred_language:
          type: string
          maxLength: 10
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/Permission'
          readOnly: true
        requested_email:
          type: string
          nullable: true
          readOnly: true
        affiliations:
          readOnly: true
          description: Person's affiliation within organization such as student, faculty,
            staff.
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
        birth_date:
          type: string
          format: date
          nullable: true
        identity_provider_name:
          type: string
          readOnly: true
        identity_provider_label:
          type: string
          readOnly: true
        identity_provider_management_url:
          type: string
          readOnly: true
        identity_provider_fields:
          type: array
          items:
            type: string
          readOnly: true
        image:
          type: string
          format: uri
          nullable: true
        identity_source:
          type: string
          readOnly: true
          title: Source of identity
          description: Indicates what identity provider was used.
        has_active_session:
          type: boolean
          readOnly: true
        ip_address:
          type: string
          readOnly: true
          nullable: true
        gender:
          nullable: true
          description: ISO 5218 gender code
          minimum: 0
          maximum: 32767
          oneOf:
          - $ref: '#/components/schemas/GenderEnum'
          - $ref: '#/components/schemas/NullEnum'
        personal_title:
          type: string
          description: Honorific title (Mr, Ms, Dr, Prof, etc.)
          maxLength: 50
        place_of_birth:
          type: string
          maxLength: 255
        country_of_residence:
          type: string
          maxLength: 2
        nationality:
          type: string
          description: Primary citizenship (ISO 3166-1 alpha-2 code)
          maxLength: 2
        nationalities:
          description: List of all citizenships (ISO 3166-1 alpha-2 codes)
        organization_country:
          type: string
          maxLength: 2
        organization_type:
          type: string
          description: SCHAC URN (e.g., urn:schac:homeOrganizationType:int:university)
          maxLength: 255
        organization_registry_code:
          type: string
          description: Company registration code of the user's organization, if known
          maxLength: 255
        eduperson_assurance:
          description: REFEDS assurance profile URIs from identity provider
        is_identity_manager:
          type: boolean
          description: Designates whether the user is allowed to manage remote user
            identities.
        attribute_sources:
          readOnly: true
          description: 'Per-attribute source and freshness tracking. Format: {''field_name'':
            {''source'': ''isd:<name>'', ''timestamp'': ''ISO8601''}}.'
        managed_isds:
          description: List of ISD source identifiers this user can manage via Identity
            Bridge. E.g., ['isd:puhuri', 'isd:fenix']. Non-empty list implies identity
            manager role.
        active_isds:
          readOnly: true
          description: List of ISDs that have asserted this user exists. User is deactivated
            when this becomes empty.
      required: []
    UserAction:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        action_type:
          type: string
          description: Type of action, e.g. 'pending_order', 'expiring_resource'
          maxLength: 100
        title:
          type: string
          maxLength: 255
        description:
          type: string
        urgency:
          $ref: '#/components/schemas/UrgencyEnum'
        due_date:
          type: string
          format: date-time
          nullable: true
        is_silenced:
          type: boolean
        silenced_until:
          type: string
          format: date-time
          nullable: true
        is_temporarily_silenced:
          type: boolean
          readOnly: true
        is_effectively_silenced:
          type: boolean
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        related_object_name:
          type: string
          readOnly: true
        related_object_type:
          type: string
          readOnly: true
        corrective_actions:
          type: array
          items:
            $ref: '#/components/schemas/CorrectiveAction'
          readOnly: true
        days_until_due:
          type: integer
          nullable: true
          readOnly: true
        route_name:
          type: string
          description: UI-Router state name for navigation
          maxLength: 100
        route_params:
          type: object
          additionalProperties: {}
          readOnly: true
        project_name:
          type: string
          maxLength: 255
        project_uuid:
          type: string
          format: uuid
          nullable: true
        organization_name:
          type: string
          maxLength: 255
        organization_uuid:
          type: string
          format: uuid
          nullable: true
        offering_name:
          type: string
          maxLength: 255
        offering_uuid:
          type: string
          format: uuid
          nullable: true
        offering_type:
          type: string
          maxLength: 100
        resource_name:
          type: string
          maxLength: 255
        resource_uuid:
          type: string
          format: uuid
          nullable: true
        order_type:
          type: string
          maxLength: 100
      required:
      - action_type
      - corrective_actions
      - created
      - days_until_due
      - description
      - is_effectively_silenced
      - is_temporarily_silenced
      - modified
      - related_object_name
      - related_object_type
      - route_params
      - title
      - urgency
      - uuid
    UserActionExecution:
      type: object
      description: ''
      properties:
        id:
          type: integer
          readOnly: true
        corrective_action_label:
          type: string
          maxLength: 255
        executed_at:
          type: string
          format: date-time
          readOnly: true
        success:
          type: boolean
        error_message:
          type: string
        execution_metadata:
          type: string
      required:
      - corrective_action_label
      - executed_at
      - id
    UserActionProvider:
      type: object
      description: ''
      properties:
        id:
          type: integer
          readOnly: true
        app_name:
          type: string
          maxLength: 100
        provider_class:
          type: string
          maxLength: 200
        action_type:
          type: string
          maxLength: 100
        is_enabled:
          type: boolean
        schedule:
          type: string
          maxLength: 50
        last_execution:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        last_execution_status:
          type: string
          readOnly: true
      required:
      - action_type
      - app_name
      - id
      - last_execution
      - last_execution_status
      - provider_class
    UserActionSummary:
      type: object
      description: ''
      properties:
        total:
          type: integer
        by_urgency:
          type: object
          additionalProperties: {}
        by_type:
          type: object
          additionalProperties: {}
        overdue:
          type: integer
      required:
      - by_type
      - by_urgency
      - overdue
      - total
    UserActiveStatusCount:
      type: object
      description: ''
      properties:
        status:
          type: string
        count:
          type: integer
      required:
      - count
      - status
    UserAffiliationCount:
      type: object
      properties:
        affiliation:
          type: string
          description: Affiliation name
        count:
          type: integer
          description: Number of users
      required:
      - affiliation
      - count
      description: ''
    UserAgreement:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        content:
          type: string
        agreement_type:
          $ref: '#/components/schemas/AgreementTypeEnum'
        language:
          type: string
          description: ISO 639-1 language code (e.g., 'en', 'de', 'et'). Leave empty
            for the default version.
          maxLength: 10
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - agreement_type
      - content
      - created
      - language
      - modified
      - url
      - uuid
      description: ''
    UserAgreementRequest:
      type: object
      properties:
        content:
          type: string
          minLength: 1
        agreement_type:
          $ref: '#/components/schemas/AgreementTypeEnum'
        language:
          type: string
          description: ISO 639-1 language code (e.g., 'en', 'de', 'et'). Leave empty
            for the default version.
          maxLength: 10
      required:
      - agreement_type
      - content
      - language
      description: ''
    UserAuthMethodCount:
      type: object
      properties:
        method:
          type: string
          description: Authentication method
        count:
          type: integer
          description: Number of users
      required:
      - count
      - method
      description: ''
    UserAuthToken:
      type: object
      properties:
        created:
          type: string
          format: date-time
          readOnly: true
        user_first_name:
          type: string
          readOnly: true
        user_last_name:
          type: string
          readOnly: true
        user_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        user_is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
          readOnly: true
        user_token_lifetime:
          type: integer
          maximum: 2147483647
          minimum: 60
          nullable: true
          description: Token lifetime in seconds.
          readOnly: true
        token:
          type: string
          readOnly: true
      required:
      - created
      - token
      - user_first_name
      - user_is_active
      - user_last_name
      - user_token_lifetime
      - user_username
      description: ''
    UserChecklistCompletion:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        offering_user:
          allOf:
          - $ref: '#/components/schemas/OfferingUser'
          readOnly: true
        offering_user_uuid:
          type: string
          nullable: true
          readOnly: true
        offering_name:
          type: string
          nullable: true
          readOnly: true
        offering_uuid:
          type: string
          nullable: true
          readOnly: true
        customer_provider_uuid:
          type: string
          nullable: true
          readOnly: true
        customer_provider_name:
          type: string
          nullable: true
          readOnly: true
        checklist_uuid:
          type: string
          readOnly: true
        checklist_name:
          type: string
          readOnly: true
        checklist_description:
          type: string
          readOnly: true
        is_completed:
          type: boolean
          readOnly: true
          description: Whether all required questions have been answered
        completion_percentage:
          type: number
          format: double
          maximum: 100
          minimum: 0
          readOnly: true
        unanswered_required_questions:
          type: integer
          minimum: 0
          readOnly: true
        requires_review:
          type: boolean
          readOnly: true
          description: Whether any answers triggered review requirements
        reviewed_by:
          type: integer
          readOnly: true
          nullable: true
          description: User who reviewed the checklist completion
        reviewed_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        review_notes:
          type: string
          readOnly: true
          description: Notes from the reviewer
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
      - checklist_description
      - checklist_name
      - checklist_uuid
      - completion_percentage
      - created
      - customer_provider_name
      - customer_provider_uuid
      - is_completed
      - modified
      - offering_name
      - offering_user
      - offering_user_uuid
      - offering_uuid
      - requires_review
      - review_notes
      - reviewed_at
      - reviewed_by
      - unanswered_required_questions
      - uuid
    UserConsentInfo:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        version:
          type: string
          readOnly: true
        agreement_date:
          type: string
          format: date-time
          readOnly: true
        is_revoked:
          type: boolean
          readOnly: true
      required:
      - agreement_date
      - is_revoked
      - uuid
      - version
    UserDataAccess:
      type: object
      description: ''
      properties:
        administrative_access:
          $ref: '#/components/schemas/AdministrativeAccess'
        organizational_access:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationalAccess'
        service_provider_access:
          type: array
          items:
            $ref: '#/components/schemas/ServiceProviderAccess'
        summary:
          $ref: '#/components/schemas/DataAccessSummary'
      required:
      - administrative_access
      - organizational_access
      - service_provider_access
      - summary
    UserDataAccessLog:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        timestamp:
          type: string
          format: date-time
        accessor_type:
          $ref: '#/components/schemas/AccessorTypeEnum'
        accessed_fields:
          type: array
          items:
            type: string
        accessor_category:
          type: string
        accessor:
          $ref: '#/components/schemas/AccessorUser'
        ip_address:
          description: An IPv4 or IPv6 address.
          oneOf:
          - type: string
            format: ipv4
          - type: string
            format: ipv6
          nullable: true
        context:
          type: object
          additionalProperties: {}
      required:
      - accessed_fields
      - accessor_type
      - timestamp
      - uuid
    UserEmailChangeRequest:
      type: object
      properties:
        email:
          type: string
          format: email
          minLength: 1
      required:
      - email
      description: ''
    UserIdentitySourceCount:
      type: object
      properties:
        identity_source:
          type: string
          description: Identity source
        count:
          type: integer
          description: Number of users
      required:
      - count
      - identity_source
      description: ''
    UserInfo:
      type: object
      properties:
        shortname:
          type: string
          nullable: true
          description: A short, unique name for you. It will be used to form your
            local username on any systems. Should only contain lower-case letters
            and digits and must start with a letter.
          pattern: ^[a-z][a-z0-9]+$
          maxLength: 32
          minLength: 4
        user:
          type: string
          format: uri
      required:
      - user
      description: ''
    UserInfoRequest:
      type: object
      properties:
        shortname:
          type: string
          nullable: true
          minLength: 4
          description: A short, unique name for you. It will be used to form your
            local username on any systems. Should only contain lower-case letters
            and digits and must start with a letter.
          pattern: ^[a-z][a-z0-9]+$
          maxLength: 32
        user:
          type: string
          format: uri
      required:
      - user
      description: ''
    UserJobTitleCount:
      type: object
      properties:
        job_title:
          type: string
          nullable: true
          description: Job title
        count:
          type: integer
          description: Number of users
      required:
      - count
      - job_title
      description: ''
    UserLanguageCount:
      type: object
      description: ''
      properties:
        language:
          type: string
        count:
          type: integer
      required:
      - count
      - language
    UserOfferingConsent:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        user_uuid:
          type: string
          format: uuid
          readOnly: true
        offering_uuid:
          type: string
          format: uuid
          readOnly: true
        agreement_date:
          type: string
          format: date-time
          readOnly: true
        version:
          type: string
          maxLength: 50
        revocation_date:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        created:
          type: string
          format: date-time
          readOnly: true
        user_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        user_full_name:
          type: string
          readOnly: true
        user_email:
          type: string
          format: email
          title: Email address
          readOnly: true
        offering_name:
          type: string
          readOnly: true
        offering_slug:
          type: string
          readOnly: true
        offering_url:
          type: string
          format: uri
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        has_consent:
          type: boolean
          readOnly: true
        requires_reconsent:
          type: boolean
          readOnly: true
        collected_attributes:
          type: array
          items:
            type: string
          description: List of user attributes that will be shared with service provider
          readOnly: true
      required:
      - agreement_date
      - collected_attributes
      - created
      - has_consent
      - modified
      - offering_name
      - offering_slug
      - offering_url
      - offering_uuid
      - requires_reconsent
      - revocation_date
      - user_email
      - user_full_name
      - user_username
      - user_uuid
      - uuid
    UserOfferingConsentCreate:
      type: object
      properties:
        offering:
          type: string
          format: uuid
      required:
      - offering
      description: ''
    UserOfferingConsentCreateRequest:
      type: object
      properties:
        offering:
          type: string
          format: uuid
      required:
      - offering
      description: ''
    UserOfferingConsentRequest:
      type: object
      description: ''
      properties:
        version:
          type: string
          maxLength: 50
    UserOrganizationCount:
      type: object
      properties:
        organization:
          type: string
          description: Organization name
        count:
          type: integer
          description: Number of users
      required:
      - count
      - organization
      description: ''
    UserOrganizationTypeCount:
      type: object
      properties:
        organization_type:
          type: string
          nullable: true
          description: Organization type (SCHAC URN)
        count:
          type: integer
          description: Number of users
      required:
      - count
      - organization_type
      description: ''
    UserRegistrationTrend:
      type: object
      description: ''
      properties:
        month:
          type: string
        count:
          type: integer
      required:
      - count
      - month
    UserRequest:
      type: object
      description: ''
      properties:
        username:
          type: string
          minLength: 1
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          pattern: ^[0-9a-z_.@+-]+$
          maxLength: 128
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        native_name:
          type: string
          maxLength: 100
        job_title:
          type: string
          maxLength: 120
        email:
          type: string
          format: email
          minLength: 1
        phone_number:
          type: string
          maxLength: 255
        organization:
          type: string
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        is_support:
          type: boolean
          title: Support status
          description: Designates whether the user is a global support user.
        token_lifetime:
          type: integer
          maximum: 2147483647
          minimum: 60
          nullable: true
          description: Token lifetime in seconds.
        agree_with_policy:
          type: boolean
          writeOnly: true
          description: User must agree with the policy to register.
        notifications_enabled:
          type: boolean
          description: Designates whether the user is allowed to receive email notifications.
        preferred_language:
          type: string
          maxLength: 10
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
        birth_date:
          type: string
          format: date
          nullable: true
        image:
          type: string
          format: binary
          nullable: true
        gender:
          nullable: true
          description: ISO 5218 gender code
          minimum: 0
          maximum: 32767
          oneOf:
          - $ref: '#/components/schemas/GenderEnum'
          - $ref: '#/components/schemas/NullEnum'
        personal_title:
          type: string
          description: Honorific title (Mr, Ms, Dr, Prof, etc.)
          maxLength: 50
        place_of_birth:
          type: string
          maxLength: 255
        country_of_residence:
          type: string
          maxLength: 2
        nationality:
          type: string
          description: Primary citizenship (ISO 3166-1 alpha-2 code)
          maxLength: 2
        nationalities:
          description: List of all citizenships (ISO 3166-1 alpha-2 codes)
        organization_country:
          type: string
          maxLength: 2
        organization_type:
          type: string
          description: SCHAC URN (e.g., urn:schac:homeOrganizationType:int:university)
          maxLength: 255
        organization_registry_code:
          type: string
          description: Company registration code of the user's organization, if known
          maxLength: 255
        eduperson_assurance:
          description: REFEDS assurance profile URIs from identity provider
        is_identity_manager:
          type: boolean
          description: Designates whether the user is allowed to manage remote user
            identities.
        managed_isds:
          description: List of ISD source identifiers this user can manage via Identity
            Bridge. E.g., ['isd:puhuri', 'isd:fenix']. Non-empty list implies identity
            manager role.
      required:
      - email
      - username
    UserRoleCreateRequest:
      type: object
      properties:
        role:
          type: string
          minLength: 1
        user:
          type: string
          format: uuid
        expiration_time:
          type: string
          format: date-time
          nullable: true
      required:
      - role
      - user
      description: ''
    UserRoleDeleteRequest:
      type: object
      properties:
        role:
          type: string
          minLength: 1
        user:
          type: string
          format: uuid
        expiration_time:
          type: string
          format: date-time
          nullable: true
      required:
      - role
      - user
      description: ''
    UserRoleDetails:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        expiration_time:
          type: string
          format: date-time
          nullable: true
        role_name:
          type: string
          readOnly: true
        role_uuid:
          type: string
          format: uuid
          readOnly: true
        user_email:
          type: string
          format: email
          title: Email address
          readOnly: true
        user_full_name:
          type: string
          readOnly: true
        user_username:
          type: string
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          readOnly: true
        user_uuid:
          type: string
          format: uuid
          readOnly: true
        user_image:
          type: string
          format: uri
          readOnly: true
        created_by_full_name:
          type: string
          readOnly: true
        created_by_uuid:
          type: string
          format: uuid
          readOnly: true
      required: []
      description: ''
    UserRoleExpirationTime:
      type: object
      properties:
        expiration_time:
          type: string
          format: date-time
          nullable: true
      required:
      - expiration_time
      description: ''
    UserRoleUpdateRequest:
      type: object
      properties:
        role:
          type: string
          minLength: 1
        user:
          type: string
          format: uuid
        expiration_time:
          type: string
          format: date-time
          nullable: true
      required:
      - role
      - user
      description: ''
    UsernameGenerationPolicyEnum:
      enum:
      - service_provider
      - anonymized
      - full_name
      - waldur_username
      - freeipa
      - identity_claim
      type: string
      description: ''
    ValidationDecisionEnum:
      enum:
      - approved
      - rejected
      - pending
      type: string
      description: ''
    ValidationMethodEnum:
      enum:
      - ariregister
      - wirtschaftscompass
      - bolagsverket
      - breg
      type: string
      description: ''
    VendorNameChoice:
      type: object
      description: ''
      properties:
        value:
          type: string
        label:
          type: string
      required:
      - label
      - value
    VenueTypeEnum:
      enum:
      - journal
      - conference
      - preprint
      - book
      - thesis
      - report
      - other
      type: string
      description: ''
    Version:
      type: object
      properties:
        version:
          type: string
          description: Current installed version of the application
        latest_version:
          type: string
          description: Latest available version from GitHub, if available.
      required:
      - version
      description: ''
    VersionAdoption:
      type: object
      description: ''
      properties:
        version:
          type: string
          readOnly: true
          description: Version identifier
        users_count:
          type: integer
          readOnly: true
          description: Number of users on this version
      required:
      - users_count
      - version
    VersionHistory:
      type: object
      description: ''
      properties:
        id:
          type: integer
          description: Version ID
        revision_date:
          type: string
          format: date-time
          description: When this revision was created
        revision_user:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
          description: User who created this revision
        revision_comment:
          type: string
          description: Comment describing the revision
        serialized_data:
          type: object
          additionalProperties: {}
          readOnly: true
          description: Serialized model fields at this revision
      required:
      - id
      - revision_comment
      - revision_date
      - revision_user
      - serialized_data
    VisibilityEnum:
      enum:
      - private
      - public
      type: string
      description: ''
    VisibleInvitationDetails:
      type: object
      properties:
        scope_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the invitation scope (Customer or Project)
        scope_name:
          type: string
          readOnly: true
          description: Name of the invitation scope
        scope_description:
          type: string
          description: Description of the invitation scope
          readOnly: true
        scope_type:
          type: string
          nullable: true
          readOnly: true
          description: Type of the invitation scope (e.g., 'customer', 'project')
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
          description: UUID of the customer organization
        customer_name:
          type: string
          readOnly: true
          description: Name of the customer organization
        role_name:
          type: string
          readOnly: true
          description: Name of the role being granted (e.g., 'PROJECT.ADMIN')
        role_description:
          type: string
          readOnly: true
          description: Description of the role being granted
        created_by_full_name:
          type: string
          readOnly: true
          description: Full name of the user who created this invitation
        created_by_username:
          type: string
          readOnly: true
          description: Username of the user who created this invitation
        created_by_image:
          type: string
          format: uri
          readOnly: true
          description: Profile image of the user who created this invitation
        email:
          type: string
          format: email
          description: Invitation link will be sent to this email. Note that user
            can accept invitation with different email.
          maxLength: 254
        error_message:
          type: string
          readOnly: true
        execution_state:
          allOf:
          - $ref: '#/components/schemas/ExecutionStateEnum'
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/InvitationState'
          readOnly: true
          description: Current state of the invitation (e.g., 'pending', 'accepted',
            'rejected')
      required:
      - created_by_full_name
      - created_by_image
      - created_by_username
      - customer_name
      - customer_uuid
      - email
      - error_message
      - execution_state
      - role_description
      - role_name
      - scope_description
      - scope_name
      - scope_type
      - scope_uuid
      - state
      description: ''
    VmwareCluster:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
      required:
      - name
      - url
      - uuid
    VmwareDatastore:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        type:
          type: string
          maxLength: 255
        capacity:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Capacity, in MB.
        free_space:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Available space, in MB.
      required:
      - name
      - type
      - url
      - uuid
    VmwareDisk:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
          readOnly: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        size:
          type: integer
          maximum: 2147483647
          minimum: 1024
          description: Size in MiB
        vm:
          type: string
          format: uri
          readOnly: true
        vm_uuid:
          type: string
          format: uuid
          readOnly: true
        vm_name:
          type: string
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    VmwareDiskExtend:
      type: object
      properties:
        size:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Size in MiB
      required:
      - size
      description: ''
    VmwareDiskExtendRequest:
      type: object
      properties:
        size:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Size in MiB
      required:
      - size
      description: ''
    VmwareDiskRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        size:
          type: integer
          maximum: 2147483647
          minimum: 1024
          description: Size in MiB
      required:
      - size
    VmwareFolder:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
      required:
      - name
      - url
      - uuid
    VmwareLimit:
      type: object
      properties:
        max_cpu:
          type: integer
          readOnly: true
        max_cores_per_socket:
          type: integer
          readOnly: true
        max_ram:
          type: integer
          readOnly: true
        max_disk:
          type: integer
          readOnly: true
        max_disk_total:
          type: integer
          readOnly: true
      required:
      - max_cores_per_socket
      - max_cpu
      - max_disk
      - max_disk_total
      - max_ram
      description: ''
    VmwareNestedDisk:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        size:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Size in MiB
      required: []
      description: ''
    VmwareNestedDiskRequest:
      type: object
      properties:
        size:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Size in MiB
      required:
      - size
      description: ''
    VmwareNestedNetwork:
      type: object
      properties:
        url:
          type: string
          format: uri
      required:
      - url
      description: ''
    VmwareNestedNetworkRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
      required:
      - url
      description: ''
    VmwareNestedPort:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        mac_address:
          type: string
          readOnly: true
        network:
          type: string
          format: uri
      required: []
      description: ''
    VmwareNestedPortRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        network:
          type: string
          format: uri
      required:
      - name
      - network
      description: ''
    VmwareNetwork:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        type:
          type: string
          maxLength: 255
      required:
      - name
      - type
      - url
      - uuid
    VmwarePort:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          readOnly: true
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
          readOnly: true
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
          readOnly: true
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        mac_address:
          type: string
          readOnly: true
        vm:
          type: string
          format: uri
          readOnly: true
        vm_uuid:
          type: string
          format: uuid
          readOnly: true
        vm_name:
          type: string
          readOnly: true
        network:
          type: string
          format: uri
        network_name:
          type: string
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    VmwarePortRequest:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        network:
          type: string
          format: uri
      required:
      - network
    VmwareTemplate:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        created:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
        guest_os:
          type: string
          description: Defines the valid guest operating system types used for configuring
            a virtual machine
          maxLength: 50
        guest_os_name:
          type: string
          readOnly: true
        cores:
          type: integer
          maximum: 32767
          minimum: 0
          description: Number of cores in a VM
        cores_per_socket:
          type: integer
          maximum: 32767
          minimum: 0
          description: Number of cores per socket in a VM
        ram:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Memory size in MiB
        disk:
          type: integer
          maximum: 2147483647
          minimum: 0
          description: Disk size in MiB
      required:
      - created
      - guest_os
      - guest_os_name
      - modified
      - name
      - url
      - uuid
    VmwareVirtualMachine:
      type: object
      description: ''
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_name:
          type: string
          readOnly: true
        service_settings:
          type: string
          format: uri
        service_settings_uuid:
          type: string
          format: uuid
          readOnly: true
        service_settings_state:
          type: string
          readOnly: true
        service_settings_error_message:
          type: string
          readOnly: true
        project:
          type: string
          format: uri
        project_name:
          type: string
          readOnly: true
        project_uuid:
          type: string
          format: uuid
          readOnly: true
        customer:
          type: string
          format: uri
          readOnly: true
        customer_uuid:
          type: string
          format: uuid
          readOnly: true
        customer_name:
          type: string
          readOnly: true
        customer_native_name:
          type: string
          readOnly: true
        customer_abbreviation:
          type: string
          readOnly: true
        error_message:
          type: string
          readOnly: true
        error_traceback:
          type: string
          readOnly: true
        resource_type:
          type: string
          readOnly: true
        state:
          allOf:
          - $ref: '#/components/schemas/CoreStates'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        backend_id:
          type: string
          readOnly: true
        access_url:
          type: string
          nullable: true
          readOnly: true
        guest_os:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/GuestOsEnum'
          - $ref: '#/components/schemas/NullEnum'
        guest_os_name:
          type: string
          readOnly: true
        cores:
          type: integer
          maximum: 32767
          minimum: 1
          description: Number of cores in a VM
        cores_per_socket:
          type: integer
          maximum: 32767
          minimum: 1
          description: Number of cores per socket in a VM
        ram:
          type: integer
          maximum: 2147483647
          minimum: 1024
          description: Memory size in MiB
        disk:
          type: integer
          readOnly: true
          description: Disk size in MiB
        disks:
          type: array
          items:
            $ref: '#/components/schemas/VmwareNestedDisk'
          readOnly: true
        runtime_state:
          type: string
          readOnly: true
        cluster:
          type: string
          format: uri
          nullable: true
        datastore:
          type: string
          format: uri
          nullable: true
        folder:
          type: string
          format: uri
          nullable: true
        template_name:
          type: string
          readOnly: true
        cluster_name:
          type: string
          readOnly: true
        datastore_name:
          type: string
          readOnly: true
        folder_name:
          type: string
          readOnly: true
        ports:
          type: array
          items:
            $ref: '#/components/schemas/VmwareNestedPort'
          readOnly: true
        guest_power_state:
          allOf:
          - $ref: '#/components/schemas/GuestPowerStateEnum'
          readOnly: true
          title: The power state of the guest operating system.
        tools_state:
          type: string
          readOnly: true
        tools_installed:
          type: boolean
          readOnly: true
        marketplace_offering_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_offering_plugin_options:
          type: object
          additionalProperties: {}
          nullable: true
          readOnly: true
        marketplace_category_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_category_name:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_plan_uuid:
          type: string
          nullable: true
          readOnly: true
        marketplace_resource_state:
          type: string
          nullable: true
          readOnly: true
        is_usage_based:
          type: boolean
          nullable: true
          readOnly: true
        is_limit_based:
          type: boolean
          nullable: true
          readOnly: true
      required: []
    VmwareVirtualMachineRequest:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        guest_os:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/GuestOsEnum'
          - $ref: '#/components/schemas/NullEnum'
        cores:
          type: integer
          maximum: 32767
          minimum: 1
          description: Number of cores in a VM
        cores_per_socket:
          type: integer
          maximum: 32767
          minimum: 1
          description: Number of cores per socket in a VM
        ram:
          type: integer
          maximum: 2147483647
          minimum: 1024
          description: Memory size in MiB
        template:
          type: string
          format: uri
          writeOnly: true
          nullable: true
        cluster:
          type: string
          format: uri
          nullable: true
        networks:
          type: array
          items:
            $ref: '#/components/schemas/VmwareNestedNetworkRequest'
          writeOnly: true
        datastore:
          type: string
          format: uri
          nullable: true
        folder:
          type: string
          format: uri
          nullable: true
      required:
      - name
      - project
      - service_settings
    VolumeAttachRequest:
      type: object
      description: ''
      properties:
        instance:
          type: string
          format: uri
          description: Instance that this volume is attached to, if any
      required:
      - instance
    VolumeTypeEnum:
      enum:
      - gp2
      - io1
      - standard
      type: string
      description: ''
    VolumeTypeMapping:
      type: object
      properties:
        src_type_uuid:
          type: string
          format: uuid
        dst_type_uuid:
          type: string
          format: uuid
      required:
      - dst_type_uuid
      - src_type_uuid
      description: ''
    VolumeTypeMappingRequest:
      type: object
      properties:
        src_type_uuid:
          type: string
          format: uuid
        dst_type_uuid:
          type: string
          format: uuid
      required:
      - dst_type_uuid
      - src_type_uuid
      description: ''
    VolumeTypeResponse:
      type: object
      description: ''
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
      required:
      - id
      - name
    WaldurCustomerBrief:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
        abbreviation:
          type: string
      required:
      - name
      - uuid
    WaldurFieldSuggestion:
      type: object
      properties:
        field:
          type: string
          description: Waldur User model field name
        description:
          type: string
          description: Human-readable field description
        suggested_claims:
          type: array
          items:
            type: string
          description: OIDC claims that could map to this field, ordered by likelihood
        available_claims:
          type: array
          items:
            type: string
          description: Claims from this IdP that match the suggestions
      required:
      - available_claims
      - description
      - field
      - suggested_claims
      description: ''
    WaldurResourceForLinking:
      type: object
      description: ''
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
        backend_id:
          type: string
          description: Current backend_id (Arrow license reference if linked).
        project_name:
          type: string
        offering_name:
          type: string
        state:
          type: string
      required:
      - backend_id
      - name
      - offering_name
      - project_name
      - state
      - uuid
    WebHook:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        is_active:
          type: boolean
        author_uuid:
          type: string
          format: uuid
          readOnly: true
        event_types:
          type: array
          items:
            $ref: '#/components/schemas/EventTypesEnum'
        event_groups:
          type: array
          items:
            $ref: '#/components/schemas/EventGroupsEnum'
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        hook_type:
          type: string
          readOnly: true
        author_fullname:
          type: string
          readOnly: true
        author_username:
          type: string
          readOnly: true
        author_email:
          type: string
          readOnly: true
        destination_url:
          type: string
          format: uri
          maxLength: 200
        content_type:
          $ref: '#/components/schemas/WebHookContentTypeEnum'
      required:
      - author_email
      - author_fullname
      - author_username
      - author_uuid
      - created
      - destination_url
      - hook_type
      - modified
      - url
      - uuid
      description: ''
    WebHookContentTypeEnum:
      enum:
      - json
      - form
      type: string
      description: ''
    WebHookReceiver:
      type: object
      properties:
        webhookEvent:
          type: string
        issue:
          $ref: '#/components/schemas/JiraIssue'
        comment:
          $ref: '#/components/schemas/JiraComment'
        changelog:
          $ref: '#/components/schemas/JiraChangelog'
        issue_event_type_name:
          type: string
      required:
      - issue
      - webhookEvent
      description: ''
    WebHookReceiverRequest:
      type: object
      properties:
        webhookEvent:
          type: string
          minLength: 1
        issue:
          $ref: '#/components/schemas/JiraIssueRequest'
        comment:
          $ref: '#/components/schemas/JiraCommentRequest'
        changelog:
          $ref: '#/components/schemas/JiraChangelogRequest'
        issue_event_type_name:
          type: string
          minLength: 1
      required:
      - issue
      - webhookEvent
      description: ''
    WebHookRequest:
      type: object
      properties:
        is_active:
          type: boolean
        event_types:
          type: array
          items:
            $ref: '#/components/schemas/EventTypesEnum'
        event_groups:
          type: array
          items:
            $ref: '#/components/schemas/EventGroupsEnum'
        destination_url:
          type: string
          format: uri
          minLength: 1
          maxLength: 200
        content_type:
          $ref: '#/components/schemas/WebHookContentTypeEnum'
      required:
      - destination_url
      description: ''
    WidgetEnum:
      enum:
      - csv
      - filesize
      - attached_instance
      type: string
      description: ''
    AzureVirtualMachineCreateOrderAttributes:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          pattern: ^[a-zA-Z][a-zA-Z0-9-]{0,13}[a-zA-Z0-9]$
          maxLength: 15
        description:
          type: string
          maxLength: 4096
        size:
          type: string
          format: uri
        image:
          type: string
          format: uri
        location:
          type: string
          format: uri
          writeOnly: true
      required:
      - image
      - location
      - name
      - project
      - service_settings
      - size
    AzureSQLServerCreateOrderAttributes:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          pattern: ^[a-z0-9][a-z0-9-]+[a-z0-9]$
          maxLength: 80
        description:
          type: string
          maxLength: 4096
        location:
          type: string
          format: uri
          writeOnly: true
      required:
      - location
      - name
      - project
      - service_settings
    MarketplaceOpenPortalCreateOrderAttributes:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
      required:
      - name
      - project
      - service_settings
    MarketplaceOpenPortalRemoteCreateOrderAttributes:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
      required:
      - name
      - project
      - service_settings
    OpenStackTenantCreateOrderAttributes:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 64
        description:
          type: string
          maxLength: 4096
        subnet_cidr:
          type: string
          writeOnly: true
          minLength: 1
          default: 192.168.42.0/24
        skip_connection_extnet:
          type: boolean
          default: false
        skip_creation_of_default_router:
          type: boolean
          default: false
        skip_creation_of_default_subnet:
          type: boolean
          default: false
        availability_zone:
          type: string
          description: Optional availability group. Will be used for all instances
            provisioned in this tenant
          maxLength: 100
        security_groups:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackTenantSecurityGroupRequest'
          writeOnly: true
      required:
      - name
      - project
      - service_settings
    OpenStackCreateInstancePortRequest:
      type: object
      description: ''
      properties:
        fixed_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackFixedIpRequest'
        subnet:
          type: string
          format: uri
          nullable: true
          description: Subnet to which this port belongs
        port:
          type: string
          format: uri
    OpenStackDataVolumeRequest:
      type: object
      properties:
        size:
          type: integer
        volume_type:
          type: string
          format: uri
          nullable: true
      required:
      - size
      description: ''
    OpenStackServerGroupHyperlinkRequest:
      type: object
      properties:
        url:
          type: string
          format: uri
      required:
      - url
      description: ''
    OpenStackInstanceCreateOrderAttributes:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        flavor:
          type: string
          format: uri
          writeOnly: true
          description: The flavor to use for the instance
        image:
          type: string
          format: uri
          writeOnly: true
          description: The OS image to use for the instance
        security_groups:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackSecurityGroupHyperlinkRequest'
          writeOnly: true
          description: List of security groups to apply to the instance
        server_group:
          allOf:
          - $ref: '#/components/schemas/OpenStackServerGroupHyperlinkRequest'
          writeOnly: true
          description: Server group for instance scheduling policy
        ports:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackCreateInstancePortRequest'
          writeOnly: true
          description: Network ports to attach to the instance
        floating_ips:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackCreateFloatingIPRequest'
          writeOnly: true
          description: Floating IPs to assign to the instance
        system_volume_size:
          type: integer
          minimum: 1024
          writeOnly: true
          description: Size of the system volume in MiB. Minimum size is 1024 MiB
            (1 GiB)
        system_volume_type:
          type: string
          format: uri
          writeOnly: true
          nullable: true
          description: Volume type for the system volume
        data_volume_size:
          type: integer
          minimum: 1024
          writeOnly: true
          description: Size of the data volume in MiB. Minimum size is 1024 MiB (1
            GiB)
        data_volume_type:
          type: string
          format: uri
          writeOnly: true
          nullable: true
          description: Volume type for the data volume
        ssh_public_key:
          type: string
          format: uri
          writeOnly: true
        user_data:
          type: string
          description: Additional data that will be added to instance on provisioning
        availability_zone:
          type: string
          format: uri
          nullable: true
          description: Availability zone where this instance is located
        connect_directly_to_external_network:
          type: boolean
          description: If True, instance will be connected directly to external network
        data_volumes:
          type: array
          items:
            $ref: '#/components/schemas/OpenStackDataVolumeRequest'
          writeOnly: true
          description: Additional data volumes to attach to the instance
      required:
      - flavor
      - image
      - name
      - ports
      - project
      - system_volume_size
      - tenant
    OpenStackVolumeCreateOrderAttributes:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        image:
          type: string
          format: uri
          nullable: true
          description: Image that this volume was created from, if any
        size:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Size in MiB
        availability_zone:
          type: string
          format: uri
          nullable: true
          description: Availability zone where this volume is located
        type:
          type: string
          format: uri
          nullable: true
          description: Type of the volume (e.g. SSD, HDD)
      required:
      - name
      - project
      - tenant
    SlurmInvoicesSlurmPackageCreateOrderAttributes:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
      required:
      - name
      - project
      - service_settings
    VMwareVirtualMachineCreateOrderAttributes:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        guest_os:
          enum:
          - DOS
          - WIN_31
          - WIN_95
          - WIN_98
          - WIN_ME
          - WIN_NT
          - WIN_2000_PRO
          - WIN_2000_SERV
          - WIN_2000_ADV_SERV
          - WIN_XP_HOME
          - WIN_XP_PRO
          - WIN_XP_PRO_64
          - WIN_NET_WEB
          - WIN_NET_STANDARD
          - WIN_NET_ENTERPRISE
          - WIN_NET_DATACENTER
          - WIN_NET_BUSINESS
          - WIN_NET_STANDARD_64
          - WIN_NET_ENTERPRISE_64
          - WIN_LONGHORN
          - WIN_LONGHORN_64
          - WIN_NET_DATACENTER_64
          - WIN_VISTA
          - WIN_VISTA_64
          - WINDOWS_7
          - WINDOWS_7_64
          - WINDOWS_7_SERVER_64
          - WINDOWS_8
          - WINDOWS_8_64
          - WINDOWS_8_SERVER_64
          - WINDOWS_9
          - WINDOWS_9_64
          - WINDOWS_9_SERVER_64
          - WINDOWS_HYPERV
          - FREEBSD
          - FREEBSD_64
          - REDHAT
          - RHEL_2
          - RHEL_3
          - RHEL_3_64
          - RHEL_4
          - RHEL_4_64
          - RHEL_5
          - RHEL_5_64
          - RHEL_6
          - RHEL_6_64
          - RHEL_7
          - RHEL_7_64
          - CENTOS
          - CENTOS_64
          - CENTOS_6
          - CENTOS_6_64
          - CENTOS_7
          - CENTOS_7_64
          - ORACLE_LINUX
          - ORACLE_LINUX_64
          - ORACLE_LINUX_6
          - ORACLE_LINUX_6_64
          - ORACLE_LINUX_7
          - ORACLE_LINUX_7_64
          - SUSE
          - SUSE_64
          - SLES
          - SLES_64
          - SLES_10
          - SLES_10_64
          - SLES_11
          - SLES_11_64
          - SLES_12
          - SLES_12_64
          - NLD_9
          - OES
          - SJDS
          - MANDRAKE
          - MANDRIVA
          - MANDRIVA_64
          - TURBO_LINUX
          - TURBO_LINUX_64
          - UBUNTU
          - UBUNTU_64
          - DEBIAN_4
          - DEBIAN_4_64
          - DEBIAN_5
          - DEBIAN_5_64
          - DEBIAN_6
          - DEBIAN_6_64
          - DEBIAN_7
          - DEBIAN_7_64
          - DEBIAN_8
          - DEBIAN_8_64
          - DEBIAN_9
          - DEBIAN_9_64
          - DEBIAN_10
          - DEBIAN_10_64
          - ASIANUX_3
          - ASIANUX_3_64
          - ASIANUX_4
          - ASIANUX_4_64
          - ASIANUX_5_64
          - ASIANUX_7_64
          - OPENSUSE
          - OPENSUSE_64
          - FEDORA
          - FEDORA_64
          - COREOS_64
          - VMWARE_PHOTON_64
          - OTHER_24X_LINUX
          - OTHER_24X_LINUX_64
          - OTHER_26X_LINUX
          - OTHER_26X_LINUX_64
          - OTHER_3X_LINUX
          - OTHER_3X_LINUX_64
          - OTHER_LINUX
          - GENERIC_LINUX
          - OTHER_LINUX_64
          - SOLARIS_6
          - SOLARIS_7
          - SOLARIS_8
          - SOLARIS_9
          - SOLARIS_10
          - SOLARIS_10_64
          - SOLARIS_11_64
          - OS2
          - ECOMSTATION
          - ECOMSTATION_2
          - NETWARE_4
          - NETWARE_5
          - NETWARE_6
          - OPENSERVER_5
          - OPENSERVER_6
          - UNIXWARE_7
          - DARWIN
          - DARWIN_64
          - DARWIN_10
          - DARWIN_10_64
          - DARWIN_11
          - DARWIN_11_64
          - DARWIN_12_64
          - DARWIN_13_64
          - DARWIN_14_64
          - DARWIN_15_64
          - DARWIN_16_64
          - VMKERNEL
          - VMKERNEL_5
          - VMKERNEL_6
          - VMKERNEL_65
          - OTHER
          - OTHER_64
          - null
          type: string
          x-spec-enum-id: c8a1af7d3d87c676
          nullable: true
        cores_per_socket:
          type: integer
          maximum: 32767
          minimum: 1
          description: Number of cores per socket in a VM
        template:
          type: string
          format: uri
          writeOnly: true
          nullable: true
        cluster:
          type: string
          format: uri
          nullable: true
        datastore:
          type: string
          format: uri
          nullable: true
      required:
      - name
      - project
      - service_settings
    GenericOrderAttributes:
      type: object
      description: ''
      additionalProperties: true
      properties:
        name:
          type: string
          description: The name of the resource to be created. Will be displayed in
            the portal.
          maxLength: 150
        description:
          type: string
          description: A free-form description for the resource.
    CallManagingOrganisationRequestForm:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        customer:
          type: string
          format: uri
        image:
          type: string
          format: binary
          nullable: true
      required:
      - customer
    CallManagingOrganisationRequestMultipart:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        customer:
          type: string
          format: uri
        image:
          type: string
          format: binary
          nullable: true
      required:
      - customer
    PatchedCallManagingOrganisationRequestForm:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        image:
          type: string
          format: binary
          nullable: true
    PatchedCallManagingOrganisationRequestMultipart:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        image:
          type: string
          format: binary
          nullable: true
    CustomerRequestForm:
      type: object
      description: ''
      properties:
        backend_id:
          type: string
          description: Organization identifier in another application.
          maxLength: 255
        image:
          type: string
          format: binary
          nullable: true
        blocked:
          type: boolean
        archived:
          type: boolean
        display_billing_info_in_projects:
          type: boolean
        default_tax_percent:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
        accounting_start_date:
          type: string
          format: date-time
          title: Start date of accounting
        sponsor_number:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: External ID of the sponsor covering the costs
        max_service_accounts:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Maximum number of service accounts allowed
        project_metadata_checklist:
          type: string
          format: uuid
          nullable: true
          description: Checklist to be used for project metadata validation in this
            organization
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        name:
          type: string
          minLength: 1
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        native_name:
          type: string
          maxLength: 160
        abbreviation:
          type: string
          maxLength: 12
        description:
          type: string
          maxLength: 4096
        contact_details:
          type: string
          maxLength: 500
        agreement_number:
          type: string
          maxLength: 160
        email:
          type: string
          format: email
          title: Email address
          maxLength: 75
        phone_number:
          type: string
          maxLength: 255
        access_subnets:
          type: string
          description: Enter a comma separated list of IPv4 or IPv6 CIDR addresses
            from where connection to self-service is allowed.
        registration_code:
          type: string
          maxLength: 160
        homepage:
          type: string
          format: uri
          maxLength: 255
        domain:
          type: string
          maxLength: 255
        vat_code:
          type: string
          description: VAT number
          maxLength: 20
        postal:
          type: string
          maxLength: 20
        address:
          type: string
          maxLength: 300
        bank_name:
          type: string
          maxLength: 150
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        bank_account:
          type: string
          maxLength: 50
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        notification_emails:
          type: string
          description: Comma-separated list of notification email addresses
          maxLength: 640
      required:
      - name
    CustomerRequestMultipart:
      type: object
      description: ''
      properties:
        backend_id:
          type: string
          description: Organization identifier in another application.
          maxLength: 255
        image:
          type: string
          format: binary
          nullable: true
        blocked:
          type: boolean
        archived:
          type: boolean
        display_billing_info_in_projects:
          type: boolean
        default_tax_percent:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
        accounting_start_date:
          type: string
          format: date-time
          title: Start date of accounting
        sponsor_number:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: External ID of the sponsor covering the costs
        max_service_accounts:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Maximum number of service accounts allowed
        project_metadata_checklist:
          type: string
          format: uuid
          nullable: true
          description: Checklist to be used for project metadata validation in this
            organization
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        name:
          type: string
          minLength: 1
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        native_name:
          type: string
          maxLength: 160
        abbreviation:
          type: string
          maxLength: 12
        description:
          type: string
          maxLength: 4096
        contact_details:
          type: string
          maxLength: 500
        agreement_number:
          type: string
          maxLength: 160
        email:
          type: string
          format: email
          title: Email address
          maxLength: 75
        phone_number:
          type: string
          maxLength: 255
        access_subnets:
          type: string
          description: Enter a comma separated list of IPv4 or IPv6 CIDR addresses
            from where connection to self-service is allowed.
        registration_code:
          type: string
          maxLength: 160
        homepage:
          type: string
          format: uri
          maxLength: 255
        domain:
          type: string
          maxLength: 255
        vat_code:
          type: string
          description: VAT number
          maxLength: 20
        postal:
          type: string
          maxLength: 20
        address:
          type: string
          maxLength: 300
        bank_name:
          type: string
          maxLength: 150
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        bank_account:
          type: string
          maxLength: 50
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        notification_emails:
          type: string
          description: Comma-separated list of notification email addresses
          maxLength: 640
      required:
      - name
    PatchedCustomerRequestForm:
      type: object
      description: ''
      properties:
        backend_id:
          type: string
          description: Organization identifier in another application.
          maxLength: 255
        image:
          type: string
          format: binary
          nullable: true
        blocked:
          type: boolean
        archived:
          type: boolean
        display_billing_info_in_projects:
          type: boolean
        default_tax_percent:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
        accounting_start_date:
          type: string
          format: date-time
          title: Start date of accounting
        sponsor_number:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: External ID of the sponsor covering the costs
        max_service_accounts:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Maximum number of service accounts allowed
        project_metadata_checklist:
          type: string
          format: uuid
          nullable: true
          description: Checklist to be used for project metadata validation in this
            organization
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        name:
          type: string
          minLength: 1
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        native_name:
          type: string
          maxLength: 160
        abbreviation:
          type: string
          maxLength: 12
        description:
          type: string
          maxLength: 4096
        contact_details:
          type: string
          maxLength: 500
        agreement_number:
          type: string
          maxLength: 160
        email:
          type: string
          format: email
          title: Email address
          maxLength: 75
        phone_number:
          type: string
          maxLength: 255
        access_subnets:
          type: string
          description: Enter a comma separated list of IPv4 or IPv6 CIDR addresses
            from where connection to self-service is allowed.
        registration_code:
          type: string
          maxLength: 160
        homepage:
          type: string
          format: uri
          maxLength: 255
        domain:
          type: string
          maxLength: 255
        vat_code:
          type: string
          description: VAT number
          maxLength: 20
        postal:
          type: string
          maxLength: 20
        address:
          type: string
          maxLength: 300
        bank_name:
          type: string
          maxLength: 150
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        bank_account:
          type: string
          maxLength: 50
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        notification_emails:
          type: string
          description: Comma-separated list of notification email addresses
          maxLength: 640
    PatchedCustomerRequestMultipart:
      type: object
      description: ''
      properties:
        backend_id:
          type: string
          description: Organization identifier in another application.
          maxLength: 255
        image:
          type: string
          format: binary
          nullable: true
        blocked:
          type: boolean
        archived:
          type: boolean
        display_billing_info_in_projects:
          type: boolean
        default_tax_percent:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
        accounting_start_date:
          type: string
          format: date-time
          title: Start date of accounting
        sponsor_number:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: External ID of the sponsor covering the costs
        max_service_accounts:
          type: integer
          maximum: 32767
          minimum: 0
          nullable: true
          description: Maximum number of service accounts allowed
        project_metadata_checklist:
          type: string
          format: uuid
          nullable: true
          description: Checklist to be used for project metadata validation in this
            organization
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
        name:
          type: string
          minLength: 1
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        native_name:
          type: string
          maxLength: 160
        abbreviation:
          type: string
          maxLength: 12
        description:
          type: string
          maxLength: 4096
        contact_details:
          type: string
          maxLength: 500
        agreement_number:
          type: string
          maxLength: 160
        email:
          type: string
          format: email
          title: Email address
          maxLength: 75
        phone_number:
          type: string
          maxLength: 255
        access_subnets:
          type: string
          description: Enter a comma separated list of IPv4 or IPv6 CIDR addresses
            from where connection to self-service is allowed.
        registration_code:
          type: string
          maxLength: 160
        homepage:
          type: string
          format: uri
          maxLength: 255
        domain:
          type: string
          maxLength: 255
        vat_code:
          type: string
          description: VAT number
          maxLength: 20
        postal:
          type: string
          maxLength: 20
        address:
          type: string
          maxLength: 300
        bank_name:
          type: string
          maxLength: 150
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        bank_account:
          type: string
          maxLength: 50
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        notification_emails:
          type: string
          description: Comma-separated list of notification email addresses
          maxLength: 640
    ExternalLinkRequestForm:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        link:
          type: string
          format: uri
          minLength: 1
          maxLength: 500
        image:
          type: string
          format: binary
          nullable: true
      required:
      - link
      - name
      description: ''
    ExternalLinkRequestMultipart:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        link:
          type: string
          format: uri
          minLength: 1
          maxLength: 500
        image:
          type: string
          format: binary
          nullable: true
      required:
      - link
      - name
      description: ''
    PatchedExternalLinkRequestForm:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        link:
          type: string
          format: uri
          minLength: 1
          maxLength: 500
        image:
          type: string
          format: binary
          nullable: true
      description: ''
    PatchedExternalLinkRequestMultipart:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        link:
          type: string
          format: uri
          minLength: 1
          maxLength: 500
        image:
          type: string
          format: binary
          nullable: true
      description: ''
    PaidRequestForm:
      type: object
      properties:
        date:
          type: string
          format: date
        proof:
          type: string
          format: binary
      required:
      - date
      description: ''
    PaidRequestMultipart:
      type: object
      properties:
        date:
          type: string
          format: date
        proof:
          type: string
          format: binary
      required:
      - date
      description: ''
    MarketplaceCategoryRequestForm:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: binary
          nullable: true
        default_vm_category:
          type: boolean
          description: Set to "true" if this category is for OpenStack VM. Only one
            category can have "true" value.
        default_volume_category:
          type: boolean
          description: Set to true if this category is for OpenStack Volume. Only
            one category can have "true" value.
        default_tenant_category:
          type: boolean
          description: Set to true if this category is for OpenStack Tenant. Only
            one category can have "true" value.
        group:
          type: string
          format: uri
          nullable: true
      required:
      - title
    MarketplaceCategoryRequestMultipart:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: binary
          nullable: true
        default_vm_category:
          type: boolean
          description: Set to "true" if this category is for OpenStack VM. Only one
            category can have "true" value.
        default_volume_category:
          type: boolean
          description: Set to true if this category is for OpenStack Volume. Only
            one category can have "true" value.
        default_tenant_category:
          type: boolean
          description: Set to true if this category is for OpenStack Tenant. Only
            one category can have "true" value.
        group:
          type: string
          format: uri
          nullable: true
      required:
      - title
    PatchedMarketplaceCategoryRequestForm:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: binary
          nullable: true
        default_vm_category:
          type: boolean
          description: Set to "true" if this category is for OpenStack VM. Only one
            category can have "true" value.
        default_volume_category:
          type: boolean
          description: Set to true if this category is for OpenStack Volume. Only
            one category can have "true" value.
        default_tenant_category:
          type: boolean
          description: Set to true if this category is for OpenStack Tenant. Only
            one category can have "true" value.
        group:
          type: string
          format: uri
          nullable: true
    PatchedMarketplaceCategoryRequestMultipart:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: binary
          nullable: true
        default_vm_category:
          type: boolean
          description: Set to "true" if this category is for OpenStack VM. Only one
            category can have "true" value.
        default_volume_category:
          type: boolean
          description: Set to true if this category is for OpenStack Volume. Only
            one category can have "true" value.
        default_tenant_category:
          type: boolean
          description: Set to true if this category is for OpenStack Tenant. Only
            one category can have "true" value.
        group:
          type: string
          format: uri
          nullable: true
    CategoryGroupRequestForm:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: binary
          nullable: true
      required:
      - title
    CategoryGroupRequestMultipart:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: binary
          nullable: true
      required:
      - title
    PatchedCategoryGroupRequestForm:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: binary
          nullable: true
    PatchedCategoryGroupRequestMultipart:
      type: object
      description: ''
      properties:
        title:
          type: string
          minLength: 1
          maxLength: 255
        description:
          type: string
        icon:
          type: string
          format: binary
          nullable: true
    OfferingFileRequestForm:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        offering:
          type: string
          format: uri
        file:
          type: string
          format: binary
      required:
      - file
      - name
      - offering
    OfferingFileRequestMultipart:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        offering:
          type: string
          format: uri
        file:
          type: string
          format: binary
      required:
      - file
      - name
      - offering
    OrderConsumerInfoRequestForm:
      type: object
      properties:
        consumer_message:
          type: string
        consumer_message_attachment:
          type: string
          format: binary
      description: ''
    OrderConsumerInfoRequestMultipart:
      type: object
      properties:
        consumer_message:
          type: string
        consumer_message_attachment:
          type: string
          format: binary
      description: ''
    OrderProviderInfoRequestForm:
      type: object
      properties:
        provider_message:
          type: string
        provider_message_url:
          type: string
          format: uri
        provider_message_attachment:
          type: string
          format: binary
      description: ''
    OrderProviderInfoRequestMultipart:
      type: object
      properties:
        provider_message:
          type: string
        provider_message_url:
          type: string
          format: uri
        provider_message_attachment:
          type: string
          format: binary
      description: ''
    OrderAttachmentRequestForm:
      type: object
      properties:
        attachment:
          type: string
          format: binary
          nullable: true
      description: ''
    OrderAttachmentRequestMultipart:
      type: object
      properties:
        attachment:
          type: string
          format: binary
          nullable: true
      description: ''
    OfferingCreateRequestForm:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        description:
          type: string
        full_description:
          type: string
        privacy_policy_link:
          type: string
          format: uri
          maxLength: 200
        access_url:
          type: string
          format: uri
          description: Publicly accessible offering access URL
          maxLength: 200
        customer:
          type: string
          format: uri
          nullable: true
        category:
          type: string
          format: uri
        attributes: {}
        options:
          $ref: '#/components/schemas/OfferingOptionsRequest'
        resource_options:
          $ref: '#/components/schemas/OfferingOptionsRequest'
        components:
          type: array
          items:
            $ref: '#/components/schemas/OfferingComponentRequest'
        plugin_options:
          $ref: '#/components/schemas/MergedPluginOptionsRequest'
        vendor_details:
          type: string
        getting_started:
          type: string
        integration_guide:
          type: string
        thumbnail:
          type: string
          format: binary
          nullable: true
        plans:
          type: array
          items:
            $ref: '#/components/schemas/BaseProviderPlanRequest'
        type:
          type: string
          minLength: 1
          maxLength: 100
        shared:
          type: boolean
          description: Accessible to all customers.
        billable:
          type: boolean
          description: Purchase and usage is invoiced.
        datacite_doi:
          type: string
          maxLength: 255
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        backend_id:
          type: string
          maxLength: 255
        backend_id_rules:
          description: 'Validation rules for resource backend_id: format regex and
            uniqueness scope.'
        image:
          type: string
          format: binary
          nullable: true
        backend_metadata: {}
        compliance_checklist:
          type: string
          format: uri
          nullable: true
        limits:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/OfferingComponentLimitRequest'
          writeOnly: true
      required:
      - category
      - name
      - type
    OfferingCreateRequestMultipart:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        description:
          type: string
        full_description:
          type: string
        privacy_policy_link:
          type: string
          format: uri
          maxLength: 200
        access_url:
          type: string
          format: uri
          description: Publicly accessible offering access URL
          maxLength: 200
        customer:
          type: string
          format: uri
          nullable: true
        category:
          type: string
          format: uri
        attributes: {}
        options:
          $ref: '#/components/schemas/OfferingOptionsRequest'
        resource_options:
          $ref: '#/components/schemas/OfferingOptionsRequest'
        components:
          type: array
          items:
            $ref: '#/components/schemas/OfferingComponentRequest'
        plugin_options:
          $ref: '#/components/schemas/MergedPluginOptionsRequest'
        vendor_details:
          type: string
        getting_started:
          type: string
        integration_guide:
          type: string
        thumbnail:
          type: string
          format: binary
          nullable: true
        plans:
          type: array
          items:
            $ref: '#/components/schemas/BaseProviderPlanRequest'
        type:
          type: string
          minLength: 1
          maxLength: 100
        shared:
          type: boolean
          description: Accessible to all customers.
        billable:
          type: boolean
          description: Purchase and usage is invoiced.
        datacite_doi:
          type: string
          maxLength: 255
        latitude:
          type: number
          format: double
          nullable: true
        longitude:
          type: number
          format: double
          nullable: true
        country:
          description: Country code (ISO 3166-1 alpha-2)
          oneOf:
          - $ref: '#/components/schemas/CountryEnum'
          - $ref: '#/components/schemas/BlankEnum'
        backend_id:
          type: string
          maxLength: 255
        backend_id_rules:
          description: 'Validation rules for resource backend_id: format regex and
            uniqueness scope.'
        image:
          type: string
          format: binary
          nullable: true
        backend_metadata: {}
        compliance_checklist:
          type: string
          format: uri
          nullable: true
        limits:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/OfferingComponentLimitRequest'
          writeOnly: true
      required:
      - category
      - name
      - type
    OfferingImageRequestForm:
      type: object
      properties:
        image:
          type: string
          format: binary
      required:
      - image
      description: ''
    OfferingImageRequestMultipart:
      type: object
      properties:
        image:
          type: string
          format: binary
      required:
      - image
      description: ''
    OfferingThumbnailRequestForm:
      type: object
      properties:
        thumbnail:
          type: string
          format: binary
      required:
      - thumbnail
      description: ''
    OfferingThumbnailRequestMultipart:
      type: object
      properties:
        thumbnail:
          type: string
          format: binary
      required:
      - thumbnail
      description: ''
    ResourceRenewRequestForm:
      type: object
      description: ''
      properties:
        extension_months:
          type: integer
          maximum: 60
          minimum: 12
          description: Number of months to extend the subscription by.
        limits:
          type: object
          additionalProperties:
            type: integer
            minimum: 0
          description: Optional new limits for the resource. Supports upgrades only.
        request_comment:
          type: string
          description: Optional comment for the renewal request.
          maxLength: 255
        attachment:
          type: string
          format: binary
          description: Optional PDF attachment for the renewal request.
      required:
      - extension_months
    ResourceRenewRequestMultipart:
      type: object
      description: ''
      properties:
        extension_months:
          type: integer
          maximum: 60
          minimum: 12
          description: Number of months to extend the subscription by.
        limits:
          type: object
          additionalProperties:
            type: integer
            minimum: 0
          description: Optional new limits for the resource. Supports upgrades only.
        request_comment:
          type: string
          description: Optional comment for the renewal request.
          maxLength: 255
        attachment:
          type: string
          format: binary
          description: Optional PDF attachment for the renewal request.
      required:
      - extension_months
    ScreenshotRequestForm:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        image:
          type: string
          format: binary
        offering:
          type: string
          format: uri
      required:
      - image
      - name
      - offering
    ScreenshotRequestMultipart:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        image:
          type: string
          format: binary
        offering:
          type: string
          format: uri
      required:
      - image
      - name
      - offering
    ServiceProviderRequestForm:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        enable_notifications:
          type: boolean
        customer:
          type: string
          format: uri
        image:
          type: string
          format: binary
          nullable: true
      required:
      - customer
    ServiceProviderRequestMultipart:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        enable_notifications:
          type: boolean
        customer:
          type: string
          format: uri
        image:
          type: string
          format: binary
          nullable: true
      required:
      - customer
    PatchedServiceProviderRequestForm:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        enable_notifications:
          type: boolean
        image:
          type: string
          format: binary
          nullable: true
    PatchedServiceProviderRequestMultipart:
      type: object
      description: ''
      properties:
        description:
          type: string
          maxLength: 4096
        enable_notifications:
          type: boolean
        image:
          type: string
          format: binary
          nullable: true
    OnboardingJustificationDocumentationRequestForm:
      type: object
      description: ''
      properties:
        file:
          type: string
          format: binary
          nullable: true
          description: Upload supporting documentation.
    OnboardingJustificationDocumentationRequestMultipart:
      type: object
      description: ''
      properties:
        file:
          type: string
          format: binary
          nullable: true
          description: Upload supporting documentation.
    ProjectRequestForm:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 500
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        customer:
          type: string
          format: uri
          title: Organization
        description:
          type: string
          description: Project description (HTML content will be sanitized)
        type:
          type: string
          format: uri
          nullable: true
          title: Project type
        backend_id:
          type: string
          maxLength: 255
        start_date:
          type: string
          format: date
          nullable: true
          description: Project start date. Cannot be edited after the start date has
            arrived.
        end_date:
          type: string
          format: date
          nullable: true
          description: Project end date. Setting this field requires DELETE_PROJECT
            permission.
        oecd_fos_2007_code:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/OecdFos2007CodeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        is_industry:
          type: boolean
        image:
          type: string
          format: binary
          nullable: true
        kind:
          allOf:
          - $ref: '#/components/schemas/KindEnum'
          title: Project type
        staff_notes:
          type: string
          description: Internal notes visible only to staff and support users (HTML
            content will be sanitized)
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated. Overrides customer-level setting.
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
      required:
      - customer
      - name
    ProjectRequestMultipart:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 500
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        customer:
          type: string
          format: uri
          title: Organization
        description:
          type: string
          description: Project description (HTML content will be sanitized)
        type:
          type: string
          format: uri
          nullable: true
          title: Project type
        backend_id:
          type: string
          maxLength: 255
        start_date:
          type: string
          format: date
          nullable: true
          description: Project start date. Cannot be edited after the start date has
            arrived.
        end_date:
          type: string
          format: date
          nullable: true
          description: Project end date. Setting this field requires DELETE_PROJECT
            permission.
        oecd_fos_2007_code:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/OecdFos2007CodeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        is_industry:
          type: boolean
        image:
          type: string
          format: binary
          nullable: true
        kind:
          allOf:
          - $ref: '#/components/schemas/KindEnum'
          title: Project type
        staff_notes:
          type: string
          description: Internal notes visible only to staff and support users (HTML
            content will be sanitized)
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated. Overrides customer-level setting.
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
      required:
      - customer
      - name
    PatchedProjectRequestForm:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 500
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        customer:
          type: string
          format: uri
          title: Organization
        description:
          type: string
          description: Project description (HTML content will be sanitized)
        type:
          type: string
          format: uri
          nullable: true
          title: Project type
        backend_id:
          type: string
          maxLength: 255
        start_date:
          type: string
          format: date
          nullable: true
          description: Project start date. Cannot be edited after the start date has
            arrived.
        end_date:
          type: string
          format: date
          nullable: true
          description: Project end date. Setting this field requires DELETE_PROJECT
            permission.
        oecd_fos_2007_code:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/OecdFos2007CodeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        is_industry:
          type: boolean
        image:
          type: string
          format: binary
          nullable: true
        kind:
          allOf:
          - $ref: '#/components/schemas/KindEnum'
          title: Project type
        staff_notes:
          type: string
          description: Internal notes visible only to staff and support users (HTML
            content will be sanitized)
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated. Overrides customer-level setting.
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
    PatchedProjectRequestMultipart:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 500
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        customer:
          type: string
          format: uri
          title: Organization
        description:
          type: string
          description: Project description (HTML content will be sanitized)
        type:
          type: string
          format: uri
          nullable: true
          title: Project type
        backend_id:
          type: string
          maxLength: 255
        start_date:
          type: string
          format: date
          nullable: true
          description: Project start date. Cannot be edited after the start date has
            arrived.
        end_date:
          type: string
          format: date
          nullable: true
          description: Project end date. Setting this field requires DELETE_PROJECT
            permission.
        oecd_fos_2007_code:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/OecdFos2007CodeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        is_industry:
          type: boolean
        image:
          type: string
          format: binary
          nullable: true
        kind:
          allOf:
          - $ref: '#/components/schemas/KindEnum'
          title: Project type
        staff_notes:
          type: string
          description: Internal notes visible only to staff and support users (HTML
            content will be sanitized)
        grace_period_days:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Number of extra days after project end date before resources
            are terminated. Overrides customer-level setting.
        user_email_patterns: {}
        user_affiliations: {}
        user_identity_sources:
          description: List of allowed identity sources (identity providers).
    ConstanceSettingsRequestForm:
      type: object
      properties:
        SITE_NAME:
          type: string
        SITE_DESCRIPTION:
          type: string
        HOMEPORT_URL:
          type: string
        RANCHER_USERNAME_INPUT_LABEL:
          type: string
        DISCLAIMER_AREA_TEXT:
          type: string
          minLength: 1
        SITE_ADDRESS:
          type: string
        SITE_EMAIL:
          type: string
        SITE_PHONE:
          type: string
        CURRENCY_NAME:
          type: string
        THUMBNAIL_SIZE:
          type: string
        ANONYMOUS_USER_CAN_VIEW_OFFERINGS:
          type: boolean
        ANONYMOUS_USER_CAN_VIEW_PLANS:
          type: boolean
        RESTRICTED_OFFERING_VISIBILITY_MODE:
          type: string
        ALLOW_SERVICE_PROVIDER_OFFERING_MANAGEMENT:
          type: boolean
        NOTIFY_STAFF_ABOUT_APPROVALS:
          type: boolean
        NOTIFY_ABOUT_RESOURCE_CHANGE:
          type: boolean
        DISABLE_SENDING_NOTIFICATIONS_ABOUT_RESOURCE_UPDATE:
          type: boolean
        MARKETPLACE_LANDING_PAGE:
          type: string
        ENABLE_STALE_RESOURCE_NOTIFICATIONS:
          type: boolean
        TELEMETRY_URL:
          type: string
        TELEMETRY_VERSION:
          type: integer
        SCRIPT_RUN_MODE:
          type: string
        DOCKER_CLIENT:
          type: string
          minLength: 1
        DOCKER_RUN_OPTIONS:
          type: string
          minLength: 1
        DOCKER_SCRIPT_DIR:
          type: string
        DOCKER_REMOVE_CONTAINER:
          type: boolean
        DOCKER_IMAGES:
          type: string
          minLength: 1
        DOCKER_VOLUME_NAME:
          type: string
        K8S_NAMESPACE:
          type: string
        K8S_CONFIG_PATH:
          type: string
        K8S_JOB_TIMEOUT:
          type: integer
        ENABLE_STRICT_CHECK_ACCEPTING_INVITATION:
          type: boolean
        INVITATION_DISABLE_MULTIPLE_ROLES:
          type: boolean
        DEFAULT_IDP:
          type: string
        DOCS_URL:
          type: string
          format: uri
        SHORT_PAGE_TITLE:
          type: string
        FULL_PAGE_TITLE:
          type: string
        PROJECT_END_DATE_MANDATORY:
          type: boolean
        ENABLE_ORDER_START_DATE:
          type: boolean
        BRAND_COLOR:
          type: string
          pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
        HERO_LINK_LABEL:
          type: string
        HERO_LINK_URL:
          type: string
          format: uri
        SUPPORT_PORTAL_URL:
          type: string
          format: uri
        COMMON_FOOTER_TEXT:
          type: string
          minLength: 1
        COMMON_FOOTER_HTML:
          type: string
          minLength: 1
        LANGUAGE_CHOICES:
          type: string
        DISABLE_DARK_THEME:
          type: boolean
        POWERED_BY_LOGO:
          type: string
          format: binary
          nullable: true
        HERO_IMAGE:
          type: string
          format: binary
          nullable: true
        MARKETPLACE_HERO_IMAGE:
          type: string
          format: binary
          nullable: true
        CALL_MANAGEMENT_HERO_IMAGE:
          type: string
          format: binary
          nullable: true
        SIDEBAR_LOGO:
          type: string
          format: binary
          nullable: true
        SIDEBAR_LOGO_DARK:
          type: string
          format: binary
          nullable: true
        SIDEBAR_LOGO_MOBILE:
          type: string
          format: binary
          nullable: true
        SIDEBAR_STYLE:
          type: string
        SITE_LOGO:
          type: string
          format: binary
          nullable: true
        LOGIN_LOGO:
          type: string
          format: binary
          nullable: true
        LOGIN_LOGO_MULTILINGUAL:
          type: object
          additionalProperties:
            type: string
            format: binary
            nullable: true
        LOGIN_PAGE_LAYOUT:
          type: string
        LOGIN_PAGE_VIDEO_URL:
          type: string
          format: uri
        LOGIN_PAGE_STATS:
          type: array
          items: {}
        LOGIN_PAGE_CAROUSEL_SLIDES:
          type: array
          items: {}
        LOGIN_PAGE_NEWS:
          type: array
          items: {}
        FAVICON:
          type: string
          format: binary
          nullable: true
        OFFERING_LOGO_PLACEHOLDER:
          type: string
          format: binary
          nullable: true
        DISCLAIMER_AREA_LOGO:
          type: string
          format: binary
          nullable: true
        WALDUR_SUPPORT_ENABLED:
          type: boolean
        WALDUR_SUPPORT_ACTIVE_BACKEND_TYPE:
          type: string
        WALDUR_SUPPORT_DISPLAY_REQUEST_TYPE:
          type: boolean
        ATLASSIAN_MAP_WALDUR_USERS_TO_SERVICEDESK_AGENTS:
          type: boolean
        ATLASSIAN_API_URL:
          type: string
          format: uri
        ATLASSIAN_USERNAME:
          type: string
        ATLASSIAN_PASSWORD:
          type: string
        ATLASSIAN_EMAIL:
          type: string
          format: email
          minLength: 1
        ATLASSIAN_USE_OLD_API:
          type: boolean
        ATLASSIAN_TOKEN:
          type: string
        ATLASSIAN_PERSONAL_ACCESS_TOKEN:
          type: string
        ATLASSIAN_OAUTH2_CLIENT_ID:
          type: string
        ATLASSIAN_OAUTH2_ACCESS_TOKEN:
          type: string
        ATLASSIAN_OAUTH2_TOKEN_TYPE:
          type: string
        ATLASSIAN_VERIFY_SSL:
          type: boolean
        ATLASSIAN_PROJECT_ID:
          type: string
        ATLASSIAN_SHARED_USERNAME:
          type: boolean
        ATLASSIAN_CUSTOM_ISSUE_FIELD_MAPPING_ENABLED:
          type: boolean
        ATLASSIAN_DEFAULT_OFFERING_ISSUE_TYPE:
          type: string
        ATLASSIAN_EXCLUDED_ATTACHMENT_TYPES:
          type: string
        ATLASSIAN_DESCRIPTION_TEMPLATE:
          type: string
        ATLASSIAN_SUMMARY_TEMPLATE:
          type: string
        ATLASSIAN_AFFECTED_RESOURCE_FIELD:
          type: string
        ATLASSIAN_IMPACT_FIELD:
          type: string
        ATLASSIAN_ORGANISATION_FIELD:
          type: string
        ATLASSIAN_RESOLUTION_SLA_FIELD:
          type: string
        ATLASSIAN_PROJECT_FIELD:
          type: string
        ATLASSIAN_REPORTER_FIELD:
          type: string
        ATLASSIAN_CALLER_FIELD:
          type: string
        ATLASSIAN_SLA_FIELD:
          type: string
        ATLASSIAN_LINKED_ISSUE_TYPE:
          type: string
        ATLASSIAN_SATISFACTION_FIELD:
          type: string
        ATLASSIAN_REQUEST_FEEDBACK_FIELD:
          type: string
        ATLASSIAN_TEMPLATE_FIELD:
          type: string
        ATLASSIAN_WALDUR_BACKEND_ID_FIELD:
          type: string
        ZAMMAD_API_URL:
          type: string
          format: uri
        ZAMMAD_TOKEN:
          type: string
        ZAMMAD_GROUP:
          type: string
        ZAMMAD_ARTICLE_TYPE:
          type: string
        ZAMMAD_COMMENT_MARKER:
          type: string
        ZAMMAD_COMMENT_PREFIX:
          type: string
        ZAMMAD_COMMENT_COOLDOWN_DURATION:
          type: integer
        SMAX_API_URL:
          type: string
          format: uri
        SMAX_TENANT_ID:
          type: string
        SMAX_LOGIN:
          type: string
        SMAX_PASSWORD:
          type: string
        SMAX_ORGANISATION_FIELD:
          type: string
        SMAX_PROJECT_FIELD:
          type: string
        SMAX_AFFECTED_RESOURCE_FIELD:
          type: string
        SMAX_TIMES_TO_PULL:
          type: integer
        SMAX_SECONDS_TO_WAIT:
          type: integer
        SMAX_CREATION_SOURCE_NAME:
          type: string
        SMAX_REQUESTS_OFFERING:
          type: string
        SMAX_VERIFY_SSL:
          type: boolean
        ENABLE_MOCK_SERVICE_ACCOUNT_BACKEND:
          type: boolean
        ENABLE_MOCK_COURSE_ACCOUNT_BACKEND:
          type: boolean
        PROPOSAL_REVIEW_DURATION:
          type: integer
        ORCID_CLIENT_ID:
          type: string
        ORCID_CLIENT_SECRET:
          type: string
        ORCID_REDIRECT_URI:
          type: string
          format: uri
        ORCID_API_URL:
          type: string
          format: uri
        ORCID_AUTH_URL:
          type: string
          format: uri
        ORCID_SANDBOX_MODE:
          type: boolean
        SEMANTIC_SCHOLAR_API_KEY:
          type: string
        CROSSREF_MAILTO:
          type: string
          format: email
          minLength: 1
        REVIEWER_PROFILES_ENABLED:
          type: boolean
        COI_DETECTION_ENABLED:
          type: boolean
        COI_DISCLOSURE_REQUIRED:
          type: boolean
        AUTOMATED_MATCHING_ENABLED:
          type: boolean
        COI_COAUTHORSHIP_LOOKBACK_YEARS:
          type: integer
        COI_COAUTHORSHIP_THRESHOLD_PAPERS:
          type: integer
        COI_INSTITUTIONAL_LOOKBACK_YEARS:
          type: integer
        USER_TABLE_COLUMNS:
          type: string
        AUTO_APPROVE_USER_TOS:
          type: boolean
        FREEIPA_ENABLED:
          type: boolean
        FREEIPA_HOSTNAME:
          type: string
        FREEIPA_USERNAME:
          type: string
        FREEIPA_PASSWORD:
          type: string
        FREEIPA_VERIFY_SSL:
          type: boolean
        FREEIPA_USERNAME_PREFIX:
          type: string
        FREEIPA_GROUPNAME_PREFIX:
          type: string
        FREEIPA_BLACKLISTED_USERNAMES:
          type: array
          items:
            type: string
            minLength: 1
        FREEIPA_GROUP_SYNCHRONIZATION_ENABLED:
          type: boolean
        SCIM_MEMBERSHIP_SYNC_ENABLED:
          type: boolean
        SCIM_API_URL:
          type: string
        SCIM_API_KEY:
          type: string
        SCIM_URN_NAMESPACE:
          type: string
        KEYCLOAK_ICON:
          type: string
          format: binary
          nullable: true
        COUNTRIES:
          type: array
          items:
            type: string
            minLength: 1
        OIDC_AUTH_URL:
          type: string
        OIDC_INTROSPECTION_URL:
          type: string
        OIDC_CLIENT_ID:
          type: string
        OIDC_CLIENT_SECRET:
          type: string
        OIDC_USER_FIELD:
          type: string
        OIDC_CACHE_TIMEOUT:
          type: integer
        OIDC_ACCESS_TOKEN_ENABLED:
          type: boolean
        OIDC_BLOCK_CREATION_OF_UNINVITED_USERS:
          type: boolean
        OIDC_MATCHMAKING_BY_EMAIL:
          type: boolean
        DEACTIVATE_USER_IF_NO_ROLES:
          type: boolean
        WALDUR_AUTH_SOCIAL_ROLE_CLAIM:
          type: string
        REMOTE_EDUTEAMS_REFRESH_TOKEN:
          type: string
        DEFAULT_OFFERING_USER_ATTRIBUTES:
          type: array
          items:
            type: string
            minLength: 1
        INVITATION_ALLOWED_FIELDS:
          type: array
          items:
            type: string
            minLength: 1
        ENABLED_USER_PROFILE_ATTRIBUTES:
          type: array
          items:
            type: string
            minLength: 1
        MANDATORY_USER_ATTRIBUTES:
          type: array
          items:
            type: string
            minLength: 1
        ENFORCE_MANDATORY_USER_ATTRIBUTES:
          type: boolean
        MAINTENANCE_ANNOUNCEMENT_NOTIFY_BEFORE_MINUTES:
          type: integer
        MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM:
          type: array
          items:
            type: string
            minLength: 1
        ENFORCE_USER_CONSENT_FOR_OFFERINGS:
          type: boolean
        DISABLED_OFFERING_TYPES:
          type: array
          items:
            type: string
            minLength: 1
        ONBOARDING_VALIDATION_METHODS:
          type: array
          items:
            type: string
            minLength: 1
        ONBOARDING_VERIFICATION_EXPIRY_HOURS:
          type: integer
        ONBOARDING_ARIREGISTER_BASE_URL:
          type: string
          format: uri
        ONBOARDING_ARIREGISTER_USERNAME:
          type: string
        ONBOARDING_ARIREGISTER_PASSWORD:
          type: string
        ONBOARDING_ARIREGISTER_TIMEOUT:
          type: integer
        ONBOARDING_WICO_API_URL:
          type: string
          format: uri
        ONBOARDING_WICO_TOKEN:
          type: string
        ONBOARDING_BOLAGSVERKET_API_URL:
          type: string
          format: uri
        ONBOARDING_BOLAGSVERKET_TOKEN_API_URL:
          type: string
          format: uri
        ONBOARDING_BOLAGSVERKET_CLIENT_ID:
          type: string
        ONBOARDING_BOLAGSVERKET_CLIENT_SECRET:
          type: string
        ONBOARDING_BREG_API_URL:
          type: string
          format: uri
        LLM_CHAT_ENABLED:
          type: boolean
        LLM_INFERENCES_BACKEND_TYPE:
          type: string
        LLM_INFERENCES_API_URL:
          type: string
          format: uri
        LLM_INFERENCES_API_TOKEN:
          type: string
        LLM_INFERENCES_MODEL:
          type: string
        LLM_TOKEN_LIMIT_DAILY:
          type: integer
        LLM_TOKEN_LIMIT_WEEKLY:
          type: integer
        LLM_TOKEN_LIMIT_MONTHLY:
          type: integer
        LLM_CHAT_SESSION_RETENTION_DAYS:
          type: integer
        LLM_CHAT_STORAGE_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_EESSI_UPDATE_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_EESSI_VERSION:
          type: string
        SOFTWARE_CATALOG_EESSI_API_URL:
          type: string
        SOFTWARE_CATALOG_EESSI_INCLUDE_EXTENSIONS:
          type: boolean
        SOFTWARE_CATALOG_SPACK_UPDATE_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_SPACK_VERSION:
          type: string
        SOFTWARE_CATALOG_SPACK_DATA_URL:
          type: string
        SOFTWARE_CATALOG_UPDATE_EXISTING_PACKAGES:
          type: boolean
        SOFTWARE_CATALOG_CLEANUP_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_RETENTION_DAYS:
          type: integer
        SYSTEM_LOG_ENABLED:
          type: boolean
        SYSTEM_LOG_MAX_ROWS_PER_SOURCE:
          type: integer
        TABLE_GROWTH_MONITORING_ENABLED:
          type: boolean
        TABLE_GROWTH_WEEKLY_THRESHOLD_PERCENT:
          type: integer
        TABLE_GROWTH_MONTHLY_THRESHOLD_PERCENT:
          type: integer
        TABLE_GROWTH_RETENTION_DAYS:
          type: integer
        TABLE_GROWTH_MIN_SIZE_BYTES:
          type: integer
        USER_ACTIONS_ENABLED:
          type: boolean
        USER_ACTIONS_PENDING_ORDER_HOURS:
          type: integer
        USER_ACTIONS_HIGH_URGENCY_NOTIFICATION:
          type: boolean
        USER_ACTIONS_NOTIFICATION_THRESHOLD:
          type: integer
        USER_ACTIONS_EXECUTION_RETENTION_DAYS:
          type: integer
        USER_ACTIONS_DEFAULT_EXPIRATION_REMINDERS:
          type: array
          items:
            type: string
            minLength: 1
        USER_DATA_ACCESS_LOGGING_ENABLED:
          type: boolean
        USER_DATA_ACCESS_LOG_RETENTION_DAYS:
          type: integer
        USER_DATA_ACCESS_LOG_SELF_ACCESS:
          type: boolean
        ARROW_AUTO_RECONCILIATION:
          type: boolean
        ARROW_SYNC_INTERVAL_HOURS:
          type: integer
        ARROW_CONSUMPTION_SYNC_ENABLED:
          type: boolean
        ARROW_CONSUMPTION_SYNC_INTERVAL_HOURS:
          type: integer
        ARROW_BILLING_CHECK_INTERVAL_HOURS:
          type: integer
        SLURM_POLICY_EVALUATION_LOG_RETENTION_DAYS:
          type: integer
        FEDERATED_IDENTITY_SYNC_ENABLED:
          type: boolean
        FEDERATED_IDENTITY_SYNC_ALLOWED_ATTRIBUTES:
          type: array
          items:
            type: string
            minLength: 1
        FEDERATED_IDENTITY_DEACTIVATION_POLICY:
          type: string
        ENABLE_PROJECT_DIGEST:
          type: boolean
      description: ''
    ConstanceSettingsRequestMultipart:
      type: object
      properties:
        SITE_NAME:
          type: string
        SITE_DESCRIPTION:
          type: string
        HOMEPORT_URL:
          type: string
        RANCHER_USERNAME_INPUT_LABEL:
          type: string
        DISCLAIMER_AREA_TEXT:
          type: string
          minLength: 1
        SITE_ADDRESS:
          type: string
        SITE_EMAIL:
          type: string
        SITE_PHONE:
          type: string
        CURRENCY_NAME:
          type: string
        THUMBNAIL_SIZE:
          type: string
        ANONYMOUS_USER_CAN_VIEW_OFFERINGS:
          type: boolean
        ANONYMOUS_USER_CAN_VIEW_PLANS:
          type: boolean
        RESTRICTED_OFFERING_VISIBILITY_MODE:
          type: string
        ALLOW_SERVICE_PROVIDER_OFFERING_MANAGEMENT:
          type: boolean
        NOTIFY_STAFF_ABOUT_APPROVALS:
          type: boolean
        NOTIFY_ABOUT_RESOURCE_CHANGE:
          type: boolean
        DISABLE_SENDING_NOTIFICATIONS_ABOUT_RESOURCE_UPDATE:
          type: boolean
        MARKETPLACE_LANDING_PAGE:
          type: string
        ENABLE_STALE_RESOURCE_NOTIFICATIONS:
          type: boolean
        TELEMETRY_URL:
          type: string
        TELEMETRY_VERSION:
          type: integer
        SCRIPT_RUN_MODE:
          type: string
        DOCKER_CLIENT:
          type: string
          minLength: 1
        DOCKER_RUN_OPTIONS:
          type: string
          minLength: 1
        DOCKER_SCRIPT_DIR:
          type: string
        DOCKER_REMOVE_CONTAINER:
          type: boolean
        DOCKER_IMAGES:
          type: string
          minLength: 1
        DOCKER_VOLUME_NAME:
          type: string
        K8S_NAMESPACE:
          type: string
        K8S_CONFIG_PATH:
          type: string
        K8S_JOB_TIMEOUT:
          type: integer
        ENABLE_STRICT_CHECK_ACCEPTING_INVITATION:
          type: boolean
        INVITATION_DISABLE_MULTIPLE_ROLES:
          type: boolean
        DEFAULT_IDP:
          type: string
        DOCS_URL:
          type: string
          format: uri
        SHORT_PAGE_TITLE:
          type: string
        FULL_PAGE_TITLE:
          type: string
        PROJECT_END_DATE_MANDATORY:
          type: boolean
        ENABLE_ORDER_START_DATE:
          type: boolean
        BRAND_COLOR:
          type: string
          pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
        HERO_LINK_LABEL:
          type: string
        HERO_LINK_URL:
          type: string
          format: uri
        SUPPORT_PORTAL_URL:
          type: string
          format: uri
        COMMON_FOOTER_TEXT:
          type: string
          minLength: 1
        COMMON_FOOTER_HTML:
          type: string
          minLength: 1
        LANGUAGE_CHOICES:
          type: string
        DISABLE_DARK_THEME:
          type: boolean
        POWERED_BY_LOGO:
          type: string
          format: binary
          nullable: true
        HERO_IMAGE:
          type: string
          format: binary
          nullable: true
        MARKETPLACE_HERO_IMAGE:
          type: string
          format: binary
          nullable: true
        CALL_MANAGEMENT_HERO_IMAGE:
          type: string
          format: binary
          nullable: true
        SIDEBAR_LOGO:
          type: string
          format: binary
          nullable: true
        SIDEBAR_LOGO_DARK:
          type: string
          format: binary
          nullable: true
        SIDEBAR_LOGO_MOBILE:
          type: string
          format: binary
          nullable: true
        SIDEBAR_STYLE:
          type: string
        SITE_LOGO:
          type: string
          format: binary
          nullable: true
        LOGIN_LOGO:
          type: string
          format: binary
          nullable: true
        LOGIN_LOGO_MULTILINGUAL:
          type: object
          additionalProperties:
            type: string
            format: binary
            nullable: true
        LOGIN_PAGE_LAYOUT:
          type: string
        LOGIN_PAGE_VIDEO_URL:
          type: string
          format: uri
        LOGIN_PAGE_STATS:
          type: array
          items: {}
        LOGIN_PAGE_CAROUSEL_SLIDES:
          type: array
          items: {}
        LOGIN_PAGE_NEWS:
          type: array
          items: {}
        FAVICON:
          type: string
          format: binary
          nullable: true
        OFFERING_LOGO_PLACEHOLDER:
          type: string
          format: binary
          nullable: true
        DISCLAIMER_AREA_LOGO:
          type: string
          format: binary
          nullable: true
        WALDUR_SUPPORT_ENABLED:
          type: boolean
        WALDUR_SUPPORT_ACTIVE_BACKEND_TYPE:
          type: string
        WALDUR_SUPPORT_DISPLAY_REQUEST_TYPE:
          type: boolean
        ATLASSIAN_MAP_WALDUR_USERS_TO_SERVICEDESK_AGENTS:
          type: boolean
        ATLASSIAN_API_URL:
          type: string
          format: uri
        ATLASSIAN_USERNAME:
          type: string
        ATLASSIAN_PASSWORD:
          type: string
        ATLASSIAN_EMAIL:
          type: string
          format: email
          minLength: 1
        ATLASSIAN_USE_OLD_API:
          type: boolean
        ATLASSIAN_TOKEN:
          type: string
        ATLASSIAN_PERSONAL_ACCESS_TOKEN:
          type: string
        ATLASSIAN_OAUTH2_CLIENT_ID:
          type: string
        ATLASSIAN_OAUTH2_ACCESS_TOKEN:
          type: string
        ATLASSIAN_OAUTH2_TOKEN_TYPE:
          type: string
        ATLASSIAN_VERIFY_SSL:
          type: boolean
        ATLASSIAN_PROJECT_ID:
          type: string
        ATLASSIAN_SHARED_USERNAME:
          type: boolean
        ATLASSIAN_CUSTOM_ISSUE_FIELD_MAPPING_ENABLED:
          type: boolean
        ATLASSIAN_DEFAULT_OFFERING_ISSUE_TYPE:
          type: string
        ATLASSIAN_EXCLUDED_ATTACHMENT_TYPES:
          type: string
        ATLASSIAN_DESCRIPTION_TEMPLATE:
          type: string
        ATLASSIAN_SUMMARY_TEMPLATE:
          type: string
        ATLASSIAN_AFFECTED_RESOURCE_FIELD:
          type: string
        ATLASSIAN_IMPACT_FIELD:
          type: string
        ATLASSIAN_ORGANISATION_FIELD:
          type: string
        ATLASSIAN_RESOLUTION_SLA_FIELD:
          type: string
        ATLASSIAN_PROJECT_FIELD:
          type: string
        ATLASSIAN_REPORTER_FIELD:
          type: string
        ATLASSIAN_CALLER_FIELD:
          type: string
        ATLASSIAN_SLA_FIELD:
          type: string
        ATLASSIAN_LINKED_ISSUE_TYPE:
          type: string
        ATLASSIAN_SATISFACTION_FIELD:
          type: string
        ATLASSIAN_REQUEST_FEEDBACK_FIELD:
          type: string
        ATLASSIAN_TEMPLATE_FIELD:
          type: string
        ATLASSIAN_WALDUR_BACKEND_ID_FIELD:
          type: string
        ZAMMAD_API_URL:
          type: string
          format: uri
        ZAMMAD_TOKEN:
          type: string
        ZAMMAD_GROUP:
          type: string
        ZAMMAD_ARTICLE_TYPE:
          type: string
        ZAMMAD_COMMENT_MARKER:
          type: string
        ZAMMAD_COMMENT_PREFIX:
          type: string
        ZAMMAD_COMMENT_COOLDOWN_DURATION:
          type: integer
        SMAX_API_URL:
          type: string
          format: uri
        SMAX_TENANT_ID:
          type: string
        SMAX_LOGIN:
          type: string
        SMAX_PASSWORD:
          type: string
        SMAX_ORGANISATION_FIELD:
          type: string
        SMAX_PROJECT_FIELD:
          type: string
        SMAX_AFFECTED_RESOURCE_FIELD:
          type: string
        SMAX_TIMES_TO_PULL:
          type: integer
        SMAX_SECONDS_TO_WAIT:
          type: integer
        SMAX_CREATION_SOURCE_NAME:
          type: string
        SMAX_REQUESTS_OFFERING:
          type: string
        SMAX_VERIFY_SSL:
          type: boolean
        ENABLE_MOCK_SERVICE_ACCOUNT_BACKEND:
          type: boolean
        ENABLE_MOCK_COURSE_ACCOUNT_BACKEND:
          type: boolean
        PROPOSAL_REVIEW_DURATION:
          type: integer
        ORCID_CLIENT_ID:
          type: string
        ORCID_CLIENT_SECRET:
          type: string
        ORCID_REDIRECT_URI:
          type: string
          format: uri
        ORCID_API_URL:
          type: string
          format: uri
        ORCID_AUTH_URL:
          type: string
          format: uri
        ORCID_SANDBOX_MODE:
          type: boolean
        SEMANTIC_SCHOLAR_API_KEY:
          type: string
        CROSSREF_MAILTO:
          type: string
          format: email
          minLength: 1
        REVIEWER_PROFILES_ENABLED:
          type: boolean
        COI_DETECTION_ENABLED:
          type: boolean
        COI_DISCLOSURE_REQUIRED:
          type: boolean
        AUTOMATED_MATCHING_ENABLED:
          type: boolean
        COI_COAUTHORSHIP_LOOKBACK_YEARS:
          type: integer
        COI_COAUTHORSHIP_THRESHOLD_PAPERS:
          type: integer
        COI_INSTITUTIONAL_LOOKBACK_YEARS:
          type: integer
        USER_TABLE_COLUMNS:
          type: string
        AUTO_APPROVE_USER_TOS:
          type: boolean
        FREEIPA_ENABLED:
          type: boolean
        FREEIPA_HOSTNAME:
          type: string
        FREEIPA_USERNAME:
          type: string
        FREEIPA_PASSWORD:
          type: string
        FREEIPA_VERIFY_SSL:
          type: boolean
        FREEIPA_USERNAME_PREFIX:
          type: string
        FREEIPA_GROUPNAME_PREFIX:
          type: string
        FREEIPA_BLACKLISTED_USERNAMES:
          type: array
          items:
            type: string
            minLength: 1
        FREEIPA_GROUP_SYNCHRONIZATION_ENABLED:
          type: boolean
        SCIM_MEMBERSHIP_SYNC_ENABLED:
          type: boolean
        SCIM_API_URL:
          type: string
        SCIM_API_KEY:
          type: string
        SCIM_URN_NAMESPACE:
          type: string
        KEYCLOAK_ICON:
          type: string
          format: binary
          nullable: true
        COUNTRIES:
          type: array
          items:
            type: string
            minLength: 1
        OIDC_AUTH_URL:
          type: string
        OIDC_INTROSPECTION_URL:
          type: string
        OIDC_CLIENT_ID:
          type: string
        OIDC_CLIENT_SECRET:
          type: string
        OIDC_USER_FIELD:
          type: string
        OIDC_CACHE_TIMEOUT:
          type: integer
        OIDC_ACCESS_TOKEN_ENABLED:
          type: boolean
        OIDC_BLOCK_CREATION_OF_UNINVITED_USERS:
          type: boolean
        OIDC_MATCHMAKING_BY_EMAIL:
          type: boolean
        DEACTIVATE_USER_IF_NO_ROLES:
          type: boolean
        WALDUR_AUTH_SOCIAL_ROLE_CLAIM:
          type: string
        REMOTE_EDUTEAMS_REFRESH_TOKEN:
          type: string
        DEFAULT_OFFERING_USER_ATTRIBUTES:
          type: array
          items:
            type: string
            minLength: 1
        INVITATION_ALLOWED_FIELDS:
          type: array
          items:
            type: string
            minLength: 1
        ENABLED_USER_PROFILE_ATTRIBUTES:
          type: array
          items:
            type: string
            minLength: 1
        MANDATORY_USER_ATTRIBUTES:
          type: array
          items:
            type: string
            minLength: 1
        ENFORCE_MANDATORY_USER_ATTRIBUTES:
          type: boolean
        MAINTENANCE_ANNOUNCEMENT_NOTIFY_BEFORE_MINUTES:
          type: integer
        MAINTENANCE_ANNOUNCEMENT_NOTIFY_SYSTEM:
          type: array
          items:
            type: string
            minLength: 1
        ENFORCE_USER_CONSENT_FOR_OFFERINGS:
          type: boolean
        DISABLED_OFFERING_TYPES:
          type: array
          items:
            type: string
            minLength: 1
        ONBOARDING_VALIDATION_METHODS:
          type: array
          items:
            type: string
            minLength: 1
        ONBOARDING_VERIFICATION_EXPIRY_HOURS:
          type: integer
        ONBOARDING_ARIREGISTER_BASE_URL:
          type: string
          format: uri
        ONBOARDING_ARIREGISTER_USERNAME:
          type: string
        ONBOARDING_ARIREGISTER_PASSWORD:
          type: string
        ONBOARDING_ARIREGISTER_TIMEOUT:
          type: integer
        ONBOARDING_WICO_API_URL:
          type: string
          format: uri
        ONBOARDING_WICO_TOKEN:
          type: string
        ONBOARDING_BOLAGSVERKET_API_URL:
          type: string
          format: uri
        ONBOARDING_BOLAGSVERKET_TOKEN_API_URL:
          type: string
          format: uri
        ONBOARDING_BOLAGSVERKET_CLIENT_ID:
          type: string
        ONBOARDING_BOLAGSVERKET_CLIENT_SECRET:
          type: string
        ONBOARDING_BREG_API_URL:
          type: string
          format: uri
        LLM_CHAT_ENABLED:
          type: boolean
        LLM_INFERENCES_BACKEND_TYPE:
          type: string
        LLM_INFERENCES_API_URL:
          type: string
          format: uri
        LLM_INFERENCES_API_TOKEN:
          type: string
        LLM_INFERENCES_MODEL:
          type: string
        LLM_TOKEN_LIMIT_DAILY:
          type: integer
        LLM_TOKEN_LIMIT_WEEKLY:
          type: integer
        LLM_TOKEN_LIMIT_MONTHLY:
          type: integer
        LLM_CHAT_SESSION_RETENTION_DAYS:
          type: integer
        LLM_CHAT_STORAGE_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_EESSI_UPDATE_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_EESSI_VERSION:
          type: string
        SOFTWARE_CATALOG_EESSI_API_URL:
          type: string
        SOFTWARE_CATALOG_EESSI_INCLUDE_EXTENSIONS:
          type: boolean
        SOFTWARE_CATALOG_SPACK_UPDATE_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_SPACK_VERSION:
          type: string
        SOFTWARE_CATALOG_SPACK_DATA_URL:
          type: string
        SOFTWARE_CATALOG_UPDATE_EXISTING_PACKAGES:
          type: boolean
        SOFTWARE_CATALOG_CLEANUP_ENABLED:
          type: boolean
        SOFTWARE_CATALOG_RETENTION_DAYS:
          type: integer
        SYSTEM_LOG_ENABLED:
          type: boolean
        SYSTEM_LOG_MAX_ROWS_PER_SOURCE:
          type: integer
        TABLE_GROWTH_MONITORING_ENABLED:
          type: boolean
        TABLE_GROWTH_WEEKLY_THRESHOLD_PERCENT:
          type: integer
        TABLE_GROWTH_MONTHLY_THRESHOLD_PERCENT:
          type: integer
        TABLE_GROWTH_RETENTION_DAYS:
          type: integer
        TABLE_GROWTH_MIN_SIZE_BYTES:
          type: integer
        USER_ACTIONS_ENABLED:
          type: boolean
        USER_ACTIONS_PENDING_ORDER_HOURS:
          type: integer
        USER_ACTIONS_HIGH_URGENCY_NOTIFICATION:
          type: boolean
        USER_ACTIONS_NOTIFICATION_THRESHOLD:
          type: integer
        USER_ACTIONS_EXECUTION_RETENTION_DAYS:
          type: integer
        USER_ACTIONS_DEFAULT_EXPIRATION_REMINDERS:
          type: array
          items:
            type: string
            minLength: 1
        USER_DATA_ACCESS_LOGGING_ENABLED:
          type: boolean
        USER_DATA_ACCESS_LOG_RETENTION_DAYS:
          type: integer
        USER_DATA_ACCESS_LOG_SELF_ACCESS:
          type: boolean
        ARROW_AUTO_RECONCILIATION:
          type: boolean
        ARROW_SYNC_INTERVAL_HOURS:
          type: integer
        ARROW_CONSUMPTION_SYNC_ENABLED:
          type: boolean
        ARROW_CONSUMPTION_SYNC_INTERVAL_HOURS:
          type: integer
        ARROW_BILLING_CHECK_INTERVAL_HOURS:
          type: integer
        SLURM_POLICY_EVALUATION_LOG_RETENTION_DAYS:
          type: integer
        FEDERATED_IDENTITY_SYNC_ENABLED:
          type: boolean
        FEDERATED_IDENTITY_SYNC_ALLOWED_ATTRIBUTES:
          type: array
          items:
            type: string
            minLength: 1
        FEDERATED_IDENTITY_DEACTIVATION_POLICY:
          type: string
        ENABLE_PROJECT_DIGEST:
          type: boolean
      description: ''
    PaymentRequestForm:
      type: object
      properties:
        profile:
          type: string
          format: uri
        date_of_payment:
          type: string
          format: date
        sum:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        proof:
          type: string
          format: binary
          nullable: true
      required:
      - date_of_payment
      - profile
      description: ''
    PaymentRequestMultipart:
      type: object
      properties:
        profile:
          type: string
          format: uri
        date_of_payment:
          type: string
          format: date
        sum:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        proof:
          type: string
          format: binary
          nullable: true
      required:
      - date_of_payment
      - profile
      description: ''
    PatchedPaymentRequestForm:
      type: object
      properties:
        profile:
          type: string
          format: uri
        date_of_payment:
          type: string
          format: date
        sum:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        proof:
          type: string
          format: binary
          nullable: true
      description: ''
    PatchedPaymentRequestMultipart:
      type: object
      properties:
        profile:
          type: string
          format: uri
        date_of_payment:
          type: string
          format: date
        sum:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        proof:
          type: string
          format: binary
          nullable: true
      description: ''
    ProposalDocumentationRequestForm:
      type: object
      properties:
        file:
          type: string
          format: binary
          nullable: true
          description: Upload supporting documentation in PDF format.
      description: ''
    ProposalDocumentationRequestMultipart:
      type: object
      properties:
        file:
          type: string
          format: binary
          nullable: true
          description: Upload supporting documentation in PDF format.
      description: ''
    FirecrestJobRequestForm:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        runtime_state:
          type: string
          maxLength: 100
        file:
          type: string
          format: binary
          title: Batch script file
      required:
      - file
      - name
      - project
      - service_settings
    FirecrestJobRequestMultipart:
      type: object
      description: ''
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 150
        description:
          type: string
          maxLength: 4096
        service_settings:
          type: string
          format: uri
        project:
          type: string
          format: uri
        runtime_state:
          type: string
          maxLength: 100
        file:
          type: string
          format: binary
          title: Batch script file
      required:
      - file
      - name
      - project
      - service_settings
    AttachmentRequestForm:
      type: object
      description: ''
      properties:
        issue:
          type: string
          format: uri
        file:
          type: string
          format: binary
      required:
      - file
      - issue
    AttachmentRequestMultipart:
      type: object
      description: ''
      properties:
        issue:
          type: string
          format: uri
        file:
          type: string
          format: binary
      required:
      - file
      - issue
    UserRequestForm:
      type: object
      description: ''
      properties:
        username:
          type: string
          minLength: 1
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          pattern: ^[0-9a-z_.@+-]+$
          maxLength: 128
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        native_name:
          type: string
          maxLength: 100
        job_title:
          type: string
          maxLength: 120
        email:
          type: string
          format: email
          minLength: 1
        phone_number:
          type: string
          maxLength: 255
        organization:
          type: string
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        is_support:
          type: boolean
          title: Support status
          description: Designates whether the user is a global support user.
        token_lifetime:
          type: integer
          maximum: 2147483647
          minimum: 60
          nullable: true
          description: Token lifetime in seconds.
        agree_with_policy:
          type: boolean
          writeOnly: true
          description: User must agree with the policy to register.
        notifications_enabled:
          type: boolean
          description: Designates whether the user is allowed to receive email notifications.
        preferred_language:
          type: string
          maxLength: 10
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
        birth_date:
          type: string
          format: date
          nullable: true
        image:
          type: string
          format: binary
          nullable: true
        gender:
          nullable: true
          description: ISO 5218 gender code
          minimum: 0
          maximum: 32767
          oneOf:
          - $ref: '#/components/schemas/GenderEnum'
          - $ref: '#/components/schemas/NullEnum'
        personal_title:
          type: string
          description: Honorific title (Mr, Ms, Dr, Prof, etc.)
          maxLength: 50
        place_of_birth:
          type: string
          maxLength: 255
        country_of_residence:
          type: string
          maxLength: 2
        nationality:
          type: string
          description: Primary citizenship (ISO 3166-1 alpha-2 code)
          maxLength: 2
        nationalities:
          description: List of all citizenships (ISO 3166-1 alpha-2 codes)
        organization_country:
          type: string
          maxLength: 2
        organization_type:
          type: string
          description: SCHAC URN (e.g., urn:schac:homeOrganizationType:int:university)
          maxLength: 255
        organization_registry_code:
          type: string
          description: Company registration code of the user's organization, if known
          maxLength: 255
        eduperson_assurance:
          description: REFEDS assurance profile URIs from identity provider
        is_identity_manager:
          type: boolean
          description: Designates whether the user is allowed to manage remote user
            identities.
        managed_isds:
          description: List of ISD source identifiers this user can manage via Identity
            Bridge. E.g., ['isd:puhuri', 'isd:fenix']. Non-empty list implies identity
            manager role.
      required:
      - email
      - username
    UserRequestMultipart:
      type: object
      description: ''
      properties:
        username:
          type: string
          minLength: 1
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          pattern: ^[0-9a-z_.@+-]+$
          maxLength: 128
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        native_name:
          type: string
          maxLength: 100
        job_title:
          type: string
          maxLength: 120
        email:
          type: string
          format: email
          minLength: 1
        phone_number:
          type: string
          maxLength: 255
        organization:
          type: string
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        is_support:
          type: boolean
          title: Support status
          description: Designates whether the user is a global support user.
        token_lifetime:
          type: integer
          maximum: 2147483647
          minimum: 60
          nullable: true
          description: Token lifetime in seconds.
        agree_with_policy:
          type: boolean
          writeOnly: true
          description: User must agree with the policy to register.
        notifications_enabled:
          type: boolean
          description: Designates whether the user is allowed to receive email notifications.
        preferred_language:
          type: string
          maxLength: 10
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
        birth_date:
          type: string
          format: date
          nullable: true
        image:
          type: string
          format: binary
          nullable: true
        gender:
          nullable: true
          description: ISO 5218 gender code
          minimum: 0
          maximum: 32767
          oneOf:
          - $ref: '#/components/schemas/GenderEnum'
          - $ref: '#/components/schemas/NullEnum'
        personal_title:
          type: string
          description: Honorific title (Mr, Ms, Dr, Prof, etc.)
          maxLength: 50
        place_of_birth:
          type: string
          maxLength: 255
        country_of_residence:
          type: string
          maxLength: 2
        nationality:
          type: string
          description: Primary citizenship (ISO 3166-1 alpha-2 code)
          maxLength: 2
        nationalities:
          description: List of all citizenships (ISO 3166-1 alpha-2 codes)
        organization_country:
          type: string
          maxLength: 2
        organization_type:
          type: string
          description: SCHAC URN (e.g., urn:schac:homeOrganizationType:int:university)
          maxLength: 255
        organization_registry_code:
          type: string
          description: Company registration code of the user's organization, if known
          maxLength: 255
        eduperson_assurance:
          description: REFEDS assurance profile URIs from identity provider
        is_identity_manager:
          type: boolean
          description: Designates whether the user is allowed to manage remote user
            identities.
        managed_isds:
          description: List of ISD source identifiers this user can manage via Identity
            Bridge. E.g., ['isd:puhuri', 'isd:fenix']. Non-empty list implies identity
            manager role.
      required:
      - email
      - username
    PatchedUserRequestForm:
      type: object
      description: ''
      properties:
        username:
          type: string
          minLength: 1
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          pattern: ^[0-9a-z_.@+-]+$
          maxLength: 128
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        native_name:
          type: string
          maxLength: 100
        job_title:
          type: string
          maxLength: 120
        phone_number:
          type: string
          maxLength: 255
        organization:
          type: string
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        is_support:
          type: boolean
          title: Support status
          description: Designates whether the user is a global support user.
        token_lifetime:
          type: integer
          maximum: 2147483647
          minimum: 60
          nullable: true
          description: Token lifetime in seconds.
        agree_with_policy:
          type: boolean
          writeOnly: true
          description: User must agree with the policy to register.
        notifications_enabled:
          type: boolean
          description: Designates whether the user is allowed to receive email notifications.
        preferred_language:
          type: string
          maxLength: 10
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
        birth_date:
          type: string
          format: date
          nullable: true
        image:
          type: string
          format: binary
          nullable: true
        gender:
          nullable: true
          description: ISO 5218 gender code
          minimum: 0
          maximum: 32767
          oneOf:
          - $ref: '#/components/schemas/GenderEnum'
          - $ref: '#/components/schemas/NullEnum'
        personal_title:
          type: string
          description: Honorific title (Mr, Ms, Dr, Prof, etc.)
          maxLength: 50
        place_of_birth:
          type: string
          maxLength: 255
        country_of_residence:
          type: string
          maxLength: 2
        nationality:
          type: string
          description: Primary citizenship (ISO 3166-1 alpha-2 code)
          maxLength: 2
        nationalities:
          description: List of all citizenships (ISO 3166-1 alpha-2 codes)
        organization_country:
          type: string
          maxLength: 2
        organization_type:
          type: string
          description: SCHAC URN (e.g., urn:schac:homeOrganizationType:int:university)
          maxLength: 255
        organization_registry_code:
          type: string
          description: Company registration code of the user's organization, if known
          maxLength: 255
        eduperson_assurance:
          description: REFEDS assurance profile URIs from identity provider
        is_identity_manager:
          type: boolean
          description: Designates whether the user is allowed to manage remote user
            identities.
        managed_isds:
          description: List of ISD source identifiers this user can manage via Identity
            Bridge. E.g., ['isd:puhuri', 'isd:fenix']. Non-empty list implies identity
            manager role.
    PatchedUserRequestMultipart:
      type: object
      description: ''
      properties:
        username:
          type: string
          minLength: 1
          description: Required. 128 characters or fewer. Lowercase letters, numbers
            and @/./+/-/_ characters
          pattern: ^[0-9a-z_.@+-]+$
          maxLength: 128
        slug:
          type: string
          description: URL-friendly identifier. Only editable by staff users.
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        native_name:
          type: string
          maxLength: 100
        job_title:
          type: string
          maxLength: 120
        phone_number:
          type: string
          maxLength: 255
        organization:
          type: string
          maxLength: 255
        description:
          type: string
          maxLength: 4096
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_active:
          type: boolean
          title: Active
          description: Designates whether this user should be treated as active. Unselect
            this instead of deleting accounts.
        is_support:
          type: boolean
          title: Support status
          description: Designates whether the user is a global support user.
        token_lifetime:
          type: integer
          maximum: 2147483647
          minimum: 60
          nullable: true
          description: Token lifetime in seconds.
        agree_with_policy:
          type: boolean
          writeOnly: true
          description: User must agree with the policy to register.
        notifications_enabled:
          type: boolean
          description: Designates whether the user is allowed to receive email notifications.
        preferred_language:
          type: string
          maxLength: 10
        first_name:
          type: string
          maxLength: 100
        last_name:
          type: string
          maxLength: 100
        birth_date:
          type: string
          format: date
          nullable: true
        image:
          type: string
          format: binary
          nullable: true
        gender:
          nullable: true
          description: ISO 5218 gender code
          minimum: 0
          maximum: 32767
          oneOf:
          - $ref: '#/components/schemas/GenderEnum'
          - $ref: '#/components/schemas/NullEnum'
        personal_title:
          type: string
          description: Honorific title (Mr, Ms, Dr, Prof, etc.)
          maxLength: 50
        place_of_birth:
          type: string
          maxLength: 255
        country_of_residence:
          type: string
          maxLength: 2
        nationality:
          type: string
          description: Primary citizenship (ISO 3166-1 alpha-2 code)
          maxLength: 2
        nationalities:
          description: List of all citizenships (ISO 3166-1 alpha-2 codes)
        organization_country:
          type: string
          maxLength: 2
        organization_type:
          type: string
          description: SCHAC URN (e.g., urn:schac:homeOrganizationType:int:university)
          maxLength: 255
        organization_registry_code:
          type: string
          description: Company registration code of the user's organization, if known
          maxLength: 255
        eduperson_assurance:
          description: REFEDS assurance profile URIs from identity provider
        is_identity_manager:
          type: boolean
          description: Designates whether the user is allowed to manage remote user
            identities.
        managed_isds:
          description: List of ISD source identifiers this user can manage via Identity
            Bridge. E.g., ['isd:puhuri', 'isd:fenix']. Non-empty list implies identity
            manager role.
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: ''
    waldurCookieAuth:
      type: apiKey
      in: cookie
      name: sessionid
      description: ''
    waldurOIDCAuth:
      type: http
      scheme: bearer
      description: ''
  parameters:
    Page:
      name: page
      required: false
      in: query
      description: A page number within the paginated result set.
      schema:
        type: integer
    PageSize:
      name: page_size
      required: false
      in: query
      description: Number of results to return per page.
      schema:
        type: integer
  headers:
    XResultCount:
      description: Total number of results available
      schema:
        type: integer
      example: 42
