Nasuni Cloud Credentials API

The Cloud Credentials API from Nasuni — 5 operation(s) for cloud credentials.

Operations 8

GET /cloud-credentials Get Cloud Credentials #
POST /cloud-credentials Create Cloud Credential #
GET /cloud-credentials/{credential_id} Get Cloud Credential by ID #
DELETE /cloud-credentials/{credential_id} Delete Cloud Credential #
PATCH /cloud-credentials/{credential_id} Update Cloud Credential #
POST /cloud-credentials/exports Create Cloud Credentials Export #
GET /cloud-credentials/exports/{request_id} Get Cloud Credential Export Status #
GET /cloud-credentials/files/{file_id} Download Cloud Credential Export #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/nasuni-cloud-credentials-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

nasuni-cloud-credentials-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Portal Cloud Credentials API
  version: 0.1.0
servers:
- url: https://am1.portal.api.nasuni.com
  description: Base URL for accounts assigned the US region.
- url: https://eu1.portal.api.nasuni.com
  description: Base URL for accounts assigned the EU region.
- url: https://ap1.portal.api.nasuni.com
  description: Base URL for accounts assigned the Asia-Pacific region.
security:
- HTTPBearer: []
tags:
- name: Cloud Credentials
paths:
  /cloud-credentials:
    get:
      tags:
      - Cloud Credentials
      summary: Get Cloud Credentials
      description: 'Get paginated cloud credentials with optional filters.


        Supports cursor-based pagination with keyset seek for efficient forward navigation.'
      operationId: get_cloud_credentials_cloud_credentials_get
      security:
      - HTTPBearer: []
      parameters:
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Search
      - name: providers
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/NocCloudProvider'
          - type: 'null'
          description: Filter by cloud provider shortnames
          title: Providers
        description: Filter by cloud provider shortnames
      - name: appliance_serials
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: uuid
          - type: 'null'
          description: Filter by appliance serial UUIDs
          title: Appliance Serials
        description: Filter by appliance serial UUIDs
      - name: volume_ids
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: Filter by associated volume IDs
          title: Volume Ids
        description: Filter by associated volume IDs
      - name: sort_by
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/CloudCredentialSortBy'
          default: name
      - name: sort_direction
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/SortDirection'
          default: ascending
      - name: iterator_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Iterator Id
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          exclusiveMinimum: 0
          default: 50
          title: Limit
      - name: page
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 1
          - type: 'null'
          title: Page
      responses:
        '200':
          description: Paginated list of cloud credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudCredentialsDto'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Cloud Credentials
      summary: Create Cloud Credential
      operationId: create_credential_cloud_credentials_post
      security:
      - HTTPBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/AWSS3CredentialRequest'
              - $ref: '#/components/schemas/AWSS3GovCloudCredentialRequest'
              - $ref: '#/components/schemas/S3CompatibleCredentialRequest'
              - $ref: '#/components/schemas/AzureCredentialRequest'
              - $ref: '#/components/schemas/GCSCredentialRequest'
              - $ref: '#/components/schemas/IBMCredentialRequest'
              - $ref: '#/components/schemas/HCPCredentialRequest'
              - $ref: '#/components/schemas/CleversafeCredentialRequest'
              - $ref: '#/components/schemas/ViprCredentialRequest'
              discriminator:
                propertyName: cred_type
                mapping:
                  amazons3: '#/components/schemas/AWSS3CredentialRequest'
                  amazons3gov: '#/components/schemas/AWSS3GovCloudCredentialRequest'
                  s3_compatible: '#/components/schemas/S3CompatibleCredentialRequest'
                  azure: '#/components/schemas/AzureCredentialRequest'
                  googles3: '#/components/schemas/GCSCredentialRequest'
                  ibmcos: '#/components/schemas/IBMCredentialRequest'
                  hcp: '#/components/schemas/HCPCredentialRequest'
                  cleversafe: '#/components/schemas/CleversafeCredentialRequest'
                  vipr: '#/components/schemas/ViprCredentialRequest'
              title: Request
      responses:
        '202':
          description: Cloud credential creation accepted; command dispatched to edge
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskCreatedDto'
        '401':
          description: Not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '404':
          description: Edge appliance with the given serial does not exist
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '503':
          description: Edge appliance is unreachable (no recent heartbeat)
  /cloud-credentials/{credential_id}:
    get:
      tags:
      - Cloud Credentials
      summary: Get Cloud Credential by ID
      description: Get a single cloud credential by its Portal-assigned credential ID.
      operationId: get_cloud_credentials_credential_cloud_credentials__credential_id__get
      security:
      - HTTPBearer: []
      parameters:
      - name: credential_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Credential Id
      responses:
        '200':
          description: Cloud credential retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudCredentialDto'
        '401':
          description: Not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    delete:
      tags:
      - Cloud Credentials
      summary: Delete Cloud Credential
      operationId: delete_cloud_credential_cloud_credentials__credential_id__delete
      security:
      - HTTPBearer: []
      parameters:
      - name: credential_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Credential Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudCredentialDeleteRequest'
      responses:
        '202':
          description: Delete accepted. `task_ids` lists tasks dispatched to reachable filers; `failed_unreachable` lists per-filer rows pre-created in `failed` state because the filer was offline at request time.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudCredentialDeleteResponseDto'
        '401':
          description: Not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Resource state conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: All targeted appliances are unreachable; no tasks were created.
    patch:
      tags:
      - Cloud Credentials
      summary: Update Cloud Credential
      operationId: update_credential_cloud_credentials__credential_id__patch
      security:
      - HTTPBearer: []
      parameters:
      - name: credential_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Credential Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/AWSS3CredentialUpdateRequest'
              - $ref: '#/components/schemas/AWSS3GovCloudCredentialUpdateRequest'
              - $ref: '#/components/schemas/S3CompatibleCredentialUpdateRequest'
              - $ref: '#/components/schemas/AzureCredentialUpdateRequest'
              - $ref: '#/components/schemas/GCSCredentialUpdateRequest'
              - $ref: '#/components/schemas/IBMCredentialUpdateRequest'
              - $ref: '#/components/schemas/HCPCredentialUpdateRequest'
              - $ref: '#/components/schemas/ViprCredentialUpdateRequest'
              discriminator:
                propertyName: cred_type
                mapping:
                  amazons3: '#/components/schemas/AWSS3CredentialUpdateRequest'
                  amazons3gov: '#/components/schemas/AWSS3GovCloudCredentialUpdateRequest'
                  s3_compatible: '#/components/schemas/S3CompatibleCredentialUpdateRequest'
                  azure: '#/components/schemas/AzureCredentialUpdateRequest'
                  googles3: '#/components/schemas/GCSCredentialUpdateRequest'
                  ibmcos: '#/components/schemas/IBMCredentialUpdateRequest'
                  hcp: '#/components/schemas/HCPCredentialUpdateRequest'
                  vipr: '#/components/schemas/ViprCredentialUpdateRequest'
              title: Request
      responses:
        '202':
          description: Credential update accepted; commands dispatched to reachable appliances
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudCredentialUpdateResponseDto'
        '401':
          description: Not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
  /cloud-credentials/exports:
    post:
      tags:
      - Cloud Credentials
      summary: Create Cloud Credentials Export
      operationId: create_export_cloud_credentials_exports_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudCredentialExportRequestDto'
        required: true
      responses:
        '202':
          description: Export request accepted and processing in background
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExportStatusDto'
        '400':
          description: Invalid request body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '401':
          description: Not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '422':
          description: Invalid request body format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
      security:
      - HTTPBearer: []
  /cloud-credentials/exports/{request_id}:
    get:
      tags:
      - Cloud Credentials
      summary: Get Cloud Credential Export Status
      operationId: get_export_status_cloud_credentials_exports__request_id__get
      security:
      - HTTPBearer: []
      parameters:
      - name: request_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Request Id
      responses:
        '200':
          description: Export status retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExportStatusDto'
        '401':
          description: Not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '404':
          description: Export request not found or has been deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
  /cloud-credentials/files/{file_id}:
    get:
      tags:
      - Cloud Credentials
      summary: Download Cloud Credential Export
      operationId: download_file_cloud_credentials_files__file_id__get
      security:
      - HTTPBearer: []
      parameters:
      - name: file_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: File Id
      responses:
        '200':
          description: Export file stream (CSV)
          content:
            application/json:
              schema: {}
            text/csv:
              example: Credential Name|Access Key|Provider Type|Hostname|Validate SSL|Appliance Name|NEA Version|Appliance Status|Volume Names|In-Use Status|Created At|Updated At|Notes
        '401':
          description: Not authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '404':
          description: Export file not found (may be in progress, failed, or already deleted)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseBaseDto'
components:
  schemas:
    AWSS3CredentialRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
        hostname:
          type: string
          title: Hostname
          default: ''
        username:
          type: string
          minLength: 1
          title: Username
        secret:
          type: string
          minLength: 1
          title: Secret
        verify_certs:
          type: boolean
          title: Verify Certs
          default: true
        note:
          type: string
          title: Note
          default: ''
        appliance_serial:
          type: string
          format: uuid
          title: Appliance Serial
        cred_type:
          type: string
          const: amazons3
          title: Cred Type
          default: amazons3
        region_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Region Code
        skip_validation:
          type: boolean
          title: Skip Validation
          default: false
      type: object
      required:
      - name
      - username
      - secret
      - appliance_serial
      title: AWSS3CredentialRequest
    AzureCredentialUpdateRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
        hostname:
          type: string
          title: Hostname
          default: ''
        username:
          type: string
          minLength: 1
          title: Username
        secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Secret
        verify_certs:
          type: boolean
          title: Verify Certs
          default: true
        note:
          type: string
          title: Note
          default: ''
        appliance_serials:
          items:
            type: string
            format: uuid
          type: array
          minItems: 1
          title: Appliance Serials
        cred_type:
          type: string
          const: azure
          title: Cred Type
          default: azure
      type: object
      required:
      - name
      - username
      - appliance_serials
      title: AzureCredentialUpdateRequest
    GCSCredentialUpdateRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
        hostname:
          type: string
          title: Hostname
          default: ''
        username:
          type: string
          minLength: 1
          title: Username
        secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Secret
        verify_certs:
          type: boolean
          title: Verify Certs
          default: true
        note:
          type: string
          title: Note
          default: ''
        appliance_serials:
          items:
            type: string
            format: uuid
          type: array
          minItems: 1
          title: Appliance Serials
        cred_type:
          type: string
          const: googles3
          title: Cred Type
          default: googles3
      type: object
      required:
      - name
      - username
      - appliance_serials
      title: GCSCredentialUpdateRequest
    ViprCredentialUpdateRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
        hostname:
          type: string
          title: Hostname
          default: ''
        username:
          type: string
          minLength: 1
          title: Username
        secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Secret
        verify_certs:
          type: boolean
          title: Verify Certs
          default: true
        note:
          type: string
          title: Note
          default: ''
        appliance_serials:
          items:
            type: string
            format: uuid
          type: array
          minItems: 1
          title: Appliance Serials
        cred_type:
          type: string
          const: vipr
          title: Cred Type
          default: vipr
      type: object
      required:
      - name
      - username
      - appliance_serials
      title: ViprCredentialUpdateRequest
    S3CompatibleCredentialUpdateRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
        hostname:
          type: string
          title: Hostname
          default: ''
        username:
          type: string
          minLength: 1
          title: Username
        secret:
          anyOf:
          - type: string
          - type: 'null'
          title: Secret
        verify_certs:
          type: boolean
          title: Verify Certs
          default: true
        note:
          type: string
          title: Note
          default: ''
        appliance_serials:
          items:
            type: string
            format: uuid
          type: array
          minItems: 1
          title: Appliance Serials
        cred_type:
          type: string
          const: s3_compatible
          title: Cred Type
          default: s3_compatible
        region_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Region Code
        skip_validation:
          type: boolean
          title: Skip Validation
          default: false
      type: object
      required:
      - name
      - username
      - appliance_serials
      title: S3CompatibleCredentialUpdateRequest
    CloudCredentialErrorDto:
      properties:
        task_id:
          type: string
          format: uuid
          title: Task Id
          description: Task ID that failed — used by the frontend to acknowledge/dismiss the error
        code:
          anyOf:
          - type: integer
          - type: 'null'
          title: Code
          description: Edge error code (408=timeout, 422=validation, 500=internal)
        error:
          type: string
          title: Error
          description: Error category (e.g. 'timeout', 'unprocessable_entity', 'unknown')
        message:
          type: string
          title: Message
          description: Human-readable error description
        detected_at:
          type: string
          format: date-time
          title: Detected At
          description: When Portal received the error from the edge or detected a timeout
      type: object
      required:
      - task_id
      - error
      - message
      - detected_at
      title: CloudCredentialErrorDto
      description: 'Error details returned when credential status is ''failed''.


        Populated from the latest edge error message associated with the credential''s

        most recent failed task, or synthetically when the edge does not respond within

        the timeout window.'
    IBMCredentialRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
        hostname:
          type: string
          title: Hostname
          default: ''
        username:
          type: string
          minLength: 1
          title: Username
        secret:
          type: string
          minLength: 1
          title: Secret
        verify_certs:
          type: boolean
          title: Verify Certs
          default: true
        note:
          type: string
          title: Note
          default: ''
        appliance_serial:
          type: string
          format: uuid
          title: Appliance Serial
        cred_type:
          type: string
          const: ibmcos
          title: Cred Type
          default: ibmcos
      type: object
      required:
      - name
      - username
      - secret
      - appliance_serial
      title: IBMCredentialRequest
    HTTPValidationError:
      properties:
        message:
          type: string
          title: Message
        detail:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Detail
          example:
          - ctx:
              error: 'invalid length: expected length 32 for simple format, found 3'
            input: '123'
            loc:
            - path
            - id
            msg: 'Input should be a valid UUID, invalid length: expected length 32 for simple format, found 3'
            type: uuid_parsing
      type: object
      required:
      - message
      - detail
      title: ValidationErrorResponse
    TaskState:
      type: string
      enum:
      - in_progress
      - completed
      - failed
      title: TaskState
    CloudCredentialDeleteResponseDto:
      properties:
        task_ids:
          items:
            type: string
            format: uuid
          type: array
          title: Task Ids
          description: Tasks dispatched to reachable appliances — one id per appliance
        failed_unreachable:
          items:
            $ref: '#/components/schemas/FailedUnreachableEdgeDto'
          type: array
          title: Failed Unreachable
          description: Per-appliance task rows created directly in `failed` state because the appliance was unreachable at request time. The user must retry the delete for those appliances once they come back online.
      type: object
      required:
      - task_ids
      title: CloudCredentialDeleteResponseDto
      description: Response for a credential delete request — split by per-appliance outcome.
    ErrorResponseBaseDto:
      properties:
        message:
          type: string
          title: Message
      type: object
      required:
      - message
      title: ErrorResponseBaseDto
    AzureCredentialRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
        hostname:
          type: string
          title: Hostname
          default: ''
        username:
          type: string
          minLength: 1
          title: Username
        secret:
          type: string
          minLength: 1
          title: Secret
        verify_certs:
          type: boolean
          title: Verify Certs
          default: true
        note:
          type: string
          title: Note
          default: ''
        appliance_serial:
          type: string
          format: uuid
          title: Appliance Serial
        cred_type:
          type: string
          const: azure
          title: Cred Type
          default: azure
      type: object
      required:
      - name
      - username
      - secret
      - appliance_serial
      title: AzureCredentialRequest
    CloudCredentialsDto:
      properties:
        items:
          items:
            $ref: '#/components/schemas/CloudCredentialDto'
          type: array
          title: Items
        metadata:
          $ref: '#/components/schemas/CloudCredentialPaginationMetadataDto'
      type: object
      required:
      - metadata
      title: CloudCredentialsDto
      description: Response DTO for a list of cloud credentials with cursor-based pagination.
    CloudCredentialPaginationMetadataDto:
      properties:
        iterator_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Iterator Id
          description: Iterator ID for loading more results (null if no more)
        page_size:
          type: integer
          title: Page Size
          description: Number of items per page
          default: 50
        total_pages:
          anyOf:
          - type: integer
          - type: 'null'
          title: Total Pages
          description: Total number of pages (null if unknown)
        total_items:
          type: integer
          title: Total Items
          description: Total number of items matching the query
        page:
          anyOf:
          - type: integer
          - type: 'null'
          title: Page
          description: Current page number (1-based)
      type: object
      required:
      - total_items
      title: CloudCredentialPaginationMetadataDto
      description: Pagination metadata for credential list responses.
    CloudCredentialDto:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        appliance_id:
          type: string
          format: uuid
          title: Appliance Id
          description: Appliance GUID owning this credential
        appliance_name:
          type: string
          title: Appliance Name
          description: Appliance name
        appliance_serial:
          type: string
          format: uuid
          title: Appliance Serial
          description: Serial number of the edge appliance
        appliance_credential_uuid:
          type: string
          title: Appliance Credential Uuid
          description: UUID assigned to the credential by the appliance
        name:
          type: string
          title: Name
        shortname:
          $ref: '#/components/schemas/NocCloudProvider'
        cred_type:
          $ref: '#/components/schemas/NocCloudStorageProtocol'
        hostname:
          type: string
          title: Hostname
        access_key:
          type: string
          title: Access Key
        vendor:
          $ref: '#/components/schemas/NocCloudVendor'
        note:
          anyOf:
          - type: string
          - type: 'null'
          title: Note
        verify_certificates:
          type: boolean
          title: Verify Certificates
          default: true
        certificate:
          anyOf:
          - type: string
          - type: 'null'
          title: Certificate
        region_code:
          anyOf:
          - type: string
          - type

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nasuni/refs/heads/main/openapi/nasuni-cloud-credentials-api-openapi.yml