Tessell VPC Governance API

The VPC Governance API from Tessell — 17 operation(s) for vpc governance.

OpenAPI Specification

tessell-vpc-governance-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Tessell APIs activity-center VPC Governance API
  contact:
    email: support@tessell.com
    name: Tessell Inc
    url: https://www.tessell.com
  description: Tessell API Documentation
  termsOfService: https://www.tessell.com/terms
  version: '1.0'
servers:
- url: '{server}'
  variables:
    server:
      default: console.tessell.com
tags:
- name: VPC Governance
paths:
  /network/governance/vpcs:
    get:
      tags:
      - VPC Governance
      summary: Get a list of VPCs as an administrator
      operationId: getVpcsGovernance
      parameters:
      - $ref: '#/components/parameters/subscriptionName'
      - $ref: '#/components/parameters/cloudTypeOldConvention'
      - $ref: '#/components/parameters/cloudRegion'
      - $ref: '#/components/parameters/includeSubnets'
      - $ref: '#/components/parameters/includeSharedWith'
      - $ref: '#/components/parameters/owners'
      - $ref: '#/components/parameters/usageType'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageOffset'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VpcServiceConsumer'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    post:
      tags:
      - VPC Governance
      summary: Create a VPC
      operationId: createVpcGovernance
      requestBody:
        description: VPC Information
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVpcServiceConsumerPayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VpcServiceConsumer'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      parameters:
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
  /network/governance/vpcs/{name}:
    get:
      tags:
      - VPC Governance
      summary: Get VPC as an administrator by Name
      operationId: getVpcByNameGovernance
      parameters:
      - $ref: '#/components/parameters/nameInPath'
      - $ref: '#/components/parameters/subscriptionNameMandatoryOldConvention'
      - $ref: '#/components/parameters/cloudTypeOldConventionMandatory'
      - $ref: '#/components/parameters/cloudRegionMandatory'
      - $ref: '#/components/parameters/includeSharedWith'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VpcServiceConsumer'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    delete:
      tags:
      - VPC Governance
      summary: Delete a VPC
      operationId: deleteVpcGovernance
      parameters:
      - $ref: '#/components/parameters/nameInPath'
      - $ref: '#/components/parameters/subscriptionNameMandatoryOldConvention'
      - $ref: '#/components/parameters/cloudTypeOldConventionMandatory'
      - $ref: '#/components/parameters/cloudRegionMandatory'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiStatus'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /network/governance/vpcs/register:
    post:
      tags:
      - VPC Governance
      summary: Register VPC from a BYOA subscription
      operationId: registerVpcGovernance
      requestBody:
        description: VPC Information
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterClientVpcServiceConsumerPayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VpcServiceConsumer'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      parameters:
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
  /network/governance/vpcs/{name}/acls:
    get:
      tags:
      - VPC Governance
      summary: Get ACL (Access Control List) of a VPC
      operationId: getVpcAcls
      parameters:
      - $ref: '#/components/parameters/nameInPath'
      - $ref: '#/components/parameters/subscriptionNameMandatoryOldConvention'
      - $ref: '#/components/parameters/cloudTypeOldConventionMandatory'
      - $ref: '#/components/parameters/cloudRegionMandatory'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityAclSharingInfo'
          description: Ok
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    patch:
      tags:
      - VPC Governance
      summary: Modify ACL (Access Control List) of a VPC
      operationId: modifyVpcAcls
      parameters:
      - $ref: '#/components/parameters/nameInPath'
      - $ref: '#/components/parameters/subscriptionNameMandatoryOldConvention'
      - $ref: '#/components/parameters/cloudTypeOldConventionMandatory'
      - $ref: '#/components/parameters/cloudRegionMandatory'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AclPayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AclPayload'
        '204':
          description: No Content
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    delete:
      tags:
      - VPC Governance
      summary: Delete ACL (Access Control List) of a VPC
      operationId: deleteVpcAcls
      parameters:
      - $ref: '#/components/parameters/nameInPath'
      - $ref: '#/components/parameters/subscriptionNameMandatoryOldConvention'
      - $ref: '#/components/parameters/cloudTypeOldConventionMandatory'
      - $ref: '#/components/parameters/cloudRegionMandatory'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AclRevokePayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiStatus'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /network/governance/vpcs/{name}/acls/eligible-users:
    get:
      tags:
      - VPC Governance
      summary: Get a list of Users with allowed accesses for a VPC
      operationId: getVpcEligibleUserList
      parameters:
      - $ref: '#/components/parameters/nameInPath'
      - $ref: '#/components/parameters/subscriptionNameMandatoryOldConvention'
      - $ref: '#/components/parameters/cloudTypeOldConventionMandatory'
      - $ref: '#/components/parameters/cloudRegionMandatory'
      - $ref: '#/components/parameters/roles'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AclEligibleUser'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /network/governance/vpcs/{name}/{action}:
    patch:
      tags:
      - VPC Governance
      summary: Apply action on a VPC
      operationId: applyActionOnVpc
      parameters:
      - $ref: '#/components/parameters/nameInPath'
      - $ref: '#/components/parameters/subscriptionNameMandatoryOldConvention'
      - $ref: '#/components/parameters/cloudTypeOldConventionMandatory'
      - $ref: '#/components/parameters/cloudRegionMandatory'
      - $ref: '#/components/parameters/actionInPath'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apiStatus'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /network/governance/vpc/{vpcName}/subnets:
    get:
      tags:
      - VPC Governance
      summary: Get a list of Subnets of a VPC
      operationId: getVpcSubnetsGovernance
      parameters:
      - name: vpcName
        in: path
        description: VPC Name
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/subscriptionNameMandatoryOldConvention'
      - $ref: '#/components/parameters/cloudTypeOldConventionMandatory'
      - $ref: '#/components/parameters/cloudRegionMandatory'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageOffset'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VpcSubnetServiceConsumer'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /network/governance/vpcs/discovery:
    post:
      tags:
      - VPC Governance
      summary: List VPCs from a BYOA Subscription to register in Tessell
      operationId: getVpcsToRegisterGovernance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverVpcPayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientVpc'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      parameters:
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
  /network/governance/vpcs/{name}/discovery:
    post:
      tags:
      - VPC Governance
      summary: Get VPC and it's Subnets from a BYOA Subscription registered in Tessell
      operationId: getRegisteredVpcDetailsFromCloudGovernance
      parameters:
      - $ref: '#/components/parameters/nameInPath'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverVpcPayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientVpc'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /network/governance/vpcs/{name}/track:
    get:
      tags:
      - VPC Governance
      summary: Track the progress of the ongoing VPC registration operation
      description: Track the progress of the ongoing VPC registration operation
      operationId: trackVpcRegistration
      parameters:
      - $ref: '#/components/parameters/nameInPath'
      - $ref: '#/components/parameters/subscriptionNameMandatoryOldConvention'
      - $ref: '#/components/parameters/cloudTypeOldConventionMandatory'
      - $ref: '#/components/parameters/cloudRegionMandatory'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VpcRegistrationTrackingDetails'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /network/governance/vpcs/{name}/steps/{step-id}/skip:
    put:
      tags:
      - VPC Governance
      summary: Skip a particular step in the VPC registration flow
      description: Skip a particular step in the VPC registration flow
      operationId: skipVpcRegistrationStep
      parameters:
      - $ref: '#/components/parameters/nameInPath'
      - $ref: '#/components/parameters/subscriptionNameMandatoryOldConvention'
      - $ref: '#/components/parameters/cloudTypeOldConventionMandatory'
      - $ref: '#/components/parameters/cloudRegionMandatory'
      - $ref: '#/components/parameters/stepId'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Step'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /network/governance/vpcs/{name}/resubmit:
    put:
      tags:
      - VPC Governance
      summary: Resubmit failed VPC registration
      description: Resubmit failed VPC registration
      operationId: resubmitVpcRegistration
      parameters:
      - $ref: '#/components/parameters/nameInPath'
      - $ref: '#/components/parameters/subscriptionNameMandatoryOldConvention'
      - $ref: '#/components/parameters/cloudTypeOldConventionMandatory'
      - $ref: '#/components/parameters/cloudRegionMandatory'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VpcServiceConsumer'
        '204':
          description: No Content
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /network/governance/vpcs/{name}/subnets/register:
    patch:
      tags:
      - VPC Governance
      summary: Edit registered subnets of a VPC from a BYOA subscription
      operationId: editRegisteredVpcGovernance
      parameters:
      - $ref: '#/components/parameters/nameInPath'
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: VPC Information
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterClientVpcSubnetServiceConsumerPayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VpcServiceConsumer'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /network/governance/vpc-endpoints/discovery:
    post:
      tags:
      - VPC Governance
      summary: List VPC Endpoints from a BYOA Subscription to register in Tessell
      operationId: discoverVpcEndpointsGovernance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverVpcEndpointPayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrivateEndpointResponse'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorOps'
      parameters:
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
  /network/governance/security-groups/discovery:
    post:
      tags:
      - VPC Governance
      summary: List Security Groups from a BYOA Subscription
      operationId: discoverSecurityGroupsGovernance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverVpcSecurityGroupPayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecurityGroups'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorOps'
      parameters:
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
  /network/governance/route-tables/discovery:
    post:
      tags:
      - VPC Governance
      summary: List Route Tables from a BYOA Subscription
      operationId: discoverRouteTablesGovernance
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverVpcRouteTablePayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RouteTables'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorOps'
      parameters:
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
  /network/governance/private-link-scopes/discovery:
    post:
      tags:
      - VPC Governance
      summary: List Private Link Scopes from a BYOA Subscription
      operationId: discoverPrivateLinkScopes
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscoverPrivateLinkScopePayload'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrivateLinkScopes'
        default:
          description: API error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorOps'
      parameters:
      - name: Authorization
        in: header
        description: Authorization Token
        required: true
        style: simple
        schema:
          type: string
components:
  schemas:
    apiStatus:
      title: apiStatus
      type: object
      properties:
        status:
          type: string
        message:
          type: string
    ApiError:
      type: object
      description: Common error response object for non 2xx responses
      properties:
        code:
          type: string
          description: Status code for the error response
        message:
          type: string
          description: Error message for API response
        resolution:
          type: string
        timestamp:
          type: string
          format: date-time
        contextId:
          type: string
          description: ContextId of API request
        sessionId:
          type: string
          description: SessionId of API request
        tessellErrorCode:
          type: string
          description: Unique error code specific to Tessell
    GcpNetworkTag:
      type: object
      description: Specifies the network tag for a subnet in GCP.
      properties:
        type:
          $ref: '#/components/schemas/GcpNetworkTagType'
        networkTags:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 128
          description: List of network tags
        secureTag:
          $ref: '#/components/schemas/RegisterSecureTagPayload'
    PrivateLinkScopeResource:
      properties:
        name:
          type: string
          maxLength: 2048
        id:
          type: string
          maxLength: 2048
        privateEndpoints:
          type: array
          items:
            $ref: '#/components/schemas/CloudResource'
    Progress:
      title: Progress
      type: object
      description: Progress of the execution
      properties:
        percentageCompleted:
          type: integer
          description: Completed percentage of the execution
          default: 0
          minimum: 0
          maximum: 100
        estimatedTimeRemainingInMinutes:
          type: integer
          description: Estimated time remaining in minutes
          minimum: 0
    EntityAclSharingInfo:
      title: EntityAclSharingInfo
      description: Tessell Entity ACL Sharing Info
      properties:
        users:
          type: array
          items:
            $ref: '#/components/schemas/EntityUserAclSharingInfo'
    RegisterAWSPrivateEndpointPayload:
      title: RegisterAWSPrivateEndpointPayload
      type: object
      required:
      - endpointType
      properties:
        endpointId:
          type: string
          minLength: 1
          maxLength: 2048
        dnsName:
          type: string
          minLength: 0
          maxLength: 2048
        endpointType:
          $ref: '#/components/schemas/AWSPrivateEndpointType'
    RouteTableResource:
      allOf:
      - $ref: '#/components/schemas/CloudResource'
    ApiErrorOps:
      type: object
      description: Common error response object for non 2xx responses of internal or ops APIs
      properties:
        code:
          type: string
          description: Status code for the error response
        message:
          type: string
          description: Error message for API response
        resolution:
          type: string
        timestamp:
          type: string
          format: date-time
        contextId:
          type: string
          description: ContextId of API request
        sessionId:
          type: string
          description: SessionId of API request
        tessellErrorCode:
          type: string
          description: Unique error code specific to Tessell
        userView:
          $ref: '#/components/schemas/TessellExceptionUserView'
    SecurityGroupResource:
      allOf:
      - $ref: '#/components/schemas/CloudResource'
    CloudResource:
      title: Resource
      type: object
      properties:
        name:
          type: string
          maxLength: 2048
        id:
          type: string
          maxLength: 2048
        vpcId:
          type: string
          maxLength: 2048
    AzurePrivateEndpointType:
      description: AZURE Private Endpoint Types
      type: string
      enum:
      - TESSELL_GATEWAY
      - TESSELL_METRICS
      - TESSELL_GENIE
      - LOG_MONITOR
      - TESSELL_CONTROL_PLANE
    PrivateEndpointResponse:
      title: PrivateEndpointResponse
      type: object
      properties:
        awsEndpoints:
          type: array
          items:
            $ref: '#/components/schemas/AWSPrivateEndpointResource'
        azureEndpoints:
          type: array
          items:
            $ref: '#/components/schemas/AzurePrivateEndpointResource'
        gcpEndpoints:
          type: array
          items:
            $ref: '#/components/schemas/GCPPrivateEndpointResource'
    VpcServiceConsumer:
      title: VpcServiceConsumer
      type: object
      properties:
        name:
          type: string
          description: Name of the VPC
        cidrBlock:
          type: string
          description: Cidr block of the VPC
        cloudType:
          $ref: '#/components/schemas/cloudType'
        region:
          type: string
          description: Region of the VPC
        status:
          $ref: '#/components/schemas/VpcStatus'
        subscriptionName:
          type: string
          description: Subscription of the VPC
        metadata:
          $ref: '#/components/schemas/VpcMetadata'
        isDefault:
          type: boolean
        isTessellCreated:
          type: boolean
        cloudId:
          type: string
          description: Cloud Id of the VPC (present for Registered VPCs only)
        owner:
          type: string
          format: email
        loggedInUserRole:
          $ref: '#/components/schemas/LoggedInUserRoles'
        sharedWith:
          $ref: '#/components/schemas/EntityAclSharingInfo'
        maturityStatus:
          $ref: '#/components/schemas/MaturityStatus'
        onlyForPrivateAccess:
          type: boolean
          default: false
        usageType:
          $ref: '#/components/schemas/VpcUsageType'
        subnets:
          $ref: '#/components/schemas/SubnetServiceConsumer'
        dateCreated:
          type: string
          description: Timestamp when the entity was created
          format: date-time
        eligibleActions:
          description: List of actions that can be performed on the VPC
          type: array
          items:
            $ref: '#/components/schemas/NetworkAction'
    NetworkActionOnMaturity:
      description: Action to be performed on Entity
      type: string
      enum:
      - publish
      - unpublish
      - draft
      x-enum-varnames:
      - publish
      - unpublish
      - draft
    DiscoverVpcEndpointPayload:
      title: DiscoverVpcEndpointPayload
      type: object
      required:
      - subscription
      - region
      properties:
        subscription:
          type: string
          description: Name of the subscription
          minLength: 1
          maxLength: 255
          example: byoa-sub-1
        region:
          type: string
          description: Region
          minLength: 1
          maxLength: 128
          example: us-east-1
        vpcId:
          type: string
          description: Cloud Id of the VPC
          minLength: 1
          maxLength: 500
          example: vpc-a1b2c3d4
        awsPrivateEndpointTypes:
          type: array
          maxItems: 10
          items:
            $ref: '#/components/schemas/AWSPrivateEndpointType'
        azurePrivateEndpointTypes:
          type: array
          maxItems: 10
          items:
            $ref: '#/components/schemas/AzurePrivateEndpointType'
        gcpPrivateEndpointTypes:
          type: array
          maxItems: 10
          items:
            $ref: '#/components/schemas/GCPPrivateEndpointType'
    GCPPrivateEndpointResource:
      allOf:
      - $ref: '#/components/schemas/CloudResource'
      properties:
        endpointType:
          $ref: '#/components/schemas/GCPPrivateEndpointType'
        region:
          type: string
          description: Region of the GCP Private Endpoint (GCP endpoints are regional)
    RegisterClientVpcSubnetServiceConsumerPayload:
      title: RegisterClientVpcSubnetServiceConsumerPayload
      type: object
      required:
      - cloudType
      - subscriptionName
      - subnets
      properties:
        cloudType:
          $ref: '#/components/schemas/cloudType'
        region:
          type: string
          description: Region of the VPC
          minLength: 1
          maxLength: 128
          example: us-east-1
        subscriptionName:
          type: string
          description: Name of the Tessell Subscription
          minLength: 1
          maxLength: 255
          example: default
        subnets:
          $ref: '#/components/schemas/RegisterClientSubnetServiceConsumer'
    VpcEndpoint:
      type: object
      required:
      - targetServiceType
      - privateDnsEnabled
      properties:
        targetServiceType:
          $ref: '#/components/schemas/VpcEndpointTargetServiceType'
        privateDnsEnabled:
          type: boolean
        dnsEntries:
          type: array
          minItems: 1
          maxItems: 20
          items:
            $ref: '#/components/schemas/VpcEndpointDnsEntry'
    VpcUsageType:
      description: Usage type of the VPC (GENERAL or EXADATA)
      type: string
      enum:
      - GENERAL
      - EXADATA
      default: GENERAL
    CreateVpcServiceConsumerPayload:
      title: CreateVpcServiceConsumerPayload
      type: object
      required:
      - name
      - cloudType
      - subscriptionName
      properties:
        name:
          type: string
          description: Name of the VPC
          minLength: 3
          maxLength: 80
          example: Prod-VPC-01
        cidrBlock:
          type: string
          description: CIDR block of the VPC. Required for AWS and Azure. Not applicable for GCP (GCP VPCs don't have a CIDR block, subnets do).
          example: 10.10.0.0/16
        cloudType:
          $ref: '#/components/schemas/cloudType'
        region:
          type: string
          description: Region of the VPC
          minLength: 1
          maxLength: 128
          example: us-east-1
        subscriptionName:
          type: string
          descripti

# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tessell/refs/heads/main/openapi/tessell-vpc-governance-api-openapi.yml