openapi: 3.2.0 info: description: The API Gateway exposes all publicly available API endpoints for Crusoe Cloud products. title: Crusoe Cloud API Gateway S3 Keys API version: v1 servers: - url: https://api.cloud.crusoe.ai/v1 tags: - name: S3 Keys 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: - S3 Keys 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… tags: - S3 Keys 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: - S3 Keys components: schemas: 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 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 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 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 responses: createS3KeyResponse: description: '' content: application/json: schema: $ref: '#/components/schemas/CreateS3KeyResponse' 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 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 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 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 okEmpty: description: '' listS3KeysResponse: description: '' content: application/json: schema: $ref: '#/components/schemas/ListS3KeysResponse' 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 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