Crusoe S3 Keys API

The S3Keys API from Crusoe — 2 operation(s) for s3keys.

OpenAPI Specification

crusoe-s3keys-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Crusoe S3 Keys API
  version: '1.0'
  description: 'Operations tagged S3Keys across 2 of this provider''s published API definitions: crusoe-cloud-api-gateway-v1-openapi.json, crusoe-cloud-api-gateway-v1alpha5-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.cloud.crusoe.ai/v1
tags:
- name: S3Keys
paths:
  /organizations/{org_id}/storage/s3/keys:
    get:
      operationId: listS3Keys
      parameters:
      - description: ID of the organization that owns the S3 access keys.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: org_id
        required: true
        x-go-name: OrgID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/listS3KeysResponse'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Lists all S3 access keys in the organization and returns their details.
      tags:
      - S3Keys
    post:
      operationId: createS3Key
      parameters:
      - description: ID of the organization that owns the S3 access key.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: org_id
        required: true
        x-go-name: OrgID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/createS3KeyResponse'
        '400':
          $ref: '#/components/responses/badReqError'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Creates an S3 access key in the organization and returns the access key ID and one-time secret key.
      tags:
      - S3Keys
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateS3KeyRequest'
        required: true
  /organizations/{org_id}/storage/s3/keys/{access_key_id}:
    delete:
      operationId: deleteS3Key
      parameters:
      - description: ID of the organization that owns the S3 access key.
        in: path
        name: org_id
        required: true
        x-go-name: OrgID
        schema:
          type: string
      - description: Access key ID of the S3 access key to delete.
        example: CKIA493K6LOVDNNAR4SZ
        in: path
        name: access_key_id
        required: true
        x-go-name: AccessKeyID
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/okEmpty'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '404':
          $ref: '#/components/responses/notFoundError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Deletes an S3 access key from the organization.
      tags:
      - S3Keys
components:
  responses:
    notFoundError:
      description: Error Not Found
      content:
        application/json:
          schema:
            properties:
              code:
                example: '404'
                type: string
                x-go-name: Code
              message:
                example: not_found
                type: string
                x-go-name: Message
            required:
            - code
            - message
            type: object
    okEmpty:
      description: ''
    serverError:
      description: Error Internal Server
      content:
        application/json:
          schema:
            properties:
              code:
                example: '500'
                type: string
                x-go-name: Code
              message:
                example: internal_error
                type: string
                x-go-name: Message
            required:
            - code
            - message
            type: object
    createS3KeyResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateS3KeyResponse'
    authError:
      description: Error Authentication Failed
      content:
        application/json:
          schema:
            properties:
              code:
                example: '401'
                type: string
                x-go-name: Code
              message:
                example: bad_credential
                type: string
                x-go-name: Message
            required:
            - code
            - message
            type: object
    listS3KeysResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ListS3KeysResponse'
    badReqError:
      description: Error Bad Request
      content:
        application/json:
          schema:
            properties:
              code:
                example: '400'
                type: string
                x-go-name: Code
              message:
                example: bad_request
                type: string
                x-go-name: Message
            required:
            - code
            - message
            type: object
    permissionsError:
      description: Error Permissions
      content:
        application/json:
          schema:
            properties:
              code:
                example: '403'
                type: string
                x-go-name: Code
              message:
                example: unauthorized
                type: string
                x-go-name: Message
            required:
            - code
            - message
            type: object
  schemas:
    ListS3KeysResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/S3Key'
          type: array
          x-go-name: Items
      required:
      - items
      title: ListS3KeysResponse is the response type for GET requests to the S3 access keys endpoint.
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    S3Key:
      properties:
        access_key_id:
          description: Access key ID used to authenticate S3 requests.
          example: S3U_ab4a6b00aa5f408ea9fbac6de5eb45ab
          type: string
          x-go-name: AccessKeyID
        alias:
          description: Human-readable alias for the S3 access key.
          example: my-service-account
          type: string
          x-go-name: Alias
        created_at:
          description: Creation timestamp of the S3 access key, in RFC3339 format.
          example: '2021-12-03T19:58:34Z'
          type: string
          x-go-name: CreatedAt
        expire_at:
          description: Expiration timestamp of the S3 access key, in RFC3339 format.
          example: '2022-12-03T19:58:34Z'
          type: string
          x-go-name: ExpireAt
        key_uuid:
          description: ID of the S3 access key.
          example: f5705300-79f8-4686-9b9f-02496a053bc0
          type: string
          x-go-name: KeyUUID
        status:
          description: 'Status of the S3 access key: enabled or disabled.'
          enum:
          - enabled
          - disabled
          type: string
          x-go-name: Status
        user_id:
          description: ID of the user that owns the S3 access key.
          example: e7bed65d-e918-4fab-921c-03b8db94aa7b
          type: string
          x-go-name: UserID
      required:
      - key_uuid
      - user_id
      - access_key_id
      - status
      - created_at
      title: S3Key represents an S3 Access key for a user.
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    CreateS3KeyRequest:
      properties:
        alias:
          description: Human-readable alias for the new S3 access key.
          example: my-service-account
          type: string
          x-go-name: Alias
        expire_at:
          description: Expiration timestamp for the new S3 access key, in RFC3339 format.
          example: '2022-12-03T19:58:34Z'
          type: string
          x-go-name: ExpireAt
      title: CreateS3KeyRequest is the request body for creating a new S3 access key for a user.
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    CreateS3KeyResponse:
      description: It includes the one-time-only secret key.
      properties:
        access_key_id:
          description: Access key ID used to authenticate S3 requests.
          example: S3U_ab4a6b00aa5f408ea9fbac6de5eb45ab
          type: string
          x-go-name: AccessKeyID
        expire_at:
          description: Expiration timestamp of the S3 access key, in RFC3339 format.
          example: '2022-12-03T19:58:34Z'
          type: string
          x-go-name: ExpireAt
        secret_key:
          description: Secret access key paired with the access key ID. Returned only once, at creation.
          example: K7i+q0...
          type: string
          x-go-name: SecretKey
      required:
      - access_key_id
      - secret_key
      title: CreateS3KeyResponse is the response body after creating a new S3 access key for a user.
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
x-refined-from:
- crusoe-cloud-api-gateway-v1-openapi.json
- crusoe-cloud-api-gateway-v1alpha5-openapi.json
x-tagGroups:
- name: Compute
  tags:
  - VMs
  - VM Operations
  - Images
  - Instance Templates
- name: Organizations
  tags:
  - Projects
  - Billing
  - Entities
  - Prospects
  - Usage
  - Quotas
  - Audit Logs
  - SCIM
- name: Users
  tags:
  - Identities
  - SSH Keys
  - Tokens
- name: Storage
  tags:
  - Disks
  - Disk Operations
  - Snapshots
  - Snapshot Operations
  - S3Buckets
  - S3Users
- name: Networking
  tags:
  - VPC Firewall Rules
  - VPC Firewall Rule Operations
  - VPC Networks
  - VPC Subnets
  - IB Partitions
  - Load Balancers
  - NVLink Domains
- name: Orchestration
  tags:
  - Kubernetes Clusters
  - Kubernetes Cluster Operations
  - Kubernetes Node Pools
  - Kubernetes Node Pool Operations
  - Kubernetes Versions
  - AutoClusters
  - AutoCluster Operations
- name: Locations
  tags:
  - Locations
- name: Capacities
  tags:
  - Capacities
- name: Container Registry
  tags:
  - Container Registry
- name: Foundry
  tags:
  - Foundry