swagger: '2.0' info: description: The API Gateway exposes all publicly available API endpoints for Crusoe Cloud products. title: Crusoe Cloud API Gateway Audit Logs Roles API version: v1alpha5 host: api.crusoecloud.com basePath: /v1alpha5 schemes: - https consumes: - application/json produces: - application/json tags: - name: Roles paths: /iam/role-bindings: get: tags: - Roles summary: Lists role bindings visible to the caller. operationId: listRoleBindings parameters: - type: string x-go-name: UserID name: user_id in: query - type: string x-go-name: RoleID name: role_id in: query - enum: - org - project type: string x-go-name: ScopeType name: scope_type in: query - type: string x-go-name: ScopeObjectID name: scope_object_id in: query responses: '200': $ref: '#/responses/listRoleBindingsResponse' '400': $ref: '#/responses/badReqError' '403': $ref: '#/responses/permissionsError' '404': $ref: '#/responses/notFoundError' '500': $ref: '#/responses/serverError' /iam/roles: get: tags: - Roles summary: Lists role associated with the caller's organization. operationId: listRoles responses: '200': $ref: '#/responses/listRolesResponse' '400': $ref: '#/responses/badReqError' '403': $ref: '#/responses/permissionsError' '500': $ref: '#/responses/serverError' /iam/users/{user_id}/role-bindings: post: description: If any creation or deletion fails, no changes are applied. tags: - Roles summary: Creates and deletes role bindings for a user in a single atomic operation. operationId: applyRoleBindings parameters: - type: string example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab x-go-name: UserID name: user_id in: path required: true - name: Body in: body required: true schema: $ref: '#/definitions/ApplyRoleBindingRequest' responses: '200': $ref: '#/responses/emptyResponse' '400': $ref: '#/responses/badReqError' '403': $ref: '#/responses/permissionsError' '404': $ref: '#/responses/notFoundError' '500': $ref: '#/responses/serverError' definitions: ApplyRoleBindingRequest: type: object required: - bindings_to_create - bindings_to_delete properties: bindings_to_create: type: array items: $ref: '#/definitions/RoleBindingInput' x-go-name: BindingsToCreate bindings_to_delete: type: array items: type: string x-go-name: BindingsToDelete x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers Role: type: object required: - id - role_name - allowed_scopes - org_id - description properties: allowed_scopes: type: array items: type: string x-go-name: AllowedScopes description: type: string x-go-name: Description id: type: string x-go-name: ID org_id: type: string x-go-name: OrgID role_name: type: string x-go-name: RoleName x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers RoleBindingInput: type: object required: - customer_id - role_id - scope_type - scope_object_id properties: customer_id: type: string x-go-name: CustomerID role_id: type: string x-go-name: RoleID scope_object_id: type: string x-go-name: ScopeObjectID scope_type: type: string enum: - org - project x-go-name: ScopeType x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers RoleBinding: type: object required: - id - customer_id - role_id - scope_type - scope_object_id - role_name properties: customer_id: type: string x-go-name: CustomerID id: type: string x-go-name: ID role_id: type: string x-go-name: RoleID role_name: type: string x-go-name: RoleName scope_object_id: type: string x-go-name: ScopeObjectID scope_type: type: string x-go-name: ScopeType x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers ListRoleBindingsResponse: type: object required: - role_bindings properties: role_bindings: type: array items: $ref: '#/definitions/RoleBinding' x-go-name: RoleBindings x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers ListRolesResponse: type: object required: - roles properties: roles: type: array items: $ref: '#/definitions/Role' x-go-name: Roles x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers responses: emptyResponse: description: Empty Response permissionsError: description: Error Permissions schema: type: object required: - code - message properties: code: type: string x-go-name: Code example: '403' message: type: string x-go-name: Message example: unauthorized serverError: description: Error Internal Server schema: type: object required: - code - message properties: code: type: string x-go-name: Code example: '500' message: type: string x-go-name: Message example: internal_error listRoleBindingsResponse: description: '' schema: $ref: '#/definitions/ListRoleBindingsResponse' notFoundError: description: Error Not Found schema: type: object required: - code - message properties: code: type: string x-go-name: Code example: '404' message: type: string x-go-name: Message example: not_found badReqError: description: Error Bad Request schema: type: object required: - code - message properties: code: type: string x-go-name: Code example: '400' message: type: string x-go-name: Message example: bad_request listRolesResponse: description: '' schema: $ref: '#/definitions/ListRolesResponse' x-tagGroups: - name: Compute tags: - VMs - VM Operations - Images - Instance Templates - Custom Images - Custom Image Operations - name: Organizations tags: - Projects - Entities - Prospects - Billing - Usage - Quotas - Audit Logs - Reservations - name: Users tags: - Identities - Roles - SSH Keys - Tokens - name: Storage tags: - Disks - Disk Operations - Snapshots - Snapshot Operations - name: Networking tags: - VPC Firewall Rules - VPC Firewall Rule Operations - VPC Networks - VPC Subnets - IB Partitions - Load Balancers - 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