Crusoe VPC Subnets API

The VPC Subnets API from Crusoe — 2 operation(s) for vpc subnets.

OpenAPI Specification

crusoe-vpc-subnets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Crusoe VPC Subnets API
  version: '1.0'
  description: 'Operations tagged VPC Subnets 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: VPC Subnets
paths:
  /projects/{project_id}/networking/vpc-subnets:
    get:
      operationId: listVPCSubnets
      parameters:
      - example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/listVpcSubnetsResponse'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Lists all VPC subnets in the project and returns their details.
      tags:
      - VPC Subnets
    post:
      operationId: createVPCSubnet
      parameters:
      - example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/vpcSubnetPostResponse'
        '400':
          $ref: '#/components/responses/badReqError'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Creates a VPC subnet in the project and returns the created subnet.
      tags:
      - VPC Subnets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VPCSubnetPostRequest'
        required: true
  /projects/{project_id}/networking/vpc-subnets/{vpc_subnet_id}:
    delete:
      operationId: deleteVPCSubnet
      parameters:
      - description: ID of the project that owns the VPC subnet.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      - description: ID of the VPC subnet.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: vpc_subnet_id
        required: true
        x-go-name: VPCSubnetID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/asyncOperationResponse'
        '400':
          $ref: '#/components/responses/badReqError'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '404':
          $ref: '#/components/responses/notFoundError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Deletes a VPC subnet from the project and returns the async operation.
      tags:
      - VPC Subnets
    get:
      operationId: getVPCSubnet
      parameters:
      - description: ID of the project that owns the VPC subnet.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      - description: ID of the VPC subnet.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: vpc_subnet_id
        required: true
        x-go-name: VPCSubnetID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/getVpcSubnetResponse'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Returns details for a single VPC subnet in the project.
      tags:
      - VPC Subnets
    patch:
      operationId: patchVPCSubnet
      parameters:
      - description: ID of the project that owns the VPC subnet.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      - description: ID of the VPC subnet.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: vpc_subnet_id
        required: true
        x-go-name: VPCSubnetID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/asyncOperationResponse'
        '400':
          $ref: '#/components/responses/badReqError'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '404':
          $ref: '#/components/responses/notFoundError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Updates a VPC subnet in the project and returns the async operation.
      tags:
      - VPC Subnets
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VPCSubnetPatchRequest'
        required: true
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
    asyncOperationResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AsyncOperationResponse'
    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
    vpcSubnetPostResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VPCSubnetPostResponse'
    getVpcSubnetResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/VPCSubnet'
    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
    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
    listVpcSubnetsResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ListVPCSubnetsResponseV1'
  schemas:
    VPCSubnetPatchRequest:
      properties:
        name:
          description: New name for the VPC subnet.
          example: my-cool-vpc-subnet
          type: string
          x-go-name: Name
        nat_gateway_action:
          description: 'Action to take on the subnet''s NAT gateway. "enable" creates a NAT gateway if one does not

            exist; "disable" deletes the NAT gateway if one exists. If omitted, the subnet''s NAT gateway

            is left unchanged.

            enable NATGatewayActionEnable

            disable NATGatewayActionDisable'
          enum:
          - enable
          - disable
          example: enable
          type: string
          x-go-enum-desc: 'enable NATGatewayActionEnable

            disable NATGatewayActionDisable'
          x-go-name: NATGatewayAction
      required:
      - name
      title: VPCSubnetPatchRequest is the request type for PATCH requests to the VPC Subnets endpoint.
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    VPCSubnetPostRequest:
      properties:
        cidr:
          description: Address range for the VPC subnet, in CIDR notation (for example, 172.27.0.0/16).
          example: 172.27.0.0/16
          type: string
          x-go-name: Cidr
        location:
          description: Location to create the subnet in.
          example: us-east
          type: string
          x-go-name: Location
        name:
          description: Name for the new VPC subnet.
          example: my-cool-vpc-subnet
          type: string
          x-go-name: Name
        nat_gateway_enabled:
          description: Whether to create a NAT gateway for the subnet.
          example: true
          type: boolean
          x-go-name: NATGatewayEnabled
        vpc_network_id:
          description: ID of the VPC network to create the subnet in.
          example: 36c0b0d9-8b68-4869-addb-227b06b64ee0
          type: string
          x-go-name: VPCNetworkID
      required:
      - name
      - cidr
      - vpc_network_id
      - location
      - nat_gateway_enabled
      title: VPCSubnetPostRequest is the request type for POST requests to the VPC Subnet endpoint.
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    NATGateway:
      properties:
        id:
          description: ID of the NAT gateway.
          example: 8f3c4b7d-3c3b-4a63-8e1a-6cd14c1dfe91
          type: string
          x-go-name: ID
        public_ipv4_address:
          description: Public IPv4 address assigned to the NAT gateway.
          example: 121.0.0.0
          type: string
          x-go-name: PublicIPV4Address
        public_ipv4_id:
          description: ID of the public IPv4 address assigned to the NAT gateway.
          example: 1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc
          type: string
          x-go-name: PublicIPV4ID
      required:
      - id
      - public_ipv4_id
      - public_ipv4_address
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    VPCSubnetPostResponse:
      properties:
        subnet:
          $ref: '#/components/schemas/VPCSubnet'
      required:
      - subnet
      title: VPCSubnetPostResponse is the response type for POST requests to the VPC Subnets endpoint.
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    AsyncOperationResponse:
      properties:
        operation:
          $ref: '#/components/schemas/Operation'
      required:
      - operation
      title: AsyncOperationResponse is the response type for endpoints which return async operations.
      type: object
      x-go-package: gitlab.com/crusoeenergy/schemas/utils/fetch
    ListVPCSubnetsResponseV1:
      properties:
        items:
          items:
            $ref: '#/components/schemas/VPCSubnet'
          type: array
          x-go-name: Items
      required:
      - items
      title: ListVPCSubnetsResponseV1 is the response type for GET requests to the VPC Subnets endpoint.
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    VPCSubnet:
      properties:
        cidr:
          description: Address range of the VPC subnet, in CIDR notation.
          example: 121.0.0.0/24
          type: string
          x-go-name: CIDR
        id:
          description: ID of the VPC subnet.
          example: 1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc
          type: string
          x-go-name: ID
        location:
          description: Location of the VPC subnet.
          example: us-northcentraleast1-a
          type: string
          x-go-name: Location
        name:
          description: Name of the VPC subnet.
          example: my-subnet
          type: string
          x-go-name: Name
        nat_gateways:
          description: NAT gateways attached to the subnet. Empty unless a NAT gateway is enabled for the subnet.
          items:
            $ref: '#/components/schemas/NATGateway'
          type: array
          x-go-name: NATGateways
        vpc_network_id:
          description: ID of the VPC network that the subnet belongs to.
          example: 1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc
          type: string
          x-go-name: VPCNetworkID
      required:
      - id
      - name
      - vpc_network_id
      - cidr
      - location
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    Operation:
      description: 'Individual resources that use Operations should populate the `metadata` field

        with resource-specific information.'
      properties:
        completed_at:
          example: '2021-12-03T19:59:34Z'
          type: string
          x-go-name: CompletedAt
        metadata:
          example: '{}'
          x-go-name: Metadata
        operation_id:
          example: F6EF489C-086E-458D-B812-7962964A28C9
          type: string
          x-go-name: ID
        result:
          example: '{}'
          x-go-name: Result
        started_at:
          example: '2021-12-03T19:58:34Z'
          type: string
          x-go-name: StartedAt
        state:
          enum:
          - IN_PROGRESS
          - SUCCEEDED
          - FAILED
          example: IN_PROGRESS
          type: string
          x-go-name: State
      required:
      - operation_id
      - state
      - metadata
      - started_at
      - completed_at
      title: Operation contains the common fields for all Operation API objects.
      type: object
      x-go-package: gitlab.com/crusoeenergy/schemas/utils/fetch
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