openapi: 3.2.0 info: title: Eu Sovereign Cloud Node Pool API version: v1beta1 description: 'Operations tagged Node-Pool across 2 of this provider''s published API definitions: extensions.kubernetes.v1beta1.yaml, eu-sovereign-cloud-api-extensions-kubernetes-v1beta1-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://demo.secapi.cloud/providers/seca.kubernetes description: Path Schema - url: https://kubernetes.seca.demo.secapi.cloud description: DNS Schema security: - bearerAuth: [] tags: - name: Node-Pool description: Node-Pool management paths: /v1beta1/tenants/{tenant}/workspaces/{workspace}/clusters/{cluster}/node-pools: get: tags: - Node-Pool security: - bearerAuth: [] summary: List node-pools description: Lists node-pools and provides paginated, filtered access. operationId: listNode-Pools parameters: - $ref: '#/components/parameters/tenantPathParam' - $ref: '#/components/parameters/workspacePathParam' - $ref: '#/components/parameters/clusterPathParam' - $ref: '#/components/parameters/labelSelector' - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/skipTokenParam' - $ref: '#/components/parameters/acceptHeader' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Node-PoolIterator' '400': $ref: '#/components/responses/Error400' '401': $ref: '#/components/responses/Error401' '403': $ref: '#/components/responses/Error403' '500': $ref: '#/components/responses/Error500' servers: - url: https://demo.secapi.cloud/providers/seca.kubernetes description: Path Schema - url: https://kubernetes.seca.demo.secapi.cloud description: DNS Schema /v1beta1/tenants/{tenant}/workspaces/{workspace}/clusters/{cluster}/node-pools/{name}: get: tags: - Node-Pool security: - bearerAuth: [] summary: Get node-pool description: 'Get a specific node-pool, useful for polling status updates of resources. A `404` response without proper schema has to be ignored and must be understood as server being unavailable. Only a response with proper schema can be trusted.' operationId: getNode-Pool parameters: - $ref: '#/components/parameters/tenantPathParam' - $ref: '#/components/parameters/workspacePathParam' - $ref: '#/components/parameters/clusterPathParam' - $ref: '#/components/parameters/resourcePathParam' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/KubernetesNodePool' '400': $ref: '#/components/responses/Error400' '401': $ref: '#/components/responses/Error401' '403': $ref: '#/components/responses/Error403' '404': $ref: '#/components/responses/Error404' '500': $ref: '#/components/responses/Error500' put: tags: - Node-Pool security: - bearerAuth: [] summary: Create or update node-pool description: 'Creates or updates a node-pool. The return code of the endpoint provides indicates if the resource was created or updated. A client must accept both as successful response to the request.' operationId: createOrUpdateNode-Pool parameters: - $ref: '#/components/parameters/tenantPathParam' - $ref: '#/components/parameters/workspacePathParam' - $ref: '#/components/parameters/clusterPathParam' - $ref: '#/components/parameters/resourcePathParam' - $ref: '#/components/parameters/ifUnmodifiedSince' requestBody: description: 'Any provided `metadata` on the node-pool will be ignored by the resource server. ' required: true content: application/json: schema: $ref: '#/components/schemas/KubernetesNodePool' responses: '200': description: 'Node-Pool successfully updated, doesn''t indicate successful resource provisioning. ' content: application/json: schema: $ref: '#/components/schemas/KubernetesNodePool' '201': description: 'Node-Pool successfully created, doesn''t indicate successful resource provisioning. ' content: application/json: schema: $ref: '#/components/schemas/KubernetesNodePool' '400': $ref: '#/components/responses/Error400' '401': $ref: '#/components/responses/Error401' '403': $ref: '#/components/responses/Error403' '404': $ref: '#/components/responses/Error404' '409': $ref: '#/components/responses/Error409' '412': $ref: '#/components/responses/Error412' '422': $ref: '#/components/responses/Error422' '500': $ref: '#/components/responses/Error500' delete: tags: - Node-Pool security: - bearerAuth: [] summary: Delete node-pool description: 'Deletes a node-pool using the given name. In case the resource workspace already deleted `404` is returned. For failure tolerance in case of retry the client needs to accept `404` and `202` as a successful deletion. In case the client tries to delete a resource for the first time and gets a `404`, the resource might not exist for other reasons or never existed in the first place. This can''t be assumed as a safe deletion of the resource. If deletion of the resource takes longer deletion can be issued multiple times with the same result `202`, in all cased the resource will be only deleted once. A client must verify the client response to contain a proper error schema. A `404` response without proper schema has to be ignored and understood as server unavailable error.' operationId: deleteNode-Pool parameters: - $ref: '#/components/parameters/tenantPathParam' - $ref: '#/components/parameters/workspacePathParam' - $ref: '#/components/parameters/clusterPathParam' - $ref: '#/components/parameters/resourcePathParam' - $ref: '#/components/parameters/ifUnmodifiedSince' responses: '202': description: Node-Pool deletion accepted '400': $ref: '#/components/responses/Error400' '401': $ref: '#/components/responses/Error401' '403': $ref: '#/components/responses/Error403' '404': $ref: '#/components/responses/Error404' '409': $ref: '#/components/responses/Error409' '412': $ref: '#/components/responses/Error412' '500': $ref: '#/components/responses/Error500' servers: - url: https://demo.secapi.cloud/providers/seca.kubernetes description: Path Schema - url: https://kubernetes.seca.demo.secapi.cloud description: DNS Schema components: responses: Error409: description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error409' example: status: 409 type: http://secapi.cloud/errors/resource-conflict title: Conflict detail: The request could not be completed due to a conflict with the current state of the resource. instance: /errors/409 sources: [] Error400: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error400' example: status: 400 type: http://secapi.cloud/errors/invalid-request title: Bad Request detail: The request was invalid or cannot be served. instance: /errors/400 sources: [] Error412: description: Precondition Failed content: application/json: schema: $ref: '#/components/schemas/Error412' example: status: 412 type: http://secapi.cloud/errors/precondition-failed title: Precondition Failed detail: The precondition given in the If-Match header failed. instance: /errors/412 sources: [] Error401: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error401' example: status: 401 type: http://secapi.cloud/errors/unauthorized title: Unauthorized detail: Authentication is required and has failed or has not been provided. instance: /errors/401 sources: [] Error500: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error500' example: status: 500 type: http://secapi.cloud/errors/internal-server-error title: Internal Server Error detail: The server encountered an unexpected condition that prevented it from fulfilling the request. instance: /errors/500 sources: [] Error422: description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/Error422' example: status: 422 type: http://secapi.cloud/errors/validation-error title: Unprocessable Entity detail: The subnetRef is not correctly formatted. sources: - pointer: /spec/subnetRef parameter: subnet instance: /errors/422 Error404: description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error404' example: status: 404 type: http://secapi.cloud/errors/resource-not-found title: Not Found detail: The requested resource could not be found. instance: /errors/404 sources: [] Error403: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error403' example: status: 403 type: http://secapi.cloud/errors/forbidden title: Forbidden detail: The request was valid, but the server is refusing action. instance: /errors/403 sources: [] schemas: Labels: x-go-type-skip-optional-pointer: true type: object description: 'User-defined key/value pairs that are mutable and can be used to organize and categorize resources. They can be used to filter resources. The number of labels is eventually limited by the CSP. ' additionalProperties: type: string maxLength: 63 example: env: production Node-PoolIterator: description: Iterator for node-pools type: object required: - items - metadata properties: items: description: List of node-pools type: array items: $ref: '#/components/schemas/KubernetesNodePool' metadata: $ref: '#/components/schemas/ResponseMetadata' UserResourceMetadata: type: object description: Metadata for user-defined resource properties properties: labels: $ref: '#/components/schemas/Labels' annotations: $ref: '#/components/schemas/Annotations' extensions: $ref: '#/components/schemas/Extensions' Error409: allOf: - $ref: '#/components/schemas/Error' description: A 409 Conflict error response example: status: 409 type: http://secapi.cloud/errors/resource-conflict title: Conflict detail: The request could not be completed due to a conflict with the current state of the resource. instance: /errors/409 sources: [] Error403: allOf: - $ref: '#/components/schemas/Error' description: A 403 Forbidden error response example: status: 403 type: http://secapi.cloud/errors/forbidden title: Forbidden detail: The request was valid, but the server is refusing action. instance: /errors/403 sources: [] Zone: type: string description: Reference to a specific zone within a region minLength: 1 maxLength: 32 example: a Status: type: object readOnly: true description: Current status of the resource required: - conditions properties: state: x-go-type-skip-optional-pointer: true allOf: - $ref: '#/components/schemas/ResourceState' conditions: type: array description: 'History of state transitions, ordered newest-first, complementing the current snapshot in `state`. ' maxItems: 32 items: $ref: '#/components/schemas/StatusCondition' x-oapi-codegen-extra-tags: x-kubebuilder-validation-max-items: '32' WorkspaceMetadata: type: object description: Metadata for resources with workspace constraints readOnly: true required: - workspace properties: workspace: type: string description: Workspace identifier minLength: 1 maxLength: 64 Error422: allOf: - $ref: '#/components/schemas/Error' description: A 422 Unprocessable Entity error response example: status: 422 type: http://secapi.cloud/errors/validation-error title: Unprocessable Entity detail: The request was well-formed but was unable to be followed due to semantic errors. sources: - pointer: /data/attributes/username parameter: username instance: /errors/422 NameMetadata: type: object readOnly: true required: - name description: Metadata for resource names properties: name: type: string description: 'Resource identifier in dash-case (kebab-case) format. Must start and end with an alphanumeric character. Can contain lowercase letters, numbers, and hyphens. Multiple segments can be joined with dots. Each segment follows the same rules. ' minLength: 1 maxLength: 128 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ example: resource-name Extensions: x-go-type-skip-optional-pointer: true type: object description: 'User-defined key/value pairs that are mutable and can be used to add extensions. Extensions are subject to validation by the CSP, and any value that is not accepted will be rejected during admission. ' additionalProperties: type: string Error: type: object description: 'A detailed error response see https://datatracker.ietf.org/doc/html/rfc7807. ' required: - type - title - status - detail - instance - sources properties: type: type: string description: The type of error, expressed as a URI. minLength: 1 maxLength: 4000 example: https://httpstatuses.io/400 title: type: string description: 'A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4). ' minLength: 1 maxLength: 1024 status: type: number description: 'The HTTP status type ([http://secapi.cloud/errors/-rfc7231], Section 6) generated by the origin server for this occurrence of the problem. ' minimum: 100 maximum: 599 example: 400 detail: type: string description: A human-readable explanation specific to this occurrence of the problem. minLength: 1 maxLength: 32768 instance: type: string description: 'A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. ' minLength: 1 maxLength: 256 sources: type: array maxItems: 32 items: $ref: '#/components/schemas/ErrorSource' meta: type: object description: A meta object containing non-standard meta-information about the error. PermissionMetadata: type: object readOnly: true description: Metadata for permission management required: - provider - resource - verb properties: provider: type: string minLength: 1 maxLength: 64 example: seca.compute/v1 resource: type: string minLength: 1 maxLength: 256 example: tenants/tn-1/workspaces/ws-1/instances/my-server verb: type: string minLength: 1 maxLength: 7 example: get example: provider: seca.compute/v1 resource: tenants/tn-1/workspaces/ws-1/instances/my-server verb: get KubernetesNodePoolStatus: description: 'Represents the status of the kubernetes node pool. The status represents if the instances of the node pool are provisioned to the cluster. ' allOf: - $ref: '#/components/schemas/Status' - type: object readOnly: true properties: nodes: description: 'List of nodes in the Node Pool. Each node is represented by its reference to a compute instance. ' type: array x-go-type-skip-optional-pointer: true maxItems: 1000 items: allOf: - $ref: '#/components/schemas/Reference' description: Reference to the compute instance representing the node. example: provider: seca.compute/v1 resource: instances/instance-123 x-oapi-codegen-extra-tags: x-kubebuilder-validation-max-items: '1000' Error500: allOf: - $ref: '#/components/schemas/Error' description: A 500 Internal Server Error error response example: status: 500 type: http://secapi.cloud/errors/internal-server-error title: Internal Server Error detail: The server encountered an unexpected condition that prevented it from fulfilling the request. instance: /errors/500 sources: [] ResponseMetadata: description: 'Metadata for response objects. ' allOf: - $ref: '#/components/schemas/PermissionMetadata' - type: object readOnly: true properties: skipToken: type: string description: Opaque cursor to get the next page. Field is omitted when there are no more pages available. maxLength: 5 example: skipToken: 'false' provider: seca.compute/v1 resource: tenants/tn-1/workspaces/ws-1/instances/my-server verb: get StatusCondition: type: object description: 'StatusCondition describes the state of a resource at a certain point. Conditions are provider-specific and can represent different states depending on the resource type and provider implementation. ' required: - state - lastTransitionAt properties: state: $ref: '#/components/schemas/ResourceState' lastTransitionAt: type: string format: date-time description: 'LastTransitionAt is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. ' type: type: string x-go-type-skip-optional-pointer: true description: 'Type of condition. The condition type is provider-specific and should reflect the specific states relevant to your resource. ' reason: type: string x-go-type-skip-optional-pointer: true description: 'The reason for the condition''s last transition in CamelCase. The specific set of reason values is provider-specific and should be documented by the provider. ' maxLength: 1024 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ x-oapi-codegen-extra-tags: x-kubebuilder-validation-max-length: '1024' x-kubebuilder-validation-pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ message: type: string x-go-type-skip-optional-pointer: true description: 'A human-readable message indicating details about the transition. ' maxLength: 32768 x-oapi-codegen-extra-tags: x-kubebuilder-validation-max-length: '32768' example: state: active lastTransitionAt: '2024-11-21T14:39:22Z' Reference: type: object description: 'A reference to a resource using an object. The object contains the same information as the ReferenceURN, but is represented as a structured object. The advantage of this representation is that it can be used to reference resources in different workspaces or regions without the need to specify the full URN. ' required: - resource properties: region: type: string x-go-type-skip-optional-pointer: true description: 'Region of the resource. If not set, the region is inferred from the context. ' maxLength: 64 example: eu-central-1 x-oapi-codegen-extra-tags: x-kubebuilder-validation-max-length: '64' provider: type: string x-go-type-skip-optional-pointer: true description: 'Provider of the resource. If not set, the provider is inferred from the context. ' maxLength: 64 example: seca.compute/v1 x-oapi-codegen-extra-tags: x-kubebuilder-validation-max-length: '64' tenant: type: string x-go-type-skip-optional-pointer: true description: 'Tenant of the resource. If not set, the tenant is inferred from the context. ' maxLength: 64 example: tenant-1 x-oapi-codegen-extra-tags: x-kubebuilder-validation-max-length: '64' workspace: type: string x-go-type-skip-optional-pointer: true description: 'Workspace of the resource. If not set, the workspace is inferred from the context. ' maxLength: 64 example: workspace-1 x-oapi-codegen-extra-tags: x-kubebuilder-validation-max-length: '64' resource: type: string description: "Resource-specific path identifying the resource within its workspace context.\nThis is the segment of the full URN after the provider, version, tenant, and\nworkspace parts. For a flat resource it is `/`, and for hierarchical\n(nested) resources it includes the parent path segments:\n `networks//route-tables/`\nThe provider, tenant, and workspace can be specified as separate fields in this\nobject; they do not need to be repeated here.\n" minLength: 1 maxLength: 256 example: instances/my-server x-oapi-codegen-extra-tags: x-kubebuilder-validation-min-length: '1' x-kubebuilder-validation-max-length: '256' KubernetesNodeTaint: type: object description: 'Represents a taint applied to the nodes in the node pool. Taints are used to control which pods can be scheduled on the nodes. A taint consists of a key, value, and effect. ' required: - key - value - effect properties: key: type: string description: 'The key of the taint. The key is used to identify the taint and is used in conjunction with the value and effect. ' example: example-key minLength: 1 maxLength: 63 x-oapi-codegen-extra-tags: x-kubebuilder-validation-min-length: '1' x-kubebuilder-validation-max-length: '63' value: type: string description: 'The value of the taint. The value is used to identify the taint and is used in conjunction with the key and effect. ' example: example-value minLength: 1 maxLength: 63 x-oapi-codegen-extra-tags: x-kubebuilder-validation-min-length: '1' x-kubebuilder-validation-max-length: '63' effect: type: string enum: - NoSchedule - PreferNoSchedule - NoExecute x-enumNames: - KubernetesNodeTaintEffectNoSchedule - KubernetesNodeTaintEffectPreferNoSchedule - KubernetesNodeTaintEffectNoExecute description: 'The effect of the taint. The effect determines how the taint is applied to the nodes in the node pool. For details on the effects, see the (kubernetes documentation on taints and tolerations)[https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/]. ' example: NoSchedule x-oapi-codegen-extra-tags: x-kubebuilder-validation-enum: NoSchedule;PreferNoSchedule;NoExecute KubernetesNodePool: description: 'Represents a Node Pool resource in a Kubernetes cluster. A Node Pool is a group of nodes with the same configuration, including instance SKU, network configuration, and security group settings. Node Pools are used to manage the scaling and lifecycle of nodes in a Kubernetes cluster. ' allOf: - $ref: '#/components/schemas/UserResourceMetadata' - type: object required: - spec properties: metadata: $ref: '#/components/schemas/RegionalWorkspaceResourceMetadata' spec: $ref: '#/components/schemas/KubernetesNodePoolSpec' status: $ref: '#/components/schemas/KubernetesNodePoolStatus' Error412: allOf: - $ref: '#/components/schemas/Error' description: A 412 Precondition Failed error response example: status: 412 type: http://secapi.cloud/errors/precondition-failed title: Precondition Failed detail: The precondition given in the If-Match header failed. instance: /errors/412 sources: [] Error400: allOf: - $ref: '#/components/schemas/Error' description: A 400 Bad Request error response example: status: 400 type: http://secapi.cloud/errors/invalid-request title: Bad Request detail: The request was invalid or cannot be served. instance: /errors/400 sources: [] Error404: allOf: - $ref: '#/components/schemas/Error' description: A 404 Not Found error response example: status: 404 type: http://secapi.cloud/errors/resource-not-found title: Not Found detail: The requested resource could not be found. instance: /errors/404 sources: [] RegionalWorkspaceResourceMetadata: description: 'Metadata for regional resources with name, permission, modification, type, tenant and workspace and region information. ' allOf: - $ref: '#/components/schemas/NameMetadata' - $ref: '#/components/schemas/PermissionMetadata' - $ref: '#/components/schemas/ModificationMetadata' - $ref: '#/components/schemas/TypeMetadata' - $ref: '#/components/schemas/TenantMetadata' - $ref: '#/components/schemas/WorkspaceMetadata' - $ref: '#/components/schemas/RegionalMetadata' ModificationMetadata: type: object readOnly: true description: Base metadata for all resources with optional region references required: - createdAt - lastModifiedAt - resourceVersion properties: createdAt: type: string format: date-time description: Indicates the time when the resource was created. The field is set by the provider and should not be modified by the user. deletedAt: type: string format: date-time description: If set, indicates the time when the resource was marked for deletion. Resources with this field set are considered pending deletion. lastModifiedAt: type: string format: date-time description: Indicates the time when the resource was created or last modified. Field is used for "If-Unmodified-Since" logic for concurrency control. The provider guarantees that a modification on a single resource can happen only once every millisecond. resourceVersion: type: integer description: Incremented on every modification of the resource. Used for optimistic concurrency control. minimum: 1 format: int64 KubernetesNodeTemplate: type: object description: 'Template for creating nodes in the node pool. The template includes the instance SKU, subnet, and zone in which the nodes will be created. The SKU must be one of the available compute SKUs in the region. ' required: - skuRef - subnetRef - zone - rootVolume properties: skuRef: allOf: - $ref: '#/components/schemas/Reference' description: 'Reference to the SKU of the node instances. The SKU is immutable after the node pool is created. To change the SKU, the node pool must be deleted and recreated with the new SKU reference. ' example: provider: seca.compute/v1 resource: tenants/seca/skus/xl ref: seca.compute/v1/tenants/seca/skus/xl x-oapi-codegen-extra-tags: x-cel-rule-0: self == oldSelf x-cel-message-0: nodeTemplate.skuRef is immutable subnetRef: allOf: - $ref: '#/components/schemas/Reference' description: Reference to the NIC attached to the node instances. example: provider: seca.network/v1 resource: subnets/k8s-nodes-a ref: seca.network/v1/tenants/tn-1/workspaces/ws-1/subnets/k8s-nodes-a zone: allOf: - $ref: '#/components/schemas/Zone' description: 'The zone in which the node instances will be created. The zone is immutable after the node pool is created. To change the zone, the node pool must be deleted and recreated with the new zone. ' x-oapi-codegen-extra-tags: x-cel-rule-0: self == oldSelf x-cel-message-0: nodeTemplate.zone is immutable x-kubebuilder-validation-min-length: '1' x-kubebuilder-validation-max-length: '32' securityGroupRef: allOf: - $ref: '#/components/schemas/Reference' description: Reference to the security group associated with the node instances. example: provider: seca.network/v1 resource: security-groups/k8s-nodes ref: seca.network/v1/tenants/tn-1/workspaces/ws-1/security-groups/k8s-nodes rootVolume: $ref: '#/components/schemas/KubernetesNodeRootVolume' example: skuRef: provider: seca.compute/v1 resource: tenants/seca/skus/xl ref: seca.compute/v1/tenants/seca/skus/xl subnetRef: provider: seca.network/v1 resource: subnets/k8s-nodes-a ref: seca.network/v1/tenants/tn-1/workspaces/ws-1/subnets/k8s-nodes-a zone: a securityGroupRef: provider: seca.network/v1 resource: security-groups/k8s-nodes ref: seca.network/v1/tenants/tn-1/workspaces/ws-1/security-groups/k8s-nodes rootVolume: skuRef: provider: seca.storage/v1 resource: tenants/seca/skus/le500 ref: seca.storage/v1/tenants/seca/skus/le500 sizeGB: 100 ReferenceURN: type: string minLength: 1 description: "A unique resource name (URN) used to identify and reference this resource.\n\nThe URN is NOT a URL — it does not contain a protocol scheme (http/https), a host,\nor any endpoint-specific prefix. It is a portable, transport-agnostic identifier.\nA configured SDK client — which knows the provider's base URL and endpoint mapping —\ncan derive a URL from a URN, but the URN alone cannot be turned into a URL without\nthat SDK configuration context. This separation keeps the URN portable across\nenvironments and CSP deployments.\n\nThe full URN format is:\n `{provider}/{version}/tenants/{tenant}/workspaces/{workspace}/{type}/{name}`\n\nFor hierarchical (nested) resources, additional parent path segments are included:\n `seca.network/v1/tenants/tn-1/workspaces/ws-1/networks/my-net/route-tables/my-rt`\n\n### Automatic Prefix Inference\n\nIn most cases, the prefix of the URN can be automatically derived in the given context.\nTo simplify usage, only the resource type and name might be specified as a reference\nusing the `/` notation. The suffix can be made more specific by adding\nadditional segments separated by slashes.\n\nThe prefix is automatically inferred from the context. For example, if the resource is a\nblock storage in the same workspace the reference can be specified as\n`block-storages/my-block-storage`. If the resource is a block storage in a different workspace, the\nreference can be specified as `workspaces/ws-1/block-storages/my-block-storage`.\n\nFor automatic prefix inference, the following rules apply:\n- the version is inferred from the current resource version\n- the workspace is inferred from the current workspace\n- the region is inferred from the current region\n- the provider is inferred from the type and context of the usage\n\nThe prefix inference is resolved on admission into the full URN format, which makes it\nmostly suitable for human use.\n" maxLength: 255 example: seca.compute/v1/tenants/tn-1/workspaces/ws-1/instances/my-server Annotations: x-go-type-skip-optional-pointer: true type: object description: 'User-defined key/value pairs that are mutable and can be used to add annotations. The number of annotations is eventually limited by the CSP. ' additionalProperties: type: string maxLength: 1024 example: description: Human readable description ErrorSource: type: object description: An object containing references to the source of the error. required: - pointer - parameter properties: pointer: type: string description: A JSON Pointer [RFC6901] to the associated entity in the request document. minLength: 1 maxLength: 256 parameter: type: string description: A string indicating which URI query parameter caused the error. minLength: 1 maxLength: 64 TypeMetadata: type: object readOnly: true required: - apiVersion - kind - ref description: 'Metadata for all resources with type information. ' properties: apiVersion: type: string description: API version of the resource minLength: 1 maxLength: 16 default: v1 kind: type: string description: Type of the resource enum: - activity-log - block-storage - image - instance - instance-sku - internet-gateway - network - network-load-balancer - network-sku - nic - object-storage-account - public-ip - region - role - role-assignment - routing-table - security-group - security-group-rule - storage-sku - subnet - workspace x-enumNames: - ResourceKindActivityLog - ResourceKindBlockStorage - ResourceKindImage - ResourceKindInstance - ResourceKindInstanceSku - ResourceKindInternetGateway - ResourceKindNetwork - ResourceKindNetworkLoadBalancer - ResourceKindNetworkSku - ResourceKindNic - ResourceKindObjectStorageAccount - ResourceKindPublicIP - ResourceKindRegion - ResourceKindRole - ResourceKindRoleAssignment - ResourceKindRoutingTable - ResourceKindSecurityGroup - ResourceKindSecurityGroupRule - ResourceKindStorageSku - ResourceKindSubnet - ResourceKindWorkspace ref: $ref: '#/components/schemas/ReferenceURN' Error401: allOf: - $ref: '#/components/schemas/Error' description: A 401 Unauthorized error response example: status: 401 type: http://secapi.cloud/errors/unauthorized title: Unauthorized detail: Authentication is required and has failed or has not been provided. instance: /errors/401 sources: [] RegionalMetadata: type: object description: Metadata for regional resources readOnly: true required: - region properties: region: type: string description: Reference to the region where the resource is located minLength: 1 maxLength: 64 example: eu-central-1 KubernetesNodePoolSpec: type: object description: 'Specification of the kubernetes node pool, including its configuration and network settings. Since the node pool is, all nodes in the pool have a IP address and are accessible from the internet. ' required: - instances - nodeTemplate properties: instances: description: 'The number of instances in the node pool. This field is required to specify the number of nodes in the node pool. ' type: integer minimum: 1 maximum: 5000 example: 3 x-oapi-codegen-extra-tags: x-kubebuilder-validation-minimum: '1' x-kubebuilder-validation-maximum: '5000' nodeTemplate: $ref: '#/components/schemas/KubernetesNodeTemplate' taints: type: array x-go-type-skip-optional-pointer: true maxItems: 50 description: 'List of taints to apply to the nodes in the node pool. Taints are used to mark nodes as unsuitable for certain workloads, allowing for more fine-grained control over scheduling. ' items: $ref: '#/components/schemas/KubernetesNodeTaint' x-oapi-codegen-extra-tags: x-kubebuilder-validation-max-items: '50' TenantMetadata: type: object description: Metadata for resources with tenant constraints readOnly: true required: - tenant properties: tenant: type: string description: Tenant identifier minLength: 1 maxLength: 64 ResourceState: type: string description: 'Current phase of the resource: - pending: not available, waiting for other resources - creating: not available, creation started - active: available for data layer usage - updating: available for data layer usage - deleting: maybe still available for data layer user, can fail any moment - error: failed to fulfill the request; would be related to provider issue or customer related input. ' enum: - pending - creating - active - updating - deleting - error x-enumNames: - ResourceStatePending - ResourceStateCreating - ResourceStateActive - ResourceStateUpdating - ResourceStateDeleting - ResourceStateError example: active KubernetesNodeRootVolume: type: object description: 'Root volume for the node. The root volume is used to store the operating system and other software required to run the node. The SKU must be one of the available block storage SKUs in the region. ' required: - skuRef - sizeGB properties: skuRef: allOf: - $ref: '#/components/schemas/Reference' description: 'Reference to the SKU of the block storage created to store the root volume. The SKU is immutable after the node pool is created. To change the SKU, the node pool must be deleted and recreated with the new SKU reference. ' example: provider: seca.storage/v1 resource: tenats/seca/skus/le500 x-oapi-codegen-extra-tags: x-cel-rule-0: self == oldSelf x-cel-message-0: rootVolume.skuRef is immutable sizeGB: description: 'Size of the root volume in GB. The size is recommended to be at least 100 GB. ' type: integer example: 100 minimum: 20 x-oapi-codegen-extra-tags: x-kubebuilder-validation-minimum: '20' example: skuRef: resource: tenants/seca/skus/le500 sizeGB: 100 parameters: tenantPathParam: name: tenant in: path required: true schema: type: string minLength: 1 maxLength: 64 description: Tenant ID skipTokenParam: in: query name: skipToken description: Opaque cursor for pagination. Use the skipToken from the previous response to get the next page of results. Note that skipTokens do not guarantee consistency across pages if the underlying data changes between requests required: false schema: type: string ifUnmodifiedSince: in: header name: if-unmodified-since schema: type: integer required: false description: 'Returns resources only if they have not been modified since the specified version. Uses metadata.resourceVersion for comparison. ' limitParam: in: query name: limit description: Maximum number of resources to return in the response required: false schema: type: integer minimum: 1 maximum: 10000 default: 1000 resourcePathParam: name: name in: path required: true schema: type: string maxLength: 128 minLength: 1 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ description: Resource name workspacePathParam: name: workspace in: path required: true schema: type: string minLength: 1 maxLength: 64 description: Workspace name acceptHeader: in: header name: Accept schema: type: string default: application/json example: application/json; deleted=true enum: - application/json - application/json; deleted=true - application/json; deleted=only x-enumNames: - AcceptHeaderJson - AcceptHeaderJsonDeletedTrue - AcceptHeaderJsonDeletedOnly description: 'Controls whether deleted resources are included: - `"application/json"`: Returns only non-deleted resources - `"application/json; deleted=true"`: Returns both deleted and non-deleted resources - `"application/json; deleted=only"`: Returns only deleted resources ' labelSelector: in: query name: labels description: "Filter resources by their labels. Multiple filters are combined with comma.\nFilter syntax:\n - Equals: key=value\n - Not equals: key!=value\n - Wildcards: \\*key\\*=\\*value\\* - substring (contains) match on both key and value. Each `*` can appear at start, end or in the middle to mean \"any characters\". Example: \\*env\\*=\\*prod\\* matches a label key containing \"env\" whose value contains \"prod\".\n - Numeric: key>value, key=value, key<=value\n - Namespaced key examples: 'monitoring:alert-level=high' or 'billing:team=platform'\n" required: false schema: type: string example: cloud:region=us-east-1,billing:team=platform,tier!=dev clusterPathParam: name: cluster in: path required: true schema: type: string minLength: 1 maxLength: 128 description: Cluster name securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: 'Use a JWT token for authentication. The token identifies the user, and policies (RBAC, ABAC, or hybrid) determine authorization. ' x-refined-from: - extensions.kubernetes.v1beta1.yaml - eu-sovereign-cloud-api-extensions-kubernetes-v1beta1-openapi.yml