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 email required.

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:
    CloudCredentialVolumeDto:
      properties:
        volume_id:
          type: string
          title: Volume Id
          description: Volume UUID string (e.g. 'uuid_0')
        name:
          type: string
          title: Name
          description: Volume display name
      type: object
      required:
      - volume_id
      - name
      title: CloudCredentialVolumeDto
      description: Lightweight volume reference associated with a credential.
    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.
    TaskCreatedDto:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        state:
          $ref: '#/components/schemas/TaskState'
      type: object
      required:
      - id
      - state
      title: TaskCreatedDto
      description: Minimal task response returned when an async operation is accepted (HTTP 202).
    SortDirection:
      type: string
      enum:
      - ascending
      - descending
      title: SortDirection
    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
    CleversafeCredentialRequest:
      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: cleversafe
          title: Cred Type
          default: cleversafe
      type: object
      required:
      - name
      - username
      - secret
      - appliance_serial
      title: CleversafeCredentialRequest
    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
    GCSCredentialRequest:
      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: googles3
          title: Cred Type
          default: googles3
      type: object
      required:
      - name
      - username
      - secret
      - appliance_serial
      title: GCSCredentialRequest
    ExportStatus:
      type: string
      enum:
      - pending
      - completed
      - failed
      title: ExportStatus
    AWSS3CredentialUpdateRequest:
      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: 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
      - appliance_serials
      title: AWSS3CredentialUpdateRequest
    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
    HCPCredentialRequest:
      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: hcp
          title: Cred Type
          default: hcp
      type: object
      required:
      - name
      - username
      - secret
      - appliance_serial
      title: HCPCredentialRequest
    AWSS3GovCloudCredentialUpdateRequest:
      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: amazons3gov
          title: Cred Type
          default: amazons3gov
        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: AWSS3GovCloudCredentialUpdateRequest
    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.
    ErrorResponse:
      properties:
        message:
          type: string
          title: Message
        detail:
          anyOf:
          - {}
          - type: 'null'
          title: Detail
      type: object
      required:
      - message
      - detail
      title: ErrorResponse
    CloudCredentialDeleteRequest:
      properties:
        appliance_serials:
          items:
            type: string
            format: uuid
          type: array
          minItems: 1
          title: Appliance Serials
          description: Target appliance serial UUIDs for delete fan-out
      type: object
      required:
      - appliance_serials
      title: CloudCredentialDeleteRequest
      description: Delete request body — explicit target appliance serials.
    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
    ValidationErrorResponse:
      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
    CloudCredentialPaginationMetadataDto:
      properties:


# --- 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