{ "consumes": [ "application/json" ], "produces": [ "application/json" ], "schemes": [ "http", "https" ], "swagger": "2.0", "info": { "title": "Palette APIs - 4.4", "version": "v1" }, "paths": { "/v1/apiKeys": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of API keys", "operationId": "v1ApiKeysList", "responses": { "200": { "description": "Retrieves a list of API keys", "schema": { "type": "object", "required": [ "items" ], "properties": { "items": { "description": "List of API keys", "type": "array", "uniqueItems": true, "items": { "description": "API key information", "type": "object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "API key specification", "type": "object", "properties": { "expiry": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "key": { "description": "Deprecated: API key field will be no longer available", "type": "string" }, "user": { "description": "API key user information", "type": "object", "properties": { "firstName": { "description": "First name of user", "type": "string" }, "lastName": { "description": "Last name of user", "type": "string" }, "uid": { "description": "User uid", "type": "string" } } } } }, "status": { "description": "API key status", "type": "object", "properties": { "isActive": { "description": "API key active state", "type": "boolean" } } } } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Create an API key", "operationId": "v1ApiKeysCreate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "API key request payload", "type": "object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "API key specification", "type": "object", "properties": { "expiry": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "userUid": { "description": "User to whom the API key has to be created", "type": "string" } } } } } } ], "responses": { "201": { "description": "APIKey Created successfully", "schema": { "description": "Response of create API key", "type": "object", "properties": { "apiKey": { "description": "Api key is used for authentication", "type": "string" }, "uid": { "description": "User uid", "type": "string" } } } } } } }, "/v1/apiKeys/{uid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified API key", "operationId": "v1ApiKeysUidGet", "responses": { "200": { "description": "(empty)", "schema": { "description": "API key information", "type": "object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "API key specification", "type": "object", "properties": { "expiry": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "key": { "description": "Deprecated: API key field will be no longer available", "type": "string" }, "user": { "description": "API key user information", "type": "object", "properties": { "firstName": { "description": "First name of user", "type": "string" }, "lastName": { "description": "Last name of user", "type": "string" }, "uid": { "description": "User uid", "type": "string" } } } } }, "status": { "description": "API key status", "type": "object", "properties": { "isActive": { "description": "API key active state", "type": "boolean" } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Update the specified API key", "operationId": "v1ApiKeysUidUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "API key update request payload", "type": "object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "API key update request specification", "properties": { "expiry": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" } } } } } } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified API key", "operationId": "v1ApiKeysUidDelete", "responses": { "204": { "description": "The resource was deleted successfully" } } }, "patch": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Activate or de-active the specified API key", "operationId": "v1ApiKeysUidActiveState", "parameters": [ { "name": "body", "in": "body", "schema": { "properties": { "isActive": { "description": "API key active state", "type": "boolean" } } } } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Specify API key uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/apiKeys/{uid}/state": { "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Revoke or re-activate the API key access", "operationId": "v1ApiKeysUidState", "parameters": [ { "name": "body", "in": "body", "schema": { "properties": { "isActive": { "description": "API key active state", "type": "boolean" } } } } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Specify API key uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/appDeployments": { "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates a application deployment in the virtual cluster", "operationId": "v1AppDeploymentsVirtualClusterCreate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Application deployment virtual cluster request payload", "type": "object", "properties": { "metadata": { "description": "ObjectMeta input entity for object creation", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" } } }, "spec": { "description": "Application deployment virtual cluster spec", "type": "object", "properties": { "config": { "description": "Application deployment virtual cluster config", "type": "object", "properties": { "targetSpec": { "description": "Application deployment virtual cluster target spec", "type": "object", "required": [ "clusterUid" ], "properties": { "clusterUid": { "description": "Application deployment virtual cluster uid", "type": "string" } } } } }, "profile": { "description": "Application deployment profile request payload", "type": "object", "required": [ "appProfileUid" ], "properties": { "appProfileUid": { "description": "Application deployment profile uid", "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } } }, "/v1/appDeployments/clusterGroup": { "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates a application deployment in one of virtual clusters in the cluster group", "operationId": "v1AppDeploymentsClusterGroupCreate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Application deployment cluster group request payload", "type": "object", "properties": { "metadata": { "description": "ObjectMeta input entity for object creation", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" } } }, "spec": { "description": "Application deployment cluster group spec", "type": "object", "properties": { "config": { "description": "Application deployment cluster group config", "type": "object", "properties": { "targetSpec": { "description": "Application deployment cluster group target spec", "type": "object", "required": [ "clusterName", "clusterGroupUid" ], "properties": { "clusterGroupUid": { "description": "Application deployment cluster group uid", "type": "string" }, "clusterLimits": { "description": "Application deployment target cluster limits", "properties": { "cpu": { "description": "CPU cores", "type": "integer", "format": "int32" }, "memoryMiB": { "description": "Memory in MiB", "type": "integer", "format": "int32" }, "storageGiB": { "description": "Storage in GiB", "type": "integer", "format": "int32" } } }, "clusterName": { "description": "Application deployment virtual cluster name", "type": "string" } } } } }, "profile": { "description": "Application deployment profile request payload", "type": "object", "required": [ "appProfileUid" ], "properties": { "appProfileUid": { "description": "Application deployment profile uid", "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } } }, "/v1/appDeployments/{uid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified application deployment", "operationId": "v1AppDeploymentsUidGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Application deployment response", "type": "object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Application deployment spec", "type": "object", "properties": { "config": { "description": "Application deployment config response", "type": "object", "properties": { "target": { "description": "Application deployment target config response", "type": "object", "properties": { "clusterRef": { "description": "Application deployment cluster reference", "type": "object", "properties": { "deploymentClusterType": { "description": "Application deployment source cluster type[ \"virtualCluster\", \"hostCluster\" ]", "type": "string", "enum": [ "virtual", "host" ] }, "name": { "description": "Application deployment cluster name", "type": "string" }, "uid": { "description": "Application deployment cluster uid", "type": "string" } } }, "envRef": { "description": "Application deployment target environment reference", "type": "object", "properties": { "name": { "description": "Application deployment target resource name", "type": "string" }, "type": { "description": "Application deployment target resource type [ \"nestedCluster\", \"clusterGroup\" ]", "type": "string" }, "uid": { "description": "Application deployment target resource uid", "type": "string" } } } } } } }, "profile": { "description": "Application deployment profile", "type": "object", "properties": { "metadata": { "description": "Application deployment profile metadata", "type": "object", "properties": { "name": { "description": "Application deployment profile name", "type": "string" }, "uid": { "description": "Application deployment profile uid", "type": "string" }, "version": { "description": "Application deployment profile version", "type": "string" } } }, "template": { "description": "Application profile template information", "type": "object", "properties": { "appTiers": { "description": "Application profile tiers", "type": "array", "uniqueItems": true, "items": { "description": "Application tier reference", "type": "object", "properties": { "name": { "description": "Application tier name", "type": "string" }, "type": { "type": "string", "default": "manifest", "enum": [ "manifest", "helm", "operator-instance", "container" ] }, "uid": { "description": "Application tier uid to uniquely identify the tier", "type": "string" }, "version": { "description": "Application tier version", "type": "string" } } } }, "registryRefs": { "description": "Application profile registries reference", "type": "array", "items": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", "type": "object", "properties": { "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } } } } } } } } } }, "status": { "description": "Application deployment status", "type": "object", "properties": { "appTiers": { "description": "Application deployment tiers", "type": "array", "items": { "type": "object", "properties": { "condition": { "type": "object", "required": [ "type", "status" ], "properties": { "lastProbeTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "lastTransitionTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "message": { "description": "Human-readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "Unique, one-word, CamelCase reason for the condition's last transition.", "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } }, "endTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "manifests": { "type": "array", "items": { "type": "object", "properties": { "condition": { "type": "object", "required": [ "type", "status" ], "properties": { "lastProbeTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "lastTransitionTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "message": { "description": "Human-readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "Unique, one-word, CamelCase reason for the condition's last transition.", "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } }, "name": { "type": "string" }, "uid": { "type": "string" } } } }, "name": { "type": "string" }, "profileUid": { "type": "string" }, "services": { "type": "array", "items": { "type": "object", "properties": { "host": { "description": "IP or Host from svc.Status.LoadBalancerStatus.Ingress", "type": "string" }, "name": { "description": "name of the loadbalancer service", "type": "string" }, "ports": { "description": "port this service exposed", "type": "array", "items": { "type": "object", "required": [ "port" ], "properties": { "port": { "description": "The port that will be exposed by this service.", "type": "integer", "format": "int32" }, "protocol": { "type": "string" } } } } } } }, "startTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "type": { "type": "string" }, "version": { "type": "string" } } } }, "lifecycleStatus": { "properties": { "msg": { "description": "error or success msg of lifecycle", "type": "string" }, "status": { "description": "lifecycle status", "type": "string", "enum": [ "Pausing", "Paused", "Resuming", "Running", "Error" ] } } }, "state": { "description": "Application deployment state [ \"Pending\", \"Deploying\", \"Deployed\", \"Updating\" ]", "type": "string" } } } } } } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified application deployment", "operationId": "v1AppDeploymentsUidDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Application deployment uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/appDeployments/{uid}/profile": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns profile of the specified application deployment", "operationId": "v1AppDeploymentsUidProfileGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Application deployment profile spec", "type": "object", "properties": { "metadata": { "description": "Application deployment profile metadata", "type": "object", "properties": { "name": { "description": "Application deployment profile name", "type": "string" }, "uid": { "description": "Application deployment profile uid", "type": "string" }, "version": { "description": "Application deployment profile version", "type": "string" } } }, "template": { "description": "Application profile template specs", "type": "object", "properties": { "appTiers": { "description": "Application profile tiers", "type": "array", "uniqueItems": true, "items": { "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Application tier specs", "type": "object", "properties": { "containerRegistryUid": { "description": "Application tier container registry uid", "type": "string" }, "installOrder": { "description": "Application tier installation order", "type": "integer", "format": "int32" }, "manifests": { "description": "Application tier attached manifest content in yaml format", "type": "array", "items": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", "type": "object", "properties": { "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } } } }, "properties": { "description": "Application tier properties", "type": "array", "items": { "description": "Application tier property object", "properties": { "format": { "description": "Application tier property format", "type": "string" }, "name": { "description": "Application tier property name", "type": "string" }, "type": { "description": "Application tier property data type", "type": "string" }, "value": { "description": "Application tier property value", "type": "string" } } } }, "registryUid": { "description": "Registry uid", "type": "string" }, "sourceAppTierUid": { "description": "Application tier source pack uid", "type": "string" }, "type": { "type": "string", "default": "manifest", "enum": [ "manifest", "helm", "operator-instance", "container" ] }, "values": { "description": "Application tier configuration values in yaml format", "type": "string" }, "version": { "description": "Application tier version", "type": "string" } } } } } }, "registryRefs": { "description": "Application profile registries reference", "type": "array", "items": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", "type": "object", "properties": { "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } } } } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified application deployment profile", "operationId": "v1AppDeploymentsUidProfileUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Application deployment profile request payload", "type": "object", "required": [ "appProfileUid" ], "properties": { "appProfileUid": { "description": "Application deployment profile uid", "type": "string" } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Application deployment uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/appDeployments/{uid}/profile/apply": { "patch": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Apply the application deployment profile updates", "operationId": "v1AppDeploymentsUidProfileApply", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Application deployment uid", "name": "uid", "in": "path", "required": true }, { "type": "string", "description": "Application deployment notification uid", "name": "notify", "in": "query" } ] }, "/v1/appDeployments/{uid}/profile/tiers/{tierUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified application deployment profile tier information", "operationId": "v1AppDeploymentsProfileTiersUidGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Application tier specs", "type": "object", "properties": { "containerRegistryUid": { "description": "Application tier container registry uid", "type": "string" }, "installOrder": { "description": "Application tier installation order", "type": "integer", "format": "int32" }, "manifests": { "description": "Application tier attached manifest content in yaml format", "type": "array", "items": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", "type": "object", "properties": { "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } } } }, "properties": { "description": "Application tier properties", "type": "array", "items": { "description": "Application tier property object", "properties": { "format": { "description": "Application tier property format", "type": "string" }, "name": { "description": "Application tier property name", "type": "string" }, "type": { "description": "Application tier property data type", "type": "string" }, "value": { "description": "Application tier property value", "type": "string" } } } }, "registryUid": { "description": "Registry uid", "type": "string" }, "sourceAppTierUid": { "description": "Application tier source pack uid", "type": "string" }, "type": { "type": "string", "default": "manifest", "enum": [ "manifest", "helm", "operator-instance", "container" ] }, "values": { "description": "Application tier configuration values in yaml format", "type": "string" }, "version": { "description": "Application tier version", "type": "string" } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified application deployment profile tier information", "operationId": "v1AppDeploymentsProfileTiersUidUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Application tier update request payload", "type": "object", "properties": { "containerRegistryUid": { "description": "Application tier container registry uid", "type": "string" }, "installOrder": { "description": "Application tier installation order", "type": "integer", "format": "int32" }, "manifests": { "description": "Application tier manifests", "type": "array", "items": { "description": "Manifest update request payload", "required": [ "name" ], "properties": { "content": { "description": "Manifest content in yaml", "type": "string" }, "name": { "description": "Manifest name", "type": "string" }, "uid": { "description": "Manifest uid", "type": "string" } } } }, "name": { "description": "Application tier name", "type": "string" }, "properties": { "description": "Application tier properties", "type": "array", "items": { "description": "Application tier property object", "properties": { "name": { "description": "Application tier property name", "type": "string" }, "value": { "description": "Application tier property value", "type": "string" } } } }, "values": { "description": "Application tier configuration values in yaml format", "type": "string" }, "version": { "description": "Application tier version", "type": "string" } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Application deployment uid", "name": "uid", "in": "path", "required": true }, { "type": "string", "description": "Application deployment tier uid", "name": "tierUid", "in": "path", "required": true } ] }, "/v1/appDeployments/{uid}/profile/tiers/{tierUid}/manifests": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of manifests of the specified application deployment profile tier", "operationId": "v1AppDeploymentsProfileTiersUidManifestsGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Application tier manifests data", "properties": { "manifests": { "description": "Application tier manifests array", "type": "array", "items": { "description": "Manifest object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Manifest spec", "properties": { "published": { "description": "Published manifest object", "type": "object", "properties": { "content": { "description": "Manifest content in yaml", "type": "string" }, "digest": { "description": "Manifest digest", "type": "string" } } } } } } } } } } } } }, "parameters": [ { "type": "string", "description": "Application deployment uid", "name": "uid", "in": "path", "required": true }, { "type": "string", "description": "Application deployment tier uid", "name": "tierUid", "in": "path", "required": true } ] }, "/v1/appDeployments/{uid}/profile/tiers/{tierUid}/manifests/{manifestUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified application deployment tier manifest information", "operationId": "v1AppDeploymentsProfileTiersManifestsUidGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Manifest object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Manifest spec", "properties": { "published": { "description": "Published manifest object", "type": "object", "properties": { "content": { "description": "Manifest content in yaml", "type": "string" }, "digest": { "description": "Manifest digest", "type": "string" } } } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified application deployment tier manifest information", "operationId": "v1AppDeploymentsProfileTiersManifestsUidUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Manifest update request payload", "required": [ "name" ], "properties": { "content": { "description": "Manifest content in yaml", "type": "string" }, "name": { "description": "Manifest name", "type": "string" }, "uid": { "description": "Manifest uid", "type": "string" } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Application deployment uid", "name": "uid", "in": "path", "required": true }, { "type": "string", "description": "Application deployment tier uid", "name": "tierUid", "in": "path", "required": true }, { "type": "string", "description": "Application deployment tier manifest uid", "name": "manifestUid", "in": "path", "required": true } ] }, "/v1/appDeployments/{uid}/profile/versions": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of profile versions of the specified application deployment", "operationId": "v1AppDeploymentsUidProfileVersionsGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Application deployment profile versions", "type": "object", "properties": { "availableVersions": { "description": "Application deployment profile available versions", "type": "array", "items": { "description": "Application deployment profile version", "type": "object", "properties": { "uid": { "description": "Application deployment profile uid", "type": "string" }, "version": { "description": "Application deployment profile version", "type": "string" } } } }, "latestVersions": { "description": "Application deployment profile latest versions", "type": "array", "items": { "description": "Application deployment profile version", "type": "object", "properties": { "uid": { "description": "Application deployment profile uid", "type": "string" }, "version": { "description": "Application deployment profile version", "type": "string" } } } }, "metadata": { "description": "Application deployment profile metadata", "type": "object", "properties": { "name": { "description": "Application deployment profile name", "type": "string" }, "uid": { "description": "Application deployment profile uid", "type": "string" }, "version": { "description": "Application deployment profile version", "type": "string" } } } } } } } }, "parameters": [ { "type": "string", "description": "Application deployment uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/appProfiles": { "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates a application profile", "operationId": "v1AppProfilesCreate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Application profile request payload", "type": "object", "properties": { "metadata": { "description": "ObjectMeta input entity for object creation", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" } } }, "spec": { "description": "Application profile spec", "type": "object", "properties": { "template": { "description": "Application profile template spec", "type": "object", "properties": { "appTiers": { "description": "Application profile tiers", "type": "array", "uniqueItems": true, "items": { "description": "Application tier request payload", "type": "object", "required": [ "name" ], "properties": { "containerRegistryUid": { "description": "Application tier container registry uid", "type": "string" }, "installOrder": { "description": "Application tier installation order", "type": "integer", "format": "int32" }, "manifests": { "description": "Application tier manifests", "type": "array", "items": { "description": "Manifest request payload", "properties": { "content": { "description": "Manifest content", "type": "string" }, "name": { "description": "Manifest name", "type": "string" } } } }, "name": { "description": "Application tier name", "type": "string" }, "properties": { "description": "Application tier properties", "type": "array", "items": { "description": "Application tier property object", "properties": { "name": { "description": "Application tier property name", "type": "string" }, "value": { "description": "Application tier property value", "type": "string" } } } }, "registryUid": { "description": "Application tier registry uid", "type": "string" }, "sourceAppTierUid": { "description": "Application tier source pack uid", "type": "string" }, "type": { "type": "string", "default": "manifest", "enum": [ "manifest", "helm", "operator-instance", "container" ] }, "values": { "description": "Application tier configuration values in yaml format", "type": "string" }, "version": { "description": "Application tier version", "type": "string" } } } } } }, "version": { "description": "Application profile version", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } } }, "/v1/appProfiles/macros": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of application profile macros", "operationId": "v1AppProfilesMacrosList", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "properties": { "macros": { "type": "array", "uniqueItems": true, "items": { "properties": { "name": { "type": "string" }, "value": { "type": "string" } } } } } } } } } }, "/v1/appProfiles/{uid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified application profile", "operationId": "v1AppProfilesUidGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Application profile response", "type": "object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "properties": { "parentUid": { "description": "Application profile parent profile uid", "type": "string" }, "template": { "description": "Application profile template information", "type": "object", "properties": { "appTiers": { "description": "Application profile tiers", "type": "array", "uniqueItems": true, "items": { "description": "Application tier reference", "type": "object", "properties": { "name": { "description": "Application tier name", "type": "string" }, "type": { "type": "string", "default": "manifest", "enum": [ "manifest", "helm", "operator-instance", "container" ] }, "uid": { "description": "Application tier uid to uniquely identify the tier", "type": "string" }, "version": { "description": "Application tier version", "type": "string" } } } }, "registryRefs": { "description": "Application profile registries reference", "type": "array", "items": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", "type": "object", "properties": { "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } } } } } }, "version": { "description": "Application profile version", "type": "string" }, "versions": { "description": "Application profile versions list", "type": "array", "items": { "description": "Application profile version", "type": "object", "properties": { "uid": { "type": "string" }, "version": { "type": "string" } } } } } }, "status": { "description": "Application profile status", "type": "object", "properties": { "inUseApps": { "description": "Application profile apps array", "type": "array", "items": { "description": "Object resource reference", "type": "object", "properties": { "kind": { "type": "string" }, "name": { "type": "string" }, "projectUid": { "type": "string" }, "tenantUid": { "type": "string" }, "uid": { "type": "string" } } } } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified application profile", "operationId": "v1AppProfilesUidUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Application profile request payload", "type": "object", "properties": { "metadata": { "description": "ObjectMeta input entity for object creation", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" } } }, "spec": { "description": "Application profile spec", "type": "object", "properties": { "template": { "description": "Application profile template spec", "type": "object", "properties": { "appTiers": { "description": "Application profile tiers", "type": "array", "uniqueItems": true, "items": { "description": "Application tier request payload", "type": "object", "required": [ "name" ], "properties": { "containerRegistryUid": { "description": "Application tier container registry uid", "type": "string" }, "installOrder": { "description": "Application tier installation order", "type": "integer", "format": "int32" }, "manifests": { "description": "Application tier manifests", "type": "array", "items": { "description": "Manifest request payload", "properties": { "content": { "description": "Manifest content", "type": "string" }, "name": { "description": "Manifest name", "type": "string" } } } }, "name": { "description": "Application tier name", "type": "string" }, "properties": { "description": "Application tier properties", "type": "array", "items": { "description": "Application tier property object", "properties": { "name": { "description": "Application tier property name", "type": "string" }, "value": { "description": "Application tier property value", "type": "string" } } } }, "registryUid": { "description": "Application tier registry uid", "type": "string" }, "sourceAppTierUid": { "description": "Application tier source pack uid", "type": "string" }, "type": { "type": "string", "default": "manifest", "enum": [ "manifest", "helm", "operator-instance", "container" ] }, "values": { "description": "Application tier configuration values in yaml format", "type": "string" }, "version": { "description": "Application tier version", "type": "string" } } } } } }, "version": { "description": "Application profile version", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified application profile", "operationId": "v1AppProfilesUidDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/appProfiles/{uid}/clone": { "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Clones the specified application profile", "operationId": "v1AppProfilesUidClone", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Application profile clone request payload", "type": "object", "properties": { "metadata": { "description": "Application profile clone metadata", "type": "object", "required": [ "name" ], "properties": { "name": { "description": "Application profile name", "type": "string" }, "target": { "description": "Application profile clone target", "type": "object", "properties": { "projectUid": { "description": "Application profile clone target project uid", "type": "string" } } }, "version": { "description": "Application profile version", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Application profile uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/appProfiles/{uid}/clone/validate": { "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Validates the specified application profile clone", "operationId": "v1AppProfilesUidCloneValidate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Application profile clone metadata", "type": "object", "required": [ "name" ], "properties": { "name": { "description": "Application profile name", "type": "string" }, "target": { "description": "Application profile clone target", "type": "object", "properties": { "projectUid": { "description": "Application profile clone target project uid", "type": "string" } } }, "version": { "description": "Application profile version", "type": "string" } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "Ok response without content", "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Application profile uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/appProfiles/{uid}/metadata": { "patch": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified application profile metadata", "operationId": "v1AppProfilesUidMetadataUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Application profile metadata request payload", "type": "object", "required": [ "metadata" ], "properties": { "metadata": { "description": "Application profile metadata update request payload", "type": "object", "properties": { "annotations": { "description": "Application profile annotations", "type": "object", "additionalProperties": { "type": "string" } }, "labels": { "description": "Application profile labels", "type": "object", "additionalProperties": { "type": "string" } } } }, "version": { "description": "Application profile version", "type": "string" } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Application profile uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/appProfiles/{uid}/tiers": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of tiers of the specified application profile", "operationId": "v1AppProfilesUidTiersGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Application profile tiers information", "type": "object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Application profile tiers information", "type": "object", "properties": { "appTiers": { "description": "Application profile tiers", "type": "array", "uniqueItems": true, "items": { "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Application tier specs", "type": "object", "properties": { "containerRegistryUid": { "description": "Application tier container registry uid", "type": "string" }, "installOrder": { "description": "Application tier installation order", "type": "integer", "format": "int32" }, "manifests": { "description": "Application tier attached manifest content in yaml format", "type": "array", "items": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", "type": "object", "properties": { "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } } } }, "properties": { "description": "Application tier properties", "type": "array", "items": { "description": "Application tier property object", "properties": { "format": { "description": "Application tier property format", "type": "string" }, "name": { "description": "Application tier property name", "type": "string" }, "type": { "description": "Application tier property data type", "type": "string" }, "value": { "description": "Application tier property value", "type": "string" } } } }, "registryUid": { "description": "Registry uid", "type": "string" }, "sourceAppTierUid": { "description": "Application tier source pack uid", "type": "string" }, "type": { "type": "string", "default": "manifest", "enum": [ "manifest", "helm", "operator-instance", "container" ] }, "values": { "description": "Application tier configuration values in yaml format", "type": "string" }, "version": { "description": "Application tier version", "type": "string" } } } } } } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Adds tier to the specified application profile", "operationId": "v1AppProfilesUidTiersCreate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Application tier request payload", "type": "object", "required": [ "name" ], "properties": { "containerRegistryUid": { "description": "Application tier container registry uid", "type": "string" }, "installOrder": { "description": "Application tier installation order", "type": "integer", "format": "int32" }, "manifests": { "description": "Application tier manifests", "type": "array", "items": { "description": "Manifest request payload", "properties": { "content": { "description": "Manifest content", "type": "string" }, "name": { "description": "Manifest name", "type": "string" } } } }, "name": { "description": "Application tier name", "type": "string" }, "properties": { "description": "Application tier properties", "type": "array", "items": { "description": "Application tier property object", "properties": { "name": { "description": "Application tier property name", "type": "string" }, "value": { "description": "Application tier property value", "type": "string" } } } }, "registryUid": { "description": "Application tier registry uid", "type": "string" }, "sourceAppTierUid": { "description": "Application tier source pack uid", "type": "string" }, "type": { "type": "string", "default": "manifest", "enum": [ "manifest", "helm", "operator-instance", "container" ] }, "values": { "description": "Application tier configuration values in yaml format", "type": "string" }, "version": { "description": "Application tier version", "type": "string" } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "patch": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates app tier of the specified application profile", "operationId": "v1AppProfilesUidTiersPatch", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Application tier patch request payload", "properties": { "appTier": { "description": "Application tier request payload", "type": "object", "required": [ "name" ], "properties": { "containerRegistryUid": { "description": "Application tier container registry uid", "type": "string" }, "installOrder": { "description": "Application tier installation order", "type": "integer", "format": "int32" }, "manifests": { "description": "Application tier manifests", "type": "array", "items": { "description": "Manifest request payload", "properties": { "content": { "description": "Manifest content", "type": "string" }, "name": { "description": "Manifest name", "type": "string" } } } }, "name": { "description": "Application tier name", "type": "string" }, "properties": { "description": "Application tier properties", "type": "array", "items": { "description": "Application tier property object", "properties": { "name": { "description": "Application tier property name", "type": "string" }, "value": { "description": "Application tier property value", "type": "string" } } } }, "registryUid": { "description": "Application tier registry uid", "type": "string" }, "sourceAppTierUid": { "description": "Application tier source pack uid", "type": "string" }, "type": { "type": "string", "default": "manifest", "enum": [ "manifest", "helm", "operator-instance", "container" ] }, "values": { "description": "Application tier configuration values in yaml format", "type": "string" }, "version": { "description": "Application tier version", "type": "string" } } }, "replaceWithAppTier": { "description": "Application tier UID to be replaced with new tier", "type": "string" } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Application profile uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/appProfiles/{uid}/tiers/{tierUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified application profile tier information", "operationId": "v1AppProfilesUidTiersUidGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Application tier specs", "type": "object", "properties": { "containerRegistryUid": { "description": "Application tier container registry uid", "type": "string" }, "installOrder": { "description": "Application tier installation order", "type": "integer", "format": "int32" }, "manifests": { "description": "Application tier attached manifest content in yaml format", "type": "array", "items": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", "type": "object", "properties": { "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } } } }, "properties": { "description": "Application tier properties", "type": "array", "items": { "description": "Application tier property object", "properties": { "format": { "description": "Application tier property format", "type": "string" }, "name": { "description": "Application tier property name", "type": "string" }, "type": { "description": "Application tier property data type", "type": "string" }, "value": { "description": "Application tier property value", "type": "string" } } } }, "registryUid": { "description": "Registry uid", "type": "string" }, "sourceAppTierUid": { "description": "Application tier source pack uid", "type": "string" }, "type": { "type": "string", "default": "manifest", "enum": [ "manifest", "helm", "operator-instance", "container" ] }, "values": { "description": "Application tier configuration values in yaml format", "type": "string" }, "version": { "description": "Application tier version", "type": "string" } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified application profile tier", "operationId": "v1AppProfilesUidTiersUidUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Application tier update request payload", "type": "object", "properties": { "containerRegistryUid": { "description": "Application tier container registry uid", "type": "string" }, "installOrder": { "description": "Application tier installation order", "type": "integer", "format": "int32" }, "manifests": { "description": "Application tier manifests", "type": "array", "items": { "description": "Manifest update request payload", "required": [ "name" ], "properties": { "content": { "description": "Manifest content in yaml", "type": "string" }, "name": { "description": "Manifest name", "type": "string" }, "uid": { "description": "Manifest uid", "type": "string" } } } }, "name": { "description": "Application tier name", "type": "string" }, "properties": { "description": "Application tier properties", "type": "array", "items": { "description": "Application tier property object", "properties": { "name": { "description": "Application tier property name", "type": "string" }, "value": { "description": "Application tier property value", "type": "string" } } } }, "values": { "description": "Application tier configuration values in yaml format", "type": "string" }, "version": { "description": "Application tier version", "type": "string" } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified application profile tier", "operationId": "v1AppProfilesUidTiersUidDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Application profile uid", "name": "uid", "in": "path", "required": true }, { "type": "string", "description": "Application profile tier uid", "name": "tierUid", "in": "path", "required": true } ] }, "/v1/appProfiles/{uid}/tiers/{tierUid}/manifests": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of manifests of the specified application profile tier", "operationId": "v1AppProfilesUidTiersUidManifestsGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Application tier manifests data", "properties": { "manifests": { "description": "Application tier manifests array", "type": "array", "items": { "description": "Manifest object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Manifest spec", "properties": { "published": { "description": "Published manifest object", "type": "object", "properties": { "content": { "description": "Manifest content in yaml", "type": "string" }, "digest": { "description": "Manifest digest", "type": "string" } } } } } } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Adds manifest to the specified application profile tier", "operationId": "v1AppProfilesUidTiersUidManifestsCreate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Manifest request payload", "properties": { "content": { "description": "Manifest content", "type": "string" }, "name": { "description": "Manifest name", "type": "string" } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Application profile uid", "name": "uid", "in": "path", "required": true }, { "type": "string", "description": "Application profile tier uid", "name": "tierUid", "in": "path", "required": true } ] }, "/v1/appProfiles/{uid}/tiers/{tierUid}/manifests/{manifestUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified application profile tier manifest information", "operationId": "v1AppProfilesUidTiersUidManifestsUidGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Manifest object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Manifest spec", "properties": { "published": { "description": "Published manifest object", "type": "object", "properties": { "content": { "description": "Manifest content in yaml", "type": "string" }, "digest": { "description": "Manifest digest", "type": "string" } } } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified application profile tier manifest information", "operationId": "v1AppProfilesUidTiersUidManifestsUidUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Manifest update request payload", "required": [ "name" ], "properties": { "content": { "description": "Manifest content in yaml", "type": "string" }, "name": { "description": "Manifest name", "type": "string" }, "uid": { "description": "Manifest uid", "type": "string" } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified application profile tier manifest", "operationId": "v1AppProfilesUidTiersUidManifestsUidDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Application profile uid", "name": "uid", "in": "path", "required": true }, { "type": "string", "description": "Application profile tier uid", "name": "tierUid", "in": "path", "required": true }, { "type": "string", "description": "Application profile tier manifest uid", "name": "manifestUid", "in": "path", "required": true } ] }, "/v1/appProfiles/{uid}/tiers/{tierUid}/resolvedValues": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified application profile tier resolved values", "operationId": "v1AppProfilesUidTiersUidResolvedValuesGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Application tier resolved macro values", "properties": { "resolved": { "description": "Application tier resolved macro values map", "type": "object", "additionalProperties": { "type": "string" } } } } } } }, "parameters": [ { "type": "string", "description": "Application profile uid", "name": "uid", "in": "path", "required": true }, { "type": "string", "description": "Application profile tier uid", "name": "tierUid", "in": "path", "required": true } ] }, "/v1/audits": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves the list of audit logs", "operationId": "v1AuditsList", "parameters": [ { "type": "string", "format": "date-time", "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "name": "startTime", "in": "query" }, { "type": "string", "format": "date-time", "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "name": "endTime", "in": "query" }, { "type": "string", "description": "Specify the user uid, to retrieve the specific user audit logs", "name": "userUid", "in": "query" }, { "type": "string", "description": "Specify the project uid, to retrieve the specific project audit logs", "name": "projectUid", "in": "query" }, { "type": "string", "description": "Specify the tenant uid, to retrieve the specific tenant audit logs", "name": "tenantUid", "in": "query" }, { "type": "string", "description": "Specify the resource name, to retrieve the specific resource audit logs", "name": "resourceKind", "in": "query" }, { "type": "string", "description": "Specify the resource uid, to retrieve the specific resource audit logs", "name": "resourceUid", "in": "query" }, { "enum": [ "create", "update", "delete", "publish", "deploy" ], "type": "string", "name": "actionType", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "type": "object", "required": [ "items" ], "properties": { "items": { "description": "List of audit message", "type": "array", "uniqueItems": true, "items": { "description": "Audit response payload", "type": "object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Audit specifications", "properties": { "actionMsg": { "description": "Audit action message", "type": "string" }, "actionType": { "type": "string", "enum": [ "create", "update", "delete", "publish", "deploy" ] }, "actor": { "description": "Audit actor object", "properties": { "actorType": { "type": "string", "enum": [ "user", "system", "service" ] }, "project": { "type": "object", "properties": { "name": { "type": "string" }, "uid": { "type": "string" } } }, "serviceName": { "type": "string" }, "user": { "type": "object", "properties": { "emailId": { "type": "string" }, "firstName": { "type": "string" }, "lastName": { "type": "string" }, "org": { "type": "string" }, "uid": { "type": "string" } } } } }, "contentMsg": { "description": "Audit content message", "type": "string" }, "resource": { "description": "Audit resource reference object", "type": "object", "required": [ "uid" ], "properties": { "kind": { "description": "Audit resource type", "type": "string" }, "label": { "description": "Audit resource label", "type": "string" }, "name": { "description": "Audit resource name", "type": "string" }, "uid": { "description": "Audit resource uid", "type": "string" } } }, "userMsg": { "description": "Audit user message", "type": "string" } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } } }, "/v1/audits/{uid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified audit log", "operationId": "v1AuditsUidGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "Audit response payload", "type": "object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Audit specifications", "properties": { "actionMsg": { "description": "Audit action message", "type": "string" }, "actionType": { "type": "string", "enum": [ "create", "update", "delete", "publish", "deploy" ] }, "actor": { "description": "Audit actor object", "properties": { "actorType": { "type": "string", "enum": [ "user", "system", "service" ] }, "project": { "type": "object", "properties": { "name": { "type": "string" }, "uid": { "type": "string" } } }, "serviceName": { "type": "string" }, "user": { "type": "object", "properties": { "emailId": { "type": "string" }, "firstName": { "type": "string" }, "lastName": { "type": "string" }, "org": { "type": "string" }, "uid": { "type": "string" } } } } }, "contentMsg": { "description": "Audit content message", "type": "string" }, "resource": { "description": "Audit resource reference object", "type": "object", "required": [ "uid" ], "properties": { "kind": { "description": "Audit resource type", "type": "string" }, "label": { "description": "Audit resource label", "type": "string" }, "name": { "description": "Audit resource name", "type": "string" }, "uid": { "description": "Audit resource uid", "type": "string" } } }, "userMsg": { "description": "Audit user message", "type": "string" } } } } } } } }, "parameters": [ { "type": "string", "description": "Specify the audit uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/audits/{uid}/sysMsg": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified system audit message", "operationId": "v1AuditsUidGetSysMsg", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "Audit system message", "type": "object", "properties": { "actionMsg": { "description": "Audit resource action message", "type": "string" }, "contentMsg": { "description": "Audit resource content message", "type": "string" } } } } } }, "parameters": [ { "type": "string", "description": "Specify the audit uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/audits/{uid}/userMsg": { "patch": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified user message for the specified audit", "operationId": "v1AuditsUidMsgUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Audit user message update request payload", "type": "object", "properties": { "userMsg": { "description": "User message", "type": "string", "maxLength": 255, "minLength": 3 } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Specify the audit uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/auth/authenticate": { "post": { "description": "Creates a authentication request with the specified credentials", "tags": [ "v1" ], "summary": "Authenticates the user for the specified crendentials", "operationId": "v1Authenticate", "parameters": [ { "type": "boolean", "default": true, "description": "Describes a way to set cookie from backend.", "name": "setCookie", "in": "query" }, { "description": "Describes the credential details required for authentication", "name": "body", "in": "body", "required": true, "schema": { "description": "Describes the credential details required for authentication", "type": "object", "properties": { "emailId": { "description": "Describes the email id required for the user to authenticate", "type": "string" }, "org": { "description": "Describes the user's organization name to login", "type": "string" }, "password": { "description": "Describes the password required for the user to authenticate", "type": "string", "format": "password" } } } } ], "responses": { "200": { "description": "OK", "schema": { "description": "Returns the Authorization token. To be used for further api calls", "type": "object", "properties": { "Authorization": { "description": "Describes the authentication token in jwt format.", "type": "string" }, "isMfa": { "description": "Indicates the authentication flow using MFA", "type": "boolean", "x-omitempty": false } } } } } } }, "/v1/auth/org": { "get": { "description": "Returns the allowed login method and information with the organization details", "tags": [ "v1" ], "summary": "Returns the user organization details", "operationId": "v1AuthOrg", "parameters": [ { "type": "string", "name": "orgName", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Returns the allowed login method and information with the organization details", "type": "object", "properties": { "appEnv": { "description": "Describes the env type. Possible values [ saas, self-hosted, quick-start, enterprise, airgap]", "type": "string" }, "authType": { "description": "Describes the default mode of authentication. Possible values [password, sso]", "type": "string", "enum": [ "password", "sso" ] }, "orgName": { "description": "Organization name.", "type": "string" }, "redirectUrl": { "description": "Describes the default redirect Url for authentication. If authType is sso, it will have tenant configured saml/oidc idp url else it will be users organization url", "type": "string", "x-omitempty": false }, "rootDomain": { "description": "Describes the domain url on which the saas is available", "type": "string" }, "securityMode": { "description": "Describes which security mode is enabled", "type": "string" }, "ssoLogins": { "description": "Describes the allowed sso logins", "type": "array", "uniqueItems": true, "items": { "description": "Describes the allowed sso login details", "type": "object", "properties": { "displayName": { "description": "Describes the display name for the sso login", "type": "string" }, "logo": { "description": "Describes the url path for the sso login", "type": "string" }, "name": { "description": "Describes the processed name for the sso login", "type": "string" }, "redirectUri": { "description": "Describes the sso login url for the authentication", "type": "string" } } } }, "totalTenants": { "description": "Describes the total number of tenant present in the system", "type": "number", "format": "int64" } } } } } } }, "/v1/auth/org/{org}/oidc/callback": { "get": { "description": "Returns the Authorization token for the palette. This is called by the IDP as a callback url after IDP authenticates the user with its server.", "tags": [ "v1" ], "summary": "Idp authorization code callback", "operationId": "V1OidcCallback", "responses": { "200": { "description": "OK", "schema": { "description": "Returns the Authorization token. To be used for further api calls", "type": "object", "properties": { "Authorization": { "description": "Describes the authentication token in jwt format.", "type": "string" }, "isMfa": { "description": "Indicates the authentication flow using MFA", "type": "boolean", "x-omitempty": false } } } } } }, "parameters": [ { "type": "string", "description": "Organization name", "name": "org", "in": "path", "required": true }, { "type": "string", "description": "Describes temporary and very short lived code sent by IDP to validate the token", "name": "code", "in": "query" }, { "type": "string", "description": "Describes a state to validate and associate request and response", "name": "state", "in": "query" }, { "type": "string", "description": "Describes a error code in case the IDP is not able to validate and authenticates the user", "name": "error", "in": "query" }, { "type": "string", "description": "Describes a error in case the IDP is not able to validate and authenticates the user", "name": "error_description", "in": "query" } ] }, "/v1/auth/org/{org}/oidc/logout": { "get": { "description": "Returns No Content. Works as a callback url after the IDP logout from their server.", "tags": [ "v1" ], "summary": "Identity provider logout url for the Oidc", "operationId": "V1OidcLogout", "responses": { "204": { "description": "Ok response without content", "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Organization name", "name": "org", "in": "path", "required": true }, { "type": "string", "description": "Describes a state to validate and associate request and response", "name": "state", "in": "query" } ] }, "/v1/auth/org/{org}/saml/callback": { "post": { "description": "Returns the Authorization token for the palette. This is called by the SAML based IDP as a callback url after IDP authenticates the user with its server.", "consumes": [ "application/x-www-form-urlencoded" ], "tags": [ "v1" ], "summary": "Identity provider callback url for the SMAL authentication", "operationId": "V1SamlCallback", "parameters": [ { "type": "string", "description": "Describe the SAML compliant response sent by IDP which will be validated by Palette", "name": "SAMLResponse", "in": "formData" }, { "type": "string", "description": "Describes a state to validate and associate request and response", "name": "RelayState", "in": "formData" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Returns the Authorization token. To be used for further api calls", "type": "object", "properties": { "Authorization": { "description": "Describes the authentication token in jwt format.", "type": "string" }, "isMfa": { "description": "Indicates the authentication flow using MFA", "type": "boolean", "x-omitempty": false } } } } } }, "parameters": [ { "type": "string", "description": "Organization name", "name": "org", "in": "path", "required": true }, { "type": "string", "description": "Deprecated.", "name": "authToken", "in": "query" } ] }, "/v1/auth/org/{org}/saml/logout": { "post": { "description": "Returns No Content. Works as a callback url after the IDP logout from their server.", "consumes": [ "application/x-www-form-urlencoded" ], "tags": [ "v1" ], "summary": "Identity provider logout url for the SMAL", "operationId": "V1SamlLogout", "parameters": [ { "type": "string", "description": "Describe the SAML compliant response sent by IDP which will be validated by Palette to perform logout.", "name": "SAMLResponse", "in": "formData" } ], "responses": { "204": { "description": "Ok response without content", "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Organization name", "name": "org", "in": "path", "required": true }, { "type": "string", "description": "Deprecated.", "name": "authToken", "in": "query" } ] }, "/v1/auth/orgs": { "get": { "description": "Returns a list of user's organizations details and login methods", "tags": [ "v1" ], "summary": "Returns a list of user's organizations", "operationId": "V1AuthOrgs", "responses": { "200": { "description": "OK", "schema": { "description": "Returns a list of user's organizations details and login methods", "type": "object", "properties": { "organizations": { "description": "Describes a list of user's organization", "type": "array", "uniqueItems": true, "items": { "description": "Describes user's organization details", "type": "object", "properties": { "authType": { "description": "Describes user's enabled authorization mode", "type": "string" }, "name": { "description": "Describes user's organization name", "type": "string" }, "redirectUrl": { "description": "Describes user's organization authentication url", "type": "string" }, "ssoLogins": { "description": "Describes the allowed sso logins", "type": "array", "uniqueItems": true, "items": { "description": "Describes the allowed sso login details", "type": "object", "properties": { "displayName": { "description": "Describes the display name for the sso login", "type": "string" }, "logo": { "description": "Describes the url path for the sso login", "type": "string" }, "name": { "description": "Describes the processed name for the sso login", "type": "string" }, "redirectUri": { "description": "Describes the sso login url for the authentication", "type": "string" } } } } } } } } } } } } }, "/v1/auth/password/{passwordToken}/activate": { "patch": { "description": "Updates and Activates user password with the help of password token", "tags": [ "v1" ], "summary": "Updates and Activates the specified user password using the password token", "operationId": "v1PasswordActivate", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "required": [ "password" ], "properties": { "password": { "description": "Describes the new password for the user", "type": "string", "format": "password" } } } } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Describes the expirable password token for the user to be used for authentication of user", "name": "passwordToken", "in": "path", "required": true } ] }, "/v1/auth/password/{passwordToken}/reset": { "patch": { "description": "Updates the new user password with the help of password token", "tags": [ "v1" ], "summary": "Resets the user password using the password token", "operationId": "v1PasswordReset", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "required": [ "password" ], "properties": { "password": { "description": "Describes the new password for the user", "type": "string", "format": "password" } } } } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Describes the expirable password token for the user to be used for authentication of user", "name": "passwordToken", "in": "path", "required": true } ] }, "/v1/auth/refresh/{token}": { "get": { "description": "Returns a new token within refresh timeout and same session id is maintained", "tags": [ "v1" ], "summary": "Refreshes authentication token", "operationId": "v1AuthRefresh", "responses": { "200": { "description": "OK", "schema": { "description": "Returns the Authorization token. To be used for further api calls", "type": "object", "properties": { "Authorization": { "description": "Describes the authentication token in jwt format.", "type": "string" }, "isMfa": { "description": "Indicates the authentication flow using MFA", "type": "boolean", "x-omitempty": false } } } } } }, "parameters": [ { "type": "boolean", "default": true, "description": "Describes a way to set cookie from backend.", "name": "setCookie", "in": "query" }, { "type": "string", "description": "Non expired Authorization token", "name": "token", "in": "path", "required": true } ] }, "/v1/auth/sso/idps": { "get": { "description": "Returns a list of predefined Identity Provider (IDP)", "tags": [ "v1" ], "summary": "Returns a list of predefined Identity Provider (IDP)", "operationId": "V1SsoIdps", "responses": { "200": { "description": "(empty)", "schema": { "description": "Describes a list of predefined Identity Provider (IDP)", "type": "array", "uniqueItems": true, "items": { "description": "Describes a predefined Identity Provider (IDP)", "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } } } } } } } }, "/v1/auth/sso/logins": { "get": { "description": "Returns a list of supported sso logins and their authentication mechanism", "tags": [ "v1" ], "summary": "Returns a list of supported sso logins", "operationId": "V1SsoLogins", "parameters": [ { "type": "string", "name": "org", "in": "query" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "Describes the allowed sso logins", "type": "array", "uniqueItems": true, "items": { "description": "Describes the allowed sso login details", "type": "object", "properties": { "displayName": { "description": "Describes the display name for the sso login", "type": "string" }, "logo": { "description": "Describes the url path for the sso login", "type": "string" }, "name": { "description": "Describes the processed name for the sso login", "type": "string" }, "redirectUri": { "description": "Describes the sso login url for the authentication", "type": "string" } } } } } } } }, "/v1/auth/sso/providers": { "get": { "description": "Returns a list of supported sso auth providers", "tags": [ "v1" ], "summary": "Returns a list of supported sso auth providers", "operationId": "V1AuthSsoProviders", "responses": { "200": { "description": "(empty)", "schema": { "description": "Describes the allowed sso logins", "type": "array", "uniqueItems": true, "items": { "description": "Describes the allowed sso login details", "type": "object", "properties": { "displayName": { "description": "Describes the display name for the sso login", "type": "string" }, "logo": { "description": "Describes the url path for the sso login", "type": "string" }, "name": { "description": "Describes the processed name for the sso login", "type": "string" }, "redirectUri": { "description": "Describes the sso login url for the authentication", "type": "string" } } } } } } } }, "/v1/auth/sso/{ssoApp}/callback": { "get": { "description": "Returns Authorization token. Works as a callback url for the system defined sso apps", "tags": [ "v1" ], "summary": "Returns Authorization token. Works as a callback url for the system defined sso apps", "operationId": "V1SsoCallback", "responses": { "200": { "description": "OK", "schema": { "description": "Returns the Authorization token. To be used for further api calls", "type": "object", "properties": { "Authorization": { "description": "Describes the authentication token in jwt format.", "type": "string" }, "isMfa": { "description": "Indicates the authentication flow using MFA", "type": "boolean", "x-omitempty": false } } } } } }, "parameters": [ { "type": "string", "description": "Describes the sso app use to login into the system", "name": "ssoApp", "in": "path", "required": true }, { "type": "string", "description": "Describes temporary and very short lived code sent by IDP to validate the token", "name": "code", "in": "query" }, { "type": "string", "description": "Describes a state to validate and associate request and response", "name": "state", "in": "query" }, { "type": "string", "description": "Describes a error code in case the IDP is not able to validate and authenticates the user", "name": "error", "in": "query" }, { "type": "string", "description": "Describes a error in case the IDP is not able to validate and authenticates the user", "name": "error_description", "in": "query" } ] }, "/v1/auth/user/org/forgot": { "get": { "description": "Returns No Content. Sends the user organization(s) information via email", "tags": [ "v1" ], "summary": "Returns No Content. Sends the user organization information via email", "operationId": "V1AuthUserOrgForgot", "parameters": [ { "type": "string", "description": "Describes user's email id for sending organzation(s) details via email.", "name": "emailId", "in": "query", "required": true } ], "responses": { "204": { "description": "Ok response without content", "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } } }, "/v1/auth/user/password/reset": { "post": { "description": "Creates request to reset password via email. Password reset email will be sent to the user. Sends 204 No Content.", "tags": [ "v1" ], "summary": "Creates request to reset password via email", "operationId": "v1PasswordResetRequest", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "type": "object", "required": [ "emailId" ], "properties": { "emailId": { "description": "Describes email if for which password reset email has to be sent", "type": "string" } } } } ], "responses": { "204": { "description": "Ok response without content", "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } } }, "/v1/cloudaccounts/aws": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of AWS cloud accounts", "operationId": "v1CloudAccountsAwsList", "parameters": [ { "type": "string", "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", "name": "fields", "in": "query" }, { "type": "string", "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", "name": "filters", "in": "query" }, { "type": "string", "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", "name": "orderBy", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of cloud account items", "schema": { "description": "List of AWS accounts", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Aws cloud account information", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "AWS cloud account which includes access key and secret key in case of 'secret' credentials type. It includes policyARNS, ARN and externalId in case of sts. Partition is a group of AWS Region and Service objects", "type": "object", "properties": { "accessKey": { "description": "AWS account access key", "type": "string" }, "credentialType": { "description": "Allowed Values [secret, sts]. STS type will be used for role assumption for sts type, accessKey/secretKey contains the source account, Arn is the target account.", "type": "string", "default": "secret", "enum": [ "secret", "sts" ] }, "partition": { "description": "AWS accounts are scoped to a single partition. Allowed values [aws, aws-us-gov], Default values", "type": "string", "default": "aws", "enum": [ "aws", "aws-us-gov" ] }, "policyARNs": { "description": "List of policy ARNs required in case of credentialType sts.", "type": "array", "items": { "type": "string" } }, "secretKey": { "description": "AWS account secret key", "type": "string" }, "sts": { "description": "Aws sts credentials", "type": "object", "properties": { "arn": { "description": "Arn for the aws sts credentials in cloud account", "type": "string" }, "externalId": { "description": "ExternalId for the aws sts credentials in cloud account", "type": "string" } } } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates an AWS cloud account", "operationId": "v1CloudAccountsAwsCreate", "parameters": [ { "description": "Request payload to validate AWS cloud account", "name": "body", "in": "body", "schema": { "description": "Aws cloud account information", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "AWS cloud account which includes access key and secret key in case of 'secret' credentials type. It includes policyARNS, ARN and externalId in case of sts. Partition is a group of AWS Region and Service objects", "type": "object", "properties": { "accessKey": { "description": "AWS account access key", "type": "string" }, "credentialType": { "description": "Allowed Values [secret, sts]. STS type will be used for role assumption for sts type, accessKey/secretKey contains the source account, Arn is the target account.", "type": "string", "default": "secret", "enum": [ "secret", "sts" ] }, "partition": { "description": "AWS accounts are scoped to a single partition. Allowed values [aws, aws-us-gov], Default values", "type": "string", "default": "aws", "enum": [ "aws", "aws-us-gov" ] }, "policyARNs": { "description": "List of policy ARNs required in case of credentialType sts.", "type": "array", "items": { "type": "string" } }, "secretKey": { "description": "AWS account secret key", "type": "string" }, "sts": { "description": "Aws sts credentials", "type": "object", "properties": { "arn": { "description": "Arn for the aws sts credentials in cloud account", "type": "string" }, "externalId": { "description": "ExternalId for the aws sts credentials in cloud account", "type": "string" } } } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } } }, "/v1/cloudaccounts/aws/{uid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified AWS account", "operationId": "v1CloudAccountsAwsGet", "parameters": [ { "type": "boolean", "default": false, "name": "assumeCredentials", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Aws cloud account information", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "AWS cloud account which includes access key and secret key in case of 'secret' credentials type. It includes policyARNS, ARN and externalId in case of sts. Partition is a group of AWS Region and Service objects", "type": "object", "properties": { "accessKey": { "description": "AWS account access key", "type": "string" }, "credentialType": { "description": "Allowed Values [secret, sts]. STS type will be used for role assumption for sts type, accessKey/secretKey contains the source account, Arn is the target account.", "type": "string", "default": "secret", "enum": [ "secret", "sts" ] }, "partition": { "description": "AWS accounts are scoped to a single partition. Allowed values [aws, aws-us-gov], Default values", "type": "string", "default": "aws", "enum": [ "aws", "aws-us-gov" ] }, "policyARNs": { "description": "List of policy ARNs required in case of credentialType sts.", "type": "array", "items": { "type": "string" } }, "secretKey": { "description": "AWS account secret key", "type": "string" }, "sts": { "description": "Aws sts credentials", "type": "object", "properties": { "arn": { "description": "Arn for the aws sts credentials in cloud account", "type": "string" }, "externalId": { "description": "ExternalId for the aws sts credentials in cloud account", "type": "string" } } } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified AWS account", "operationId": "v1CloudAccountsAwsUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Aws cloud account information", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "AWS cloud account which includes access key and secret key in case of 'secret' credentials type. It includes policyARNS, ARN and externalId in case of sts. Partition is a group of AWS Region and Service objects", "type": "object", "properties": { "accessKey": { "description": "AWS account access key", "type": "string" }, "credentialType": { "description": "Allowed Values [secret, sts]. STS type will be used for role assumption for sts type, accessKey/secretKey contains the source account, Arn is the target account.", "type": "string", "default": "secret", "enum": [ "secret", "sts" ] }, "partition": { "description": "AWS accounts are scoped to a single partition. Allowed values [aws, aws-us-gov], Default values", "type": "string", "default": "aws", "enum": [ "aws", "aws-us-gov" ] }, "policyARNs": { "description": "List of policy ARNs required in case of credentialType sts.", "type": "array", "items": { "type": "string" } }, "secretKey": { "description": "AWS account secret key", "type": "string" }, "sts": { "description": "Aws sts credentials", "type": "object", "properties": { "arn": { "description": "Arn for the aws sts credentials in cloud account", "type": "string" }, "externalId": { "description": "ExternalId for the aws sts credentials in cloud account", "type": "string" } } } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified AWS account", "operationId": "v1CloudAccountsAwsDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "AWS cloud account uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/azure": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of azure cloud accounts", "operationId": "v1CloudAccountsAzureList", "parameters": [ { "type": "string", "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", "name": "fields", "in": "query" }, { "type": "string", "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", "name": "filters", "in": "query" }, { "type": "string", "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", "name": "orderBy", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of azure cloud account items", "schema": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Azure account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "tenantId", "clientId", "clientSecret" ], "properties": { "azureEnvironment": { "description": "Contains configuration for Azure cloud", "type": "string", "default": "AzurePublicCloud", "enum": [ "AzureChinaCloud", "AzurePublicCloud", "AzureUSGovernment", "AzureUSGovernmentCloud" ] }, "clientId": { "description": "Client ID(Directory ID) is a unique identifier generated by Azure AD that is tied to an application", "type": "string" }, "clientSecret": { "description": "ClientSecret is the secret associated with Client", "type": "string" }, "settings": { "description": "Cloud account settings", "type": "object", "properties": { "disablePropertiesRequest": { "description": "Will disable certain properties request to cloud and the input is collected directly from the user", "type": "boolean", "x-omitempty": false } } }, "tenantId": { "description": "Tenant ID is the ID for the Azure AD tenant that the user belongs to.", "type": "string" }, "tenantName": { "description": "Tenant ID is the ID for the Azure AD tenant that the user belongs to.", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Create azure cloud account", "operationId": "v1CloudAccountsAzureCreate", "parameters": [ { "description": "Request payload to validate Azure cloud account", "name": "body", "in": "body", "schema": { "description": "Azure account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "tenantId", "clientId", "clientSecret" ], "properties": { "azureEnvironment": { "description": "Contains configuration for Azure cloud", "type": "string", "default": "AzurePublicCloud", "enum": [ "AzureChinaCloud", "AzurePublicCloud", "AzureUSGovernment", "AzureUSGovernmentCloud" ] }, "clientId": { "description": "Client ID(Directory ID) is a unique identifier generated by Azure AD that is tied to an application", "type": "string" }, "clientSecret": { "description": "ClientSecret is the secret associated with Client", "type": "string" }, "settings": { "description": "Cloud account settings", "type": "object", "properties": { "disablePropertiesRequest": { "description": "Will disable certain properties request to cloud and the input is collected directly from the user", "type": "boolean", "x-omitempty": false } } }, "tenantId": { "description": "Tenant ID is the ID for the Azure AD tenant that the user belongs to.", "type": "string" }, "tenantName": { "description": "Tenant ID is the ID for the Azure AD tenant that the user belongs to.", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } } }, "/v1/cloudaccounts/azure/{uid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified azure cloud account", "operationId": "v1CloudAccountsAzureGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Azure account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "tenantId", "clientId", "clientSecret" ], "properties": { "azureEnvironment": { "description": "Contains configuration for Azure cloud", "type": "string", "default": "AzurePublicCloud", "enum": [ "AzureChinaCloud", "AzurePublicCloud", "AzureUSGovernment", "AzureUSGovernmentCloud" ] }, "clientId": { "description": "Client ID(Directory ID) is a unique identifier generated by Azure AD that is tied to an application", "type": "string" }, "clientSecret": { "description": "ClientSecret is the secret associated with Client", "type": "string" }, "settings": { "description": "Cloud account settings", "type": "object", "properties": { "disablePropertiesRequest": { "description": "Will disable certain properties request to cloud and the input is collected directly from the user", "type": "boolean", "x-omitempty": false } } }, "tenantId": { "description": "Tenant ID is the ID for the Azure AD tenant that the user belongs to.", "type": "string" }, "tenantName": { "description": "Tenant ID is the ID for the Azure AD tenant that the user belongs to.", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified azure account", "operationId": "v1CloudAccountsAzureUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Azure account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "tenantId", "clientId", "clientSecret" ], "properties": { "azureEnvironment": { "description": "Contains configuration for Azure cloud", "type": "string", "default": "AzurePublicCloud", "enum": [ "AzureChinaCloud", "AzurePublicCloud", "AzureUSGovernment", "AzureUSGovernmentCloud" ] }, "clientId": { "description": "Client ID(Directory ID) is a unique identifier generated by Azure AD that is tied to an application", "type": "string" }, "clientSecret": { "description": "ClientSecret is the secret associated with Client", "type": "string" }, "settings": { "description": "Cloud account settings", "type": "object", "properties": { "disablePropertiesRequest": { "description": "Will disable certain properties request to cloud and the input is collected directly from the user", "type": "boolean", "x-omitempty": false } } }, "tenantId": { "description": "Tenant ID is the ID for the Azure AD tenant that the user belongs to.", "type": "string" }, "tenantName": { "description": "Tenant ID is the ID for the Azure AD tenant that the user belongs to.", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified azure account", "operationId": "v1CloudAccountsAzureDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Azure cloud account uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/cloudTypes/{cloudType}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of cloud accounts by cloud type", "operationId": "v1CloudAccountsCustomList", "parameters": [ { "type": "string", "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", "name": "fields", "in": "query" }, { "type": "string", "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", "name": "filters", "in": "query" }, { "type": "string", "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", "name": "orderBy", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of cloud account by specified cloud type items", "schema": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Custom account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "credentials" ], "properties": { "credentials": { "description": "Cloud account credentials", "type": "object", "additionalProperties": { "type": "string" } } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates an cloud account of specific cloud type", "operationId": "v1CloudAccountsCustomCreate", "parameters": [ { "description": "Request payload to validate Custom cloud account", "name": "body", "in": "body", "schema": { "description": "Custom account information", "type": "object", "properties": { "metadata": { "description": "ObjectMeta input entity for object creation", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" } } }, "spec": { "type": "object", "required": [ "credentials" ], "properties": { "credentials": { "description": "Cloud account credentials", "type": "object", "additionalProperties": { "type": "string" } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Custom cloud type", "name": "cloudType", "in": "path", "required": true } ] }, "/v1/cloudaccounts/cloudTypes/{cloudType}/{uid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified account by cloud type", "operationId": "v1CloudAccountsCustomGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Custom account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "credentials" ], "properties": { "credentials": { "description": "Cloud account credentials", "type": "object", "additionalProperties": { "type": "string" } } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified account by cloud type", "operationId": "v1CloudAccountsCustomUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Custom account information", "type": "object", "properties": { "metadata": { "description": "ObjectMeta input entity for object creation", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" } } }, "spec": { "type": "object", "required": [ "credentials" ], "properties": { "credentials": { "description": "Cloud account credentials", "type": "object", "additionalProperties": { "type": "string" } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified account by cloud type", "operationId": "v1CloudAccountsCustomDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Custom cloud account uid", "name": "uid", "in": "path", "required": true }, { "type": "string", "description": "Custom cloud type", "name": "cloudType", "in": "path", "required": true } ] }, "/v1/cloudaccounts/gcp": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of gcp cloud accounts", "operationId": "v1CloudAccountsGcpList", "parameters": [ { "type": "string", "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", "name": "fields", "in": "query" }, { "type": "string", "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", "name": "filters", "in": "query" }, { "type": "string", "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", "name": "orderBy", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of gcp cloud account items", "schema": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "GCP account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "properties": { "jsonCredentials": { "description": "Gcp cloud account json credentials", "type": "string" }, "jsonCredentialsFileName": { "description": "Reference of the credentials stored in the file", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates a GCP cloud account", "operationId": "v1CloudAccountsGcpCreate", "parameters": [ { "description": "Request payload to validate GCP cloud account", "name": "body", "in": "body", "schema": { "description": "GCP account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "properties": { "jsonCredentials": { "description": "Gcp cloud account json credentials", "type": "string" }, "jsonCredentialsFileUid": { "description": "Reference of the credentials stored in the file", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } } }, "/v1/cloudaccounts/gcp/{uid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified GCP cloud account", "operationId": "v1CloudAccountsGcpGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "GCP account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "properties": { "jsonCredentials": { "description": "Gcp cloud account json credentials", "type": "string" }, "jsonCredentialsFileName": { "description": "Reference of the credentials stored in the file", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified GCP account", "operationId": "v1CloudAccountsGcpUpdate", "parameters": [ { "description": "Request payload to validate GCP cloud account", "name": "body", "in": "body", "schema": { "description": "GCP account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "properties": { "jsonCredentials": { "description": "Gcp cloud account json credentials", "type": "string" }, "jsonCredentialsFileUid": { "description": "Reference of the credentials stored in the file", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified GCP account", "operationId": "v1CloudAccountsGcpDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "GCP cloud account uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/maas": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of Maas cloud accounts", "operationId": "v1CloudAccountsMaasList", "parameters": [ { "type": "string", "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", "name": "fields", "in": "query" }, { "type": "string", "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", "name": "filters", "in": "query" }, { "type": "string", "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", "name": "orderBy", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of cloud account items", "schema": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Maas cloud account information", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "apiKey", "apiEndpoint" ], "properties": { "apiEndpoint": { "type": "string" }, "apiKey": { "type": "string" }, "preferredSubnets": { "description": "list of preferred subnets order in the list reflects order in which subnets will be selected for ip address selection in apiserver dns endpoint this way user can specify external or preferable subnet \"10.11.130.0/24,10.10.10.0/24\"", "type": "array", "items": { "type": "string", "default": "" } } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates an Maas cloud account", "operationId": "v1CloudAccountsMaasCreate", "parameters": [ { "description": "Request payload to validate Maas cloud account", "name": "body", "in": "body", "schema": { "description": "Maas cloud account information", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "apiKey", "apiEndpoint" ], "properties": { "apiEndpoint": { "type": "string" }, "apiKey": { "type": "string" }, "preferredSubnets": { "description": "list of preferred subnets order in the list reflects order in which subnets will be selected for ip address selection in apiserver dns endpoint this way user can specify external or preferable subnet \"10.11.130.0/24,10.10.10.0/24\"", "type": "array", "items": { "type": "string", "default": "" } } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } } }, "/v1/cloudaccounts/maas/{uid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified Maas account", "operationId": "v1CloudAccountsMaasGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Maas cloud account information", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "apiKey", "apiEndpoint" ], "properties": { "apiEndpoint": { "type": "string" }, "apiKey": { "type": "string" }, "preferredSubnets": { "description": "list of preferred subnets order in the list reflects order in which subnets will be selected for ip address selection in apiserver dns endpoint this way user can specify external or preferable subnet \"10.11.130.0/24,10.10.10.0/24\"", "type": "array", "items": { "type": "string", "default": "" } } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified Maas account", "operationId": "v1CloudAccountsMaasUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Maas cloud account information", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "apiKey", "apiEndpoint" ], "properties": { "apiEndpoint": { "type": "string" }, "apiKey": { "type": "string" }, "preferredSubnets": { "description": "list of preferred subnets order in the list reflects order in which subnets will be selected for ip address selection in apiserver dns endpoint this way user can specify external or preferable subnet \"10.11.130.0/24,10.10.10.0/24\"", "type": "array", "items": { "type": "string", "default": "" } } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified Maas account", "operationId": "v1CloudAccountsMaasDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "patch": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Patches the specified CloudAccount Maas", "operationId": "v1CloudAccountsMaasPatch", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "type": "array", "items": { "type": "object", "required": [ "op", "path" ], "properties": { "from": { "description": "A path to the pointer from which reference will be taken", "type": "string" }, "op": { "description": "The operation to be performed", "type": "string", "enum": [ "add", "remove", "replace", "move", "copy" ] }, "path": { "description": "A path to the pointer on which operation will be done", "type": "string" }, "value": { "description": "The value to be used within the operations.", "type": "object" } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Maas cloud account uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/maas/{uid}/properties/azs": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Get the maas azs for a given account", "operationId": "v1MaasAccountsUidAzs", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "List of Maas zones", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Maas zone", "type": "object", "properties": { "description": { "description": "Description of Maas domain", "type": "string" }, "name": { "description": "Name of Maas zone", "type": "string" } } } } } } } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/maas/{uid}/properties/domains": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Get the maas domains for a given account", "operationId": "v1MaasAccountsUidDomains", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "List of Maas domains", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Maas domain", "type": "object", "properties": { "name": { "description": "Name of Maas domain", "type": "string" } } } } } } } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/maas/{uid}/properties/resourcePools": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Get the maas pools for a given account", "operationId": "v1MaasAccountsUidPools", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "List of Maas pools", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Maas pool", "type": "object", "properties": { "description": { "description": "Description of Maas domain", "type": "string" }, "name": { "description": "Name of Maas pool", "type": "string" } } } } } } } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/maas/{uid}/properties/subnets": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Get the maas subnets for a given account", "operationId": "v1MaasAccountsUidSubnets", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "List of Maas subnets", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Maas subnet", "type": "object", "properties": { "id": { "description": "Id of Maas subnet", "type": "integer" }, "name": { "description": "Name of Maas subnet", "type": "string" }, "space": { "description": "Space associated with Maas subnet", "type": "string" }, "vlans": { "description": "Maas vlan entity", "type": "object", "properties": { "fabric": { "description": "Fabric associated with Maas Vlan", "type": "string" }, "id": { "description": "Id of Maas Vlan", "type": "integer" }, "name": { "description": "Name of Maas Vlan", "type": "string" } } } } } } } } } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/maas/{uid}/properties/tags": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Get the maas tags for a given account", "operationId": "v1MaasAccountsUidTags", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "List of Maas tags", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Maas tag", "type": "object", "properties": { "comment": { "description": "Comment on Maas tag", "type": "string" }, "definition": { "description": "Definition of Maas tag", "type": "string" }, "kernelOpts": { "description": "Kernel Opts on Maas tag", "type": "string" }, "name": { "description": "Name of Maas tag", "type": "string" }, "resourceUri": { "description": "Description of Maas tag", "type": "string" } } } } } } } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/openstack": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of OpenStack cloud accounts", "operationId": "v1CloudAccountsOpenStackList", "parameters": [ { "type": "string", "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", "name": "fields", "in": "query" }, { "type": "string", "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", "name": "filters", "in": "query" }, { "type": "string", "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", "name": "orderBy", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of cloud account items", "schema": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "OpenStack account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "auth-url,project,username,password,domain,cacert etc", "type": "object", "required": [ "identityEndpoint", "username", "password" ], "properties": { "caCert": { "description": "Ca cert for OpenStack", "type": "string" }, "defaultDomain": { "description": "Default Domain name", "type": "string" }, "defaultProject": { "description": "Default Project name", "type": "string" }, "identityEndpoint": { "description": "Identity endpoint for OpenStack", "type": "string" }, "insecure": { "description": "For self signed certs in IdentityEndpoint", "type": "boolean" }, "parentRegion": { "description": "Parent region of OpenStack", "type": "string" }, "password": { "description": "Password of OpenStack account", "type": "string" }, "username": { "description": "Username of OpenStack account", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates a OpenStack cloud account", "operationId": "v1CloudAccountsOpenStackCreate", "parameters": [ { "description": "Request payload to validate OpenStack cloud account", "name": "body", "in": "body", "schema": { "description": "OpenStack account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "auth-url,project,username,password,domain,cacert etc", "type": "object", "required": [ "identityEndpoint", "username", "password" ], "properties": { "caCert": { "description": "Ca cert for OpenStack", "type": "string" }, "defaultDomain": { "description": "Default Domain name", "type": "string" }, "defaultProject": { "description": "Default Project name", "type": "string" }, "identityEndpoint": { "description": "Identity endpoint for OpenStack", "type": "string" }, "insecure": { "description": "For self signed certs in IdentityEndpoint", "type": "boolean" }, "parentRegion": { "description": "Parent region of OpenStack", "type": "string" }, "password": { "description": "Password of OpenStack account", "type": "string" }, "username": { "description": "Username of OpenStack account", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } } }, "/v1/cloudaccounts/openstack/{uid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified OpenStack account", "operationId": "v1CloudAccountsOpenStackGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "OpenStack account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "auth-url,project,username,password,domain,cacert etc", "type": "object", "required": [ "identityEndpoint", "username", "password" ], "properties": { "caCert": { "description": "Ca cert for OpenStack", "type": "string" }, "defaultDomain": { "description": "Default Domain name", "type": "string" }, "defaultProject": { "description": "Default Project name", "type": "string" }, "identityEndpoint": { "description": "Identity endpoint for OpenStack", "type": "string" }, "insecure": { "description": "For self signed certs in IdentityEndpoint", "type": "boolean" }, "parentRegion": { "description": "Parent region of OpenStack", "type": "string" }, "password": { "description": "Password of OpenStack account", "type": "string" }, "username": { "description": "Username of OpenStack account", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified OpenStack account", "operationId": "v1CloudAccountsOpenStackUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "OpenStack account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "auth-url,project,username,password,domain,cacert etc", "type": "object", "required": [ "identityEndpoint", "username", "password" ], "properties": { "caCert": { "description": "Ca cert for OpenStack", "type": "string" }, "defaultDomain": { "description": "Default Domain name", "type": "string" }, "defaultProject": { "description": "Default Project name", "type": "string" }, "identityEndpoint": { "description": "Identity endpoint for OpenStack", "type": "string" }, "insecure": { "description": "For self signed certs in IdentityEndpoint", "type": "boolean" }, "parentRegion": { "description": "Parent region of OpenStack", "type": "string" }, "password": { "description": "Password of OpenStack account", "type": "string" }, "username": { "description": "Username of OpenStack account", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified OpenStack account", "operationId": "v1CloudAccountsOpenStackDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "OpenStack cloud account uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/openstack/{uid}/properties/azs": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Get the openstack azs for a given account and region", "operationId": "v1OpenstackAccountsUidAzs", "parameters": [ { "type": "string", "name": "region", "in": "query" }, { "type": "string", "name": "project", "in": "query" }, { "type": "string", "name": "domain", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "List of OpenStack azs", "type": "object", "required": [ "azs" ], "properties": { "azs": { "type": "array", "uniqueItems": true, "items": { "description": "OpenStack az entity", "type": "object", "properties": { "name": { "description": "Name of OpenStack az", "type": "string" } } } } } } } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/openstack/{uid}/properties/flavors": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Get the openstack keypairs for a given account and scope", "operationId": "v1OpenstackAccountsUidFlavors", "parameters": [ { "type": "string", "name": "project", "in": "query" }, { "type": "string", "name": "region", "in": "query" }, { "type": "string", "name": "domain", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "List of OpenStack flavours", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "OpenStack flavor entity. Flavor represent (virtual) hardware configurations for server resources", "type": "object", "properties": { "disk": { "description": "Disk is the amount of root disk, measured in GB", "type": "integer" }, "ephemeral": { "description": "Ephemeral is the amount of ephemeral disk space, measured in GB", "type": "integer" }, "id": { "description": "ID is the flavor's unique ID", "type": "string" }, "memory": { "description": "Amount of memory, measured in MB", "type": "integer" }, "name": { "description": "Name is the name of the flavor", "type": "string" }, "vcpus": { "description": "VCPUs indicates how many (virtual) CPUs are available for this flavor", "type": "integer" } } } } } } } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/openstack/{uid}/properties/keypairs": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Get the openstack keypairs for a given account and scope", "operationId": "v1OpenstackAccountsUidKeypairs", "parameters": [ { "type": "string", "name": "project", "in": "query" }, { "type": "string", "name": "region", "in": "query" }, { "type": "string", "name": "domain", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "List of OpenStack keypairs", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "OpenStack keypair. KeyPair is an SSH key known to the OpenStack Cloud that is available to be injected into servers", "type": "object", "properties": { "name": { "description": "Name is used to refer to this keypair from other services within this region", "type": "string" }, "publicKey": { "description": "PublicKey is the public key from this pair, in OpenSSH format", "type": "string" } } } } } } } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/openstack/{uid}/properties/networks": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Get the openstack networks for a given account and scope", "operationId": "v1OpenstackAccountsUidNetworks", "parameters": [ { "type": "string", "name": "project", "in": "query" }, { "type": "string", "name": "region", "in": "query" }, { "type": "string", "name": "domain", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "List of OpenStack networks", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "OpenStack network", "type": "object", "properties": { "description": { "description": "Description of OpenStack network", "type": "string" }, "id": { "description": "Id of OpenStack network", "type": "string" }, "name": { "description": "Name of OpenStack network", "type": "string" }, "subnets": { "description": "Subnets associated with OpenStack network", "type": "array", "uniqueItems": true, "items": { "description": "OpenStack subnet entity", "type": "object", "properties": { "description": { "description": "Description for the network", "type": "string" }, "id": { "description": "UUID for the network", "type": "string" }, "name": { "description": "Human-readable name for the network. Might not be unique", "type": "string" } } } } } } } } } } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/openstack/{uid}/properties/projects": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Get the openstack projects for a given account", "operationId": "v1OpenstackAccountsUidProjects", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "Array of OpenStack projects", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Project represents an OpenStack Identity Project", "type": "object", "properties": { "description": { "description": "Description is the description of the project", "type": "string" }, "domainId": { "description": "DomainID is the domain ID the project belongs to", "type": "string" }, "id": { "description": "ID is the unique ID of the project", "type": "string" }, "name": { "description": "Name is the name of the project", "type": "string" }, "parentProjectId": { "description": "ParentID is the parent_id of the project", "type": "string" } } } } } } } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/openstack/{uid}/properties/regions": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Get the openstack regions for a given account", "operationId": "v1OpenstackAccountsUidRegions", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "List of OpenStack regions and domains", "type": "object", "required": [ "regions", "domains" ], "properties": { "domains": { "description": "List of OpenStack domains", "type": "array", "uniqueItems": true, "items": { "description": "OpenStack domain. A Domain is a collection of projects, users, and roles", "type": "object", "properties": { "description": { "description": "Description is the description of the Domain", "type": "string" }, "id": { "description": "ID is the unique ID of the domain", "type": "string" }, "name": { "description": "Name is the name of the domain", "type": "string" } } } }, "regions": { "description": "List of OpenStack regions", "type": "array", "uniqueItems": true, "items": { "description": "OpenStack region entity", "type": "object", "properties": { "description": { "description": "Description of OpenStack region", "type": "string" }, "id": { "description": "Id of OpenStack region", "type": "string" }, "parentRegionId": { "description": "Parent region id of OpenStack region", "type": "string" } } } } } } } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/summary": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of cloud accounts summary", "operationId": "v1CloudAccountsListSummary", "parameters": [ { "type": "string", "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", "name": "filters", "in": "query" }, { "type": "string", "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", "name": "orderBy", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of cloud account summary items", "schema": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Cloud account summary", "type": "object", "properties": { "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "specSummary": { "description": "Cloud account spec summary", "type": "object", "properties": { "accountId": { "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } } }, "/v1/cloudaccounts/tencent": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of Tencent cloud accounts", "operationId": "v1CloudAccountsTencentList", "parameters": [ { "type": "string", "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", "name": "fields", "in": "query" }, { "type": "string", "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", "name": "filters", "in": "query" }, { "type": "string", "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", "name": "orderBy", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of cloud account items", "schema": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Tencent cloud account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "secretId", "secretKey" ], "properties": { "secretId": { "description": "Tencent api secretID", "type": "string" }, "secretKey": { "description": "Tencent api secret key", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates an Tencent cloud account", "operationId": "v1CloudAccountsTencentCreate", "parameters": [ { "description": "Request payload to validate Tencent cloud account", "name": "body", "in": "body", "schema": { "description": "Tencent cloud account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "secretId", "secretKey" ], "properties": { "secretId": { "description": "Tencent api secretID", "type": "string" }, "secretKey": { "description": "Tencent api secret key", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } } }, "/v1/cloudaccounts/tencent/{uid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified Tencent account", "operationId": "v1CloudAccountsTencentGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Tencent cloud account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "secretId", "secretKey" ], "properties": { "secretId": { "description": "Tencent api secretID", "type": "string" }, "secretKey": { "description": "Tencent api secret key", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified Tencent account", "operationId": "v1CloudAccountsTencentUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Tencent cloud account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "secretId", "secretKey" ], "properties": { "secretId": { "description": "Tencent api secretID", "type": "string" }, "secretKey": { "description": "Tencent api secret key", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified Tencent account", "operationId": "v1CloudAccountsTencentDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Tencent cloud account uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/vsphere": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of vSphere cloud accounts", "operationId": "v1CloudAccountsVsphereList", "parameters": [ { "type": "string", "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", "name": "fields", "in": "query" }, { "type": "string", "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", "name": "filters", "in": "query" }, { "type": "string", "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", "name": "orderBy", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of cloud account items", "schema": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "VSphere account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "vcenterServer", "username", "password" ], "properties": { "insecure": { "description": "Insecure is a flag that controls whether or not to validate the vSphere server's certificate.", "type": "boolean", "x-omitempty": false }, "password": { "type": "string" }, "username": { "type": "string" }, "vcenterServer": { "description": "VcenterServer is the address of the vSphere endpoint", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates a vSphere cloud account", "operationId": "v1CloudAccountsVsphereCreate", "parameters": [ { "description": "Request payload to validate VSphere cloud account", "name": "body", "in": "body", "schema": { "description": "VSphere account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "vcenterServer", "username", "password" ], "properties": { "insecure": { "description": "Insecure is a flag that controls whether or not to validate the vSphere server's certificate.", "type": "boolean", "x-omitempty": false }, "password": { "type": "string" }, "username": { "type": "string" }, "vcenterServer": { "description": "VcenterServer is the address of the vSphere endpoint", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } } }, "/v1/cloudaccounts/vsphere/{uid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified vSphere account", "operationId": "v1CloudAccountsVsphereGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "VSphere account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "vcenterServer", "username", "password" ], "properties": { "insecure": { "description": "Insecure is a flag that controls whether or not to validate the vSphere server's certificate.", "type": "boolean", "x-omitempty": false }, "password": { "type": "string" }, "username": { "type": "string" }, "vcenterServer": { "description": "VcenterServer is the address of the vSphere endpoint", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified VSphere account", "operationId": "v1CloudAccountsVsphereUpdate", "parameters": [ { "description": "Request payload to validate VSphere cloud account", "name": "body", "in": "body", "schema": { "description": "VSphere account information", "type": "object", "properties": { "apiVersion": { "description": "Cloud account api version", "type": "string" }, "kind": { "description": "Cloud account kind", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "type": "object", "required": [ "vcenterServer", "username", "password" ], "properties": { "insecure": { "description": "Insecure is a flag that controls whether or not to validate the vSphere server's certificate.", "type": "boolean", "x-omitempty": false }, "password": { "type": "string" }, "username": { "type": "string" }, "vcenterServer": { "description": "VcenterServer is the address of the vSphere endpoint", "type": "string" } } }, "status": { "description": "Status of the account", "type": "object", "properties": { "state": { "description": "Cloud account status", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified vSphere account", "operationId": "v1CloudAccountsVsphereDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "VSphere cloud account uid", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/vsphere/{uid}/properties/computecluster/resources": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Get the vSphere computecluster resources for the given overlord account", "operationId": "v1VsphereAccountsUidClusterRes", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "Datacenter and its resources like datastore, resoucepool, folders", "type": "object", "properties": { "computecluster": { "description": "Vsphere compute cluster", "type": "object", "properties": { "datastores": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "name": { "type": "string" }, "networks": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "resourcePools": { "type": "array", "uniqueItems": true, "items": { "type": "string" } } } }, "datacenter": { "description": "Name of the datacenter", "type": "string" } } } } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true }, { "type": "string", "name": "datacenter", "in": "query", "required": true }, { "type": "string", "name": "computecluster", "in": "query", "required": true }, { "type": "boolean", "name": "useQualifiedNetworkName", "in": "query" } ] }, "/v1/cloudaccounts/vsphere/{uid}/properties/datacenters": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Get the vSphere datacenters \u0026 datacluster for the given overlord account", "operationId": "v1VsphereAccountsUidDatacenters", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "(empty)", "schema": { "description": "List of Datacenters with computeclusters", "type": "object", "required": [ "items" ], "properties": { "items": { "description": "List of associated datacenters", "type": "array", "uniqueItems": true, "items": { "description": "List of Datacenter with computeclusters", "type": "object", "properties": { "computeclusters": { "description": "List of the VSphere compute clusters in datacenter", "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "datacenter": { "description": "name of the datacenter of the VSphere", "type": "string" }, "folders": { "description": "List of the VSphere folders in datacenter", "type": "array", "uniqueItems": true, "items": { "type": "string" } } } } } } } } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudaccounts/{uid}/geoLocation": { "patch": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Update the geolocation annotation", "operationId": "v1AccountsGeolocationPatch", "parameters": [ { "name": "body", "in": "body", "required": true, "schema": { "description": "Geolocation Latlong entity", "type": "object", "properties": { "latitude": { "description": "Latitude of a resource", "type": "number", "format": "float64", "x-omitempty": false }, "longitude": { "description": "Longitude of a resource", "type": "number", "format": "float64", "x-omitempty": false } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "name": "uid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/aks/{configUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified AKS cloud config", "operationId": "v1CloudConfigsAksGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "AzureCloudConfig is the Schema for the azurecloudconfigs API", "type": "object", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "AzureCloudConfigSpec defines the cloud configuration input by user This will translate to clusterspec/machinespec for cluster-api", "type": "object", "properties": { "cloudAccountRef": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", "type": "object", "properties": { "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } } }, "clusterConfig": { "description": "Cluster level configuration for Azure cloud and applicable for all the machine pools", "type": "object", "required": [ "subscriptionId", "location", "sshKey" ], "properties": { "aadProfile": { "description": "AADProfile - AAD integration is managed by AKS.", "type": "object", "required": [ "managed", "adminGroupObjectIDs" ], "properties": { "adminGroupObjectIDs": { "description": "AdminGroupObjectIDs - AAD group object IDs that will have admin role of the cluster.", "type": "array", "items": { "type": "string" } }, "managed": { "description": "Managed - Whether to enable managed AAD.", "type": "boolean", "x-omitempty": false } } }, "apiServerAccessProfile": { "description": "APIServerAccessProfile - access profile for AKS API server.", "type": "object", "properties": { "authorizedIPRanges": { "description": "AuthorizedIPRanges - Authorized IP Ranges to kubernetes API server.", "type": "array", "items": { "type": "string", "default": "" } }, "enablePrivateCluster": { "description": "EnablePrivateCluster - Whether to create the cluster as a private cluster or not.", "type": "boolean" }, "enablePrivateClusterPublicFQDN": { "description": "EnablePrivateClusterPublicFQDN - Whether to create additional public FQDN for private cluster or not.", "type": "boolean" }, "privateDNSZone": { "description": "PrivateDNSZone - Private dns zone mode for private cluster.", "type": "string" } } }, "containerName": { "type": "string" }, "controlPlaneSubnet": { "type": "object", "properties": { "cidrBlock": { "description": "CidrBlock is the CIDR block to be used when the provider creates a managed Vnet.", "type": "string" }, "name": { "type": "string" }, "securityGroupName": { "description": "Network Security Group(NSG) to be attached to subnet. NSG for a control plane subnet, should allow inbound to port 6443, as port 6443 is used by kubeadm to bootstrap the control planes", "type": "string" } } }, "enablePrivateCluster": { "description": "Deprecated. use apiServerAccessProfile.enablePrivateCluster", "type": "boolean" }, "infraLBConfig": { "type": "object", "properties": { "apiServerLB": { "description": "LoadBalancerSpec defines an Azure load balancer.", "type": "object", "properties": { "apiServerLBStaticIP": { "type": "string" }, "ipAllocationMethod": { "type": "string", "default": "Dynamic", "enum": [ "Static", "Dynamic" ] }, "privateDNSName": { "type": "string" }, "type": { "description": "Load Balancer type", "type": "string", "default": "Public", "enum": [ "Internal", "Public" ] } } } } }, "location": { "description": "Location is the Azure datacenter location", "type": "string" }, "resourceGroup": { "type": "string" }, "sshKey": { "type": "string" }, "storageAccountName": { "type": "string" }, "subscriptionId": { "description": "Subscription ID is unique identifier for the subscription used to access Azure services", "type": "string" }, "vnetCidrBlock": { "type": "string" }, "vnetName": { "description": "VNETName is the virtual network in which the cluster is to be provisioned.", "type": "string" }, "vnetResourceGroup": { "type": "string" }, "workerSubnet": { "type": "object", "properties": { "cidrBlock": { "description": "CidrBlock is the CIDR block to be used when the provider creates a managed Vnet.", "type": "string" }, "name": { "type": "string" }, "securityGroupName": { "description": "Network Security Group(NSG) to be attached to subnet. NSG for a control plane subnet, should allow inbound to port 6443, as port 6443 is used by kubeadm to bootstrap the control planes", "type": "string" } } } } }, "machinePoolConfig": { "type": "array", "items": { "type": "object", "required": [ "isControlPlane" ], "properties": { "additionalLabels": { "description": "additionalLabels", "type": "object", "additionalProperties": { "type": "string" } }, "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole", "type": "object", "additionalProperties": { "type": "string" } }, "azs": { "type": "array", "items": { "type": "string" } }, "instanceConfig": { "properties": { "category": { "type": "string" }, "cpuSet": { "type": "integer", "format": "int64" }, "diskGiB": { "type": "integer", "format": "int64" }, "memoryMiB": { "description": "MemoryMiB is the size of a virtual machine's memory, in MiB", "type": "integer", "format": "int64" }, "name": { "type": "string" }, "numCPUs": { "description": "NumCPUs is the number of virtual processors in a virtual machine", "type": "integer", "format": "int32" } } }, "instanceType": { "description": "Instance type stands for VMSize in Azure", "type": "string" }, "isControlPlane": { "description": "whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "isSystemNodePool": { "description": "whether this pool is for system node Pool", "type": "boolean", "x-omitempty": false }, "labels": { "description": "labels for this pool, example: control-plane/worker, gpu, windows", "type": "array", "items": { "type": "string" } }, "machinePoolProperties": { "description": "Machine pool specific properties", "type": "object", "properties": { "archType": { "type": "string", "default": "amd64", "enum": [ "amd64", "arm64" ] } } }, "maxSize": { "description": "max size of the pool, for scaling", "type": "integer", "format": "int32" }, "minSize": { "description": "min size of the pool, for scaling", "type": "integer", "format": "int32" }, "name": { "type": "string" }, "nodeRepaveInterval": { "description": "Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster", "type": "integer", "format": "int32" }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] }, "size": { "description": "size of the pool, number of machines", "type": "integer", "format": "int32" }, "spotVMOptions": { "description": "SpotVMOptions defines the options relevant to running the Machine on Spot VMs", "type": "object", "properties": { "maxPrice": { "description": "MaxPrice defines the maximum price the user is willing to pay for Spot VM instances", "type": "string" } } }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "updateStrategy": { "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut =\u003e maxSurge=1, maxUnavailable=0 ScaleIn =\u003e maxSurge=0, maxUnavailable=1", "type": "object", "properties": { "type": { "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", "type": "string", "enum": [ "RollingUpdateScaleOut", "RollingUpdateScaleIn" ] } } }, "useControlPlaneAsWorker": { "description": "if IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } }, "status": { "description": "AzureCloudConfigStatus defines the observed state of AzureCloudConfig The cloudimage info built by Mold is stored here image should be mapped to a specific machinepool", "type": "object", "properties": { "ansibleRoleDigest": { "description": "For mold controller to identify if is there any changes in Pack", "type": "string" }, "conditions": { "description": "spectroAnsibleProvisioner: should be added only once, subsequent recocile will use the same provisioner SpectroAnsiblePacker bool `json:\"spectroAnsiblePacker,omitempty\"`", "type": "array", "items": { "type": "object", "required": [ "type", "status" ], "properties": { "lastProbeTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "lastTransitionTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "message": { "description": "Human-readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "Unique, one-word, CamelCase reason for the condition's last transition.", "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "images": { "description": "Refers to Azure Shared Gallery image", "type": "object", "properties": { "gallery": { "type": "string" }, "name": { "type": "string" }, "resourceGroup": { "type": "string" }, "state": { "type": "string" }, "subscriptionID": { "type": "string" }, "version": { "type": "string" } } }, "isAddonLayer": { "description": "addon layers present in spc", "type": "boolean" }, "roleDigest": { "description": "this map will be for ansible roles present in eack pack", "type": "object", "additionalProperties": { "type": "string" } }, "sourceImageId": { "description": "sourceImageId, it can be from packref's annotations or from pack.json", "type": "string" }, "useCapiImage": { "description": "PackerVariableDigest string `json:\"packerDigest,omitempty\"` If no ansible roles found in Packs then Mold should tell Drive to use capi image and not create custom image, because there is nothing to add", "type": "boolean" }, "vhdImage": { "description": "Mold always create VHD image for custom image, and this can be use as golden images", "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "os": { "type": "string" }, "region": { "type": "string" }, "state": { "type": "string" } } } } } } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/aks/{configUid}/clusterConfig": { "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the cluster configuration information", "operationId": "v1CloudConfigsAksUidClusterConfig", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Azure cloud cluster config entity", "type": "object", "properties": { "clusterConfig": { "description": "Cluster level configuration for Azure cloud and applicable for all the machine pools", "type": "object", "required": [ "subscriptionId", "location", "sshKey" ], "properties": { "aadProfile": { "description": "AADProfile - AAD integration is managed by AKS.", "type": "object", "required": [ "managed", "adminGroupObjectIDs" ], "properties": { "adminGroupObjectIDs": { "description": "AdminGroupObjectIDs - AAD group object IDs that will have admin role of the cluster.", "type": "array", "items": { "type": "string" } }, "managed": { "description": "Managed - Whether to enable managed AAD.", "type": "boolean", "x-omitempty": false } } }, "apiServerAccessProfile": { "description": "APIServerAccessProfile - access profile for AKS API server.", "type": "object", "properties": { "authorizedIPRanges": { "description": "AuthorizedIPRanges - Authorized IP Ranges to kubernetes API server.", "type": "array", "items": { "type": "string", "default": "" } }, "enablePrivateCluster": { "description": "EnablePrivateCluster - Whether to create the cluster as a private cluster or not.", "type": "boolean" }, "enablePrivateClusterPublicFQDN": { "description": "EnablePrivateClusterPublicFQDN - Whether to create additional public FQDN for private cluster or not.", "type": "boolean" }, "privateDNSZone": { "description": "PrivateDNSZone - Private dns zone mode for private cluster.", "type": "string" } } }, "containerName": { "type": "string" }, "controlPlaneSubnet": { "type": "object", "properties": { "cidrBlock": { "description": "CidrBlock is the CIDR block to be used when the provider creates a managed Vnet.", "type": "string" }, "name": { "type": "string" }, "securityGroupName": { "description": "Network Security Group(NSG) to be attached to subnet. NSG for a control plane subnet, should allow inbound to port 6443, as port 6443 is used by kubeadm to bootstrap the control planes", "type": "string" } } }, "enablePrivateCluster": { "description": "Deprecated. use apiServerAccessProfile.enablePrivateCluster", "type": "boolean" }, "infraLBConfig": { "type": "object", "properties": { "apiServerLB": { "description": "LoadBalancerSpec defines an Azure load balancer.", "type": "object", "properties": { "apiServerLBStaticIP": { "type": "string" }, "ipAllocationMethod": { "type": "string", "default": "Dynamic", "enum": [ "Static", "Dynamic" ] }, "privateDNSName": { "type": "string" }, "type": { "description": "Load Balancer type", "type": "string", "default": "Public", "enum": [ "Internal", "Public" ] } } } } }, "location": { "description": "Location is the Azure datacenter location", "type": "string" }, "resourceGroup": { "type": "string" }, "sshKey": { "type": "string" }, "storageAccountName": { "type": "string" }, "subscriptionId": { "description": "Subscription ID is unique identifier for the subscription used to access Azure services", "type": "string" }, "vnetCidrBlock": { "type": "string" }, "vnetName": { "description": "VNETName is the virtual network in which the cluster is to be provisioned.", "type": "string" }, "vnetResourceGroup": { "type": "string" }, "workerSubnet": { "type": "object", "properties": { "cidrBlock": { "description": "CidrBlock is the CIDR block to be used when the provider creates a managed Vnet.", "type": "string" }, "name": { "type": "string" }, "securityGroupName": { "description": "Network Security Group(NSG) to be attached to subnet. NSG for a control plane subnet, should allow inbound to port 6443, as port 6443 is used by kubeadm to bootstrap the control planes", "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/aks/{configUid}/machinePools": { "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates an AKS cloud config's machine pool", "operationId": "v1CloudConfigsAksMachinePoolCreate", "parameters": [ { "name": "body", "in": "body", "schema": { "type": "object", "required": [ "cloudConfig" ], "properties": { "cloudConfig": { "type": "object", "properties": { "azs": { "type": "array", "items": { "type": "string" } }, "instanceType": { "description": "Instance type stands for VMSize in Azure", "type": "string" }, "isSystemNodePool": { "description": "whether this pool is for system node Pool", "type": "boolean" }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } } } }, "managedPoolConfig": { "type": "object", "properties": { "isSystemNodePool": { "description": "whether this pool is for system node Pool", "type": "boolean", "x-omitempty": false }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "poolConfig": { "description": "Machine pool configuration for the cluster", "type": "object", "required": [ "name", "size", "labels" ], "properties": { "additionalLabels": { "description": "Additional labels to be part of the machine pool", "type": "object", "additionalProperties": { "type": "string" } }, "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole", "type": "object", "additionalProperties": { "type": "string" } }, "isControlPlane": { "description": "Whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "labels": { "description": "Labels for this machine pool, example: control-plane/worker, gpu, windows", "type": "array", "items": { "type": "string" } }, "machinePoolProperties": { "description": "Machine pool specific properties", "type": "object", "properties": { "archType": { "type": "string", "default": "amd64", "enum": [ "amd64", "arm64" ] } } }, "maxSize": { "description": "Max size of the pool, for scaling", "type": "integer", "format": "int32" }, "minSize": { "description": "Min size of the pool, for scaling", "type": "integer", "format": "int32" }, "name": { "type": "string" }, "nodeRepaveInterval": { "description": "Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster", "type": "integer", "format": "int32" }, "size": { "description": "Size of the pool, number of nodes/machines", "type": "integer", "format": "int32" }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "updateStrategy": { "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut =\u003e maxSurge=1, maxUnavailable=0 ScaleIn =\u003e maxSurge=0, maxUnavailable=1", "type": "object", "properties": { "type": { "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", "type": "string", "enum": [ "RollingUpdateScaleOut", "RollingUpdateScaleIn" ] } } }, "useControlPlaneAsWorker": { "description": "If IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/aks/{configUid}/machinePools/{machinePoolName}": { "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified AKS cloud config's machine pool", "operationId": "v1CloudConfigsAksMachinePoolUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "type": "object", "required": [ "cloudConfig" ], "properties": { "cloudConfig": { "type": "object", "properties": { "azs": { "type": "array", "items": { "type": "string" } }, "instanceType": { "description": "Instance type stands for VMSize in Azure", "type": "string" }, "isSystemNodePool": { "description": "whether this pool is for system node Pool", "type": "boolean" }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } } } }, "managedPoolConfig": { "type": "object", "properties": { "isSystemNodePool": { "description": "whether this pool is for system node Pool", "type": "boolean", "x-omitempty": false }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "poolConfig": { "description": "Machine pool configuration for the cluster", "type": "object", "required": [ "name", "size", "labels" ], "properties": { "additionalLabels": { "description": "Additional labels to be part of the machine pool", "type": "object", "additionalProperties": { "type": "string" } }, "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole", "type": "object", "additionalProperties": { "type": "string" } }, "isControlPlane": { "description": "Whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "labels": { "description": "Labels for this machine pool, example: control-plane/worker, gpu, windows", "type": "array", "items": { "type": "string" } }, "machinePoolProperties": { "description": "Machine pool specific properties", "type": "object", "properties": { "archType": { "type": "string", "default": "amd64", "enum": [ "amd64", "arm64" ] } } }, "maxSize": { "description": "Max size of the pool, for scaling", "type": "integer", "format": "int32" }, "minSize": { "description": "Min size of the pool, for scaling", "type": "integer", "format": "int32" }, "name": { "type": "string" }, "nodeRepaveInterval": { "description": "Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster", "type": "integer", "format": "int32" }, "size": { "description": "Size of the pool, number of nodes/machines", "type": "integer", "format": "int32" }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "updateStrategy": { "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut =\u003e maxSurge=1, maxUnavailable=0 ScaleIn =\u003e maxSurge=0, maxUnavailable=1", "type": "object", "properties": { "type": { "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", "type": "string", "enum": [ "RollingUpdateScaleOut", "RollingUpdateScaleIn" ] } } }, "useControlPlaneAsWorker": { "description": "If IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified machine pool", "operationId": "v1CloudConfigsAksMachinePoolDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true } ] }, "/v1/cloudconfigs/aks/{configUid}/machinePools/{machinePoolName}/machines": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of AKS machines", "operationId": "v1CloudConfigsAksPoolMachinesList", "parameters": [ { "type": "string", "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", "name": "fields", "in": "query" }, { "type": "string", "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", "name": "filters", "in": "query" }, { "type": "string", "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", "name": "orderBy", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of AKS machine items", "schema": { "description": "Azure machine list", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Azure cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Azure cloud VM definition spec", "type": "object", "required": [ "instanceType", "location", "osDisk" ], "properties": { "additionalTags": { "type": "object", "additionalProperties": { "type": "string" } }, "allocatePublicIP": { "type": "boolean" }, "availabilityZone": { "description": "Azure Machine Spec Availability zone", "type": "object", "properties": { "enabled": { "type": "boolean" }, "id": { "type": "string" } } }, "image": { "description": "Azure Machine Spec Image", "type": "object", "properties": { "gallery": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "offer": { "type": "string" }, "publisher": { "type": "string" }, "resourceGroup": { "type": "string" }, "sku": { "type": "string" }, "subscriptionId": { "type": "string" }, "version": { "type": "string" } } }, "instanceType": { "type": "string" }, "location": { "type": "string" }, "nics": { "type": "array", "items": { "description": "AWS network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "sshPublicKey": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Adds the machine to cloud config's machine pool", "operationId": "v1CloudConfigsAksPoolMachinesAdd", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Azure cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Azure cloud VM definition spec", "type": "object", "required": [ "instanceType", "location", "osDisk" ], "properties": { "additionalTags": { "type": "object", "additionalProperties": { "type": "string" } }, "allocatePublicIP": { "type": "boolean" }, "availabilityZone": { "description": "Azure Machine Spec Availability zone", "type": "object", "properties": { "enabled": { "type": "boolean" }, "id": { "type": "string" } } }, "image": { "description": "Azure Machine Spec Image", "type": "object", "properties": { "gallery": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "offer": { "type": "string" }, "publisher": { "type": "string" }, "resourceGroup": { "type": "string" }, "sku": { "type": "string" }, "subscriptionId": { "type": "string" }, "version": { "type": "string" } } }, "instanceType": { "type": "string" }, "location": { "type": "string" }, "nics": { "type": "array", "items": { "description": "AWS network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "sshPublicKey": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true } ] }, "/v1/cloudconfigs/aks/{configUid}/machinePools/{machinePoolName}/machines/{machineUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified AKS machine", "operationId": "v1CloudConfigsAksPoolMachinesUidGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Azure cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Azure cloud VM definition spec", "type": "object", "required": [ "instanceType", "location", "osDisk" ], "properties": { "additionalTags": { "type": "object", "additionalProperties": { "type": "string" } }, "allocatePublicIP": { "type": "boolean" }, "availabilityZone": { "description": "Azure Machine Spec Availability zone", "type": "object", "properties": { "enabled": { "type": "boolean" }, "id": { "type": "string" } } }, "image": { "description": "Azure Machine Spec Image", "type": "object", "properties": { "gallery": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "offer": { "type": "string" }, "publisher": { "type": "string" }, "resourceGroup": { "type": "string" }, "sku": { "type": "string" }, "subscriptionId": { "type": "string" }, "version": { "type": "string" } } }, "instanceType": { "type": "string" }, "location": { "type": "string" }, "nics": { "type": "array", "items": { "description": "AWS network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "sshPublicKey": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified machine to the cloud config's machine pool", "operationId": "v1CloudConfigsAksPoolMachinesUidUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Azure cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Azure cloud VM definition spec", "type": "object", "required": [ "instanceType", "location", "osDisk" ], "properties": { "additionalTags": { "type": "object", "additionalProperties": { "type": "string" } }, "allocatePublicIP": { "type": "boolean" }, "availabilityZone": { "description": "Azure Machine Spec Availability zone", "type": "object", "properties": { "enabled": { "type": "boolean" }, "id": { "type": "string" } } }, "image": { "description": "Azure Machine Spec Image", "type": "object", "properties": { "gallery": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "offer": { "type": "string" }, "publisher": { "type": "string" }, "resourceGroup": { "type": "string" }, "sku": { "type": "string" }, "subscriptionId": { "type": "string" }, "version": { "type": "string" } } }, "instanceType": { "type": "string" }, "location": { "type": "string" }, "nics": { "type": "array", "items": { "description": "AWS network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "sshPublicKey": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified Azure machine", "operationId": "v1CloudConfigsAksPoolMachinesUidDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true }, { "type": "string", "description": "Machine uid", "name": "machineUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/aws/{configUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified AWS cloud config", "operationId": "v1CloudConfigsAwsGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "AwsCloudConfig is the Schema for the awscloudconfigs API", "type": "object", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "AwsCloudConfigSpec defines the cloud configuration input by user This will translate to clusterspec/machinespec for cluster-api", "type": "object", "properties": { "cloudAccountRef": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", "type": "object", "properties": { "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } } }, "clusterConfig": { "description": "Cluster level configuration for aws cloud and applicable for all the machine pools", "type": "object", "required": [ "region" ], "properties": { "bastionDisabled": { "description": "Create bastion node option we have earlier supported creation of bastion by default capa seems to favour session manager against bastion node https://github.com/kubernetes-sigs/cluster-api-provider-aws/issues/947", "type": "boolean" }, "controlPlaneLoadBalancer": { "description": "ControlPlaneLoadBalancer specifies how API server elb will be configured, this field is optional, not provided, \"\", default =\u003e \"Internet-facing\" \"Internet-facing\" =\u003e \"Internet-facing\" \"internal\" =\u003e \"internal\" For spectro saas setup we require to talk to the apiserver from our cluster so ControlPlaneLoadBalancer should be \"\", not provided or \"Internet-facing\"", "type": "string" }, "region": { "type": "string" }, "sshKeyName": { "type": "string" }, "vpcId": { "description": "VPC Id to deploy cluster into should have one public and one private subnet for the the cluster creation, this field is optional, If VPC Id is not provided a fully managed VPC will be created", "type": "string" } } }, "machinePoolConfig": { "type": "array", "items": { "type": "object", "required": [ "isControlPlane" ], "properties": { "additionalLabels": { "description": "additionalLabels", "type": "object", "additionalProperties": { "type": "string" } }, "additionalSecurityGroups": { "description": "Additional Security groups", "type": "array", "items": { "description": "AWSResourceReference is a reference to a specific AWS resource by ID or filters", "type": "object", "properties": { "arn": { "description": "ARN of resource", "type": "string" }, "filters": { "description": "Filters is a set of key/value pairs used to identify a resource", "type": "array", "uniqueItems": true, "items": { "description": "Filter is a filter used to identify an AWS resource", "type": "object", "properties": { "name": { "description": "Name of the filter. Filter names are case-sensitive", "type": "string" }, "values": { "description": "Values includes one or more filter values. Filter values are case-sensitive", "type": "array", "uniqueItems": true, "items": { "type": "string" } } } } }, "id": { "description": "ID of resource", "type": "string" } } } }, "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole", "type": "object", "additionalProperties": { "type": "string" } }, "azs": { "description": "AZs is only used for dynamic placement", "type": "array", "items": { "type": "string" } }, "capacityType": { "description": "EC2 instance capacity type", "type": "string", "default": "on-demand", "enum": [ "on-demand", "spot" ] }, "instanceConfig": { "properties": { "category": { "type": "string" }, "cpuSet": { "type": "integer", "format": "int64" }, "diskGiB": { "type": "integer", "format": "int64" }, "memoryMiB": { "description": "MemoryMiB is the size of a virtual machine's memory, in MiB", "type": "integer", "format": "int64" }, "name": { "type": "string" }, "numCPUs": { "description": "NumCPUs is the number of virtual processors in a virtual machine", "type": "integer", "format": "int32" } } }, "instanceType": { "description": "instance type", "type": "string" }, "isControlPlane": { "description": "whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "labels": { "description": "labels for this pool, example: control-plane/worker, gpu, windows", "type": "array", "items": { "type": "string" } }, "machinePoolProperties": { "description": "Machine pool specific properties", "type": "object", "properties": { "archType": { "type": "string", "default": "amd64", "enum": [ "amd64", "arm64" ] } } }, "maxSize": { "description": "max size of the pool, for scaling", "type": "integer", "format": "int32" }, "minSize": { "description": "min size of the pool, for scaling", "type": "integer", "format": "int32" }, "name": { "type": "string" }, "nodeRepaveInterval": { "description": "Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster", "type": "integer", "format": "int32" }, "rootDeviceSize": { "description": "rootDeviceSize in GBs", "type": "integer", "format": "int64" }, "size": { "description": "size of the pool, number of machines", "type": "integer", "format": "int32" }, "spotMarketOptions": { "description": "SpotMarketOptions defines the options available to a user when configuring Machines to run on Spot instances. Most users should provide an empty struct.", "type": "object", "properties": { "maxPrice": { "description": "MaxPrice defines the maximum price the user is willing to pay for Spot VM instances", "type": "string" } } }, "subnetIds": { "description": "AZ to subnet mapping filled by ally from hubble SubnetIDs [\"us-west-2d\"] = \"subnet-079b6061\" This field is optional If we don't provide a subnetId then by default the first private subnet from the AZ will be picked up for deployment", "type": "object", "additionalProperties": { "type": "string" } }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "updateStrategy": { "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut =\u003e maxSurge=1, maxUnavailable=0 ScaleIn =\u003e maxSurge=0, maxUnavailable=1", "type": "object", "properties": { "type": { "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", "type": "string", "enum": [ "RollingUpdateScaleOut", "RollingUpdateScaleIn" ] } } }, "useControlPlaneAsWorker": { "description": "if IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } }, "status": { "description": "AwsCloudConfigStatus defines the observed state of AwsCloudConfig The cloudimage info built by Mold is stored here image should be mapped to a specific machinepool", "type": "object", "properties": { "ansibleRoleDigest": { "description": "For mold controller to identify if is there any changes in Pack", "type": "string" }, "conditions": { "type": "array", "items": { "type": "object", "required": [ "type", "status" ], "properties": { "lastProbeTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "lastTransitionTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "message": { "description": "Human-readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "Unique, one-word, CamelCase reason for the condition's last transition.", "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "images": { "description": "Images array items should be 1-to-1 mapping to Spec.MachinePoolConfig", "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "os": { "type": "string" }, "region": { "type": "string" }, "state": { "type": "string" } } } }, "isAddonLayer": { "description": "addon layers present in spc", "type": "boolean" }, "roleDigest": { "description": "this map will be for ansible roles present in eack pack", "type": "object", "additionalProperties": { "type": "string" } }, "sourceImageId": { "description": "sourceImageId, it can be from packref's annotations or from pack.json", "type": "string" }, "useCapiImage": { "description": "PackerVariableDigest string `json:\"packerDigest,omitempty\"` If no ansible roles found in Packs then Mold should tell Drive to use capi image and not create custom image, because there is nothing to add", "type": "boolean" } } } } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/aws/{configUid}/clusterConfig": { "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the cluster configuration information", "operationId": "v1CloudConfigsAwsUidClusterConfig", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "AWS cloud cluster config entity", "type": "object", "properties": { "clusterConfig": { "description": "Cluster level configuration for aws cloud and applicable for all the machine pools", "type": "object", "required": [ "region" ], "properties": { "bastionDisabled": { "description": "Create bastion node option we have earlier supported creation of bastion by default capa seems to favour session manager against bastion node https://github.com/kubernetes-sigs/cluster-api-provider-aws/issues/947", "type": "boolean" }, "controlPlaneLoadBalancer": { "description": "ControlPlaneLoadBalancer specifies how API server elb will be configured, this field is optional, not provided, \"\", default =\u003e \"Internet-facing\" \"Internet-facing\" =\u003e \"Internet-facing\" \"internal\" =\u003e \"internal\" For spectro saas setup we require to talk to the apiserver from our cluster so ControlPlaneLoadBalancer should be \"\", not provided or \"Internet-facing\"", "type": "string" }, "region": { "type": "string" }, "sshKeyName": { "type": "string" }, "vpcId": { "description": "VPC Id to deploy cluster into should have one public and one private subnet for the the cluster creation, this field is optional, If VPC Id is not provided a fully managed VPC will be created", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/aws/{configUid}/machinePools": { "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates an AWS cloud config's machine pool", "operationId": "v1CloudConfigsAwsMachinePoolCreate", "parameters": [ { "name": "body", "in": "body", "schema": { "type": "object", "required": [ "cloudConfig" ], "properties": { "cloudConfig": { "type": "object", "required": [ "instanceType" ], "properties": { "additionalSecurityGroups": { "description": "Additional Security groups", "type": "array", "items": { "description": "AWSResourceReference is a reference to a specific AWS resource by ID or filters", "type": "object", "properties": { "arn": { "description": "ARN of resource", "type": "string" }, "filters": { "description": "Filters is a set of key/value pairs used to identify a resource", "type": "array", "uniqueItems": true, "items": { "description": "Filter is a filter used to identify an AWS resource", "type": "object", "properties": { "name": { "description": "Name of the filter. Filter names are case-sensitive", "type": "string" }, "values": { "description": "Values includes one or more filter values. Filter values are case-sensitive", "type": "array", "uniqueItems": true, "items": { "type": "string" } } } } }, "id": { "description": "ID of resource", "type": "string" } } } }, "azs": { "type": "array", "items": { "type": "string" } }, "capacityType": { "description": "EC2 instance capacity type", "type": "string", "default": "on-demand", "enum": [ "on-demand", "spot" ] }, "instanceType": { "description": "instance type", "type": "string" }, "rootDeviceSize": { "description": "rootDeviceSize in GBs", "type": "integer", "format": "int64", "maximum": 2000, "minimum": 1 }, "spotMarketOptions": { "description": "SpotMarketOptions defines the options available to a user when configuring Machines to run on Spot instances. Most users should provide an empty struct.", "type": "object", "properties": { "maxPrice": { "description": "MaxPrice defines the maximum price the user is willing to pay for Spot VM instances", "type": "string" } } }, "subnets": { "type": "array", "items": { "properties": { "az": { "type": "string" }, "id": { "type": "string" } } } } } }, "poolConfig": { "description": "Machine pool configuration for the cluster", "type": "object", "required": [ "name", "size", "labels" ], "properties": { "additionalLabels": { "description": "Additional labels to be part of the machine pool", "type": "object", "additionalProperties": { "type": "string" } }, "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole", "type": "object", "additionalProperties": { "type": "string" } }, "isControlPlane": { "description": "Whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "labels": { "description": "Labels for this machine pool, example: control-plane/worker, gpu, windows", "type": "array", "items": { "type": "string" } }, "machinePoolProperties": { "description": "Machine pool specific properties", "type": "object", "properties": { "archType": { "type": "string", "default": "amd64", "enum": [ "amd64", "arm64" ] } } }, "maxSize": { "description": "Max size of the pool, for scaling", "type": "integer", "format": "int32" }, "minSize": { "description": "Min size of the pool, for scaling", "type": "integer", "format": "int32" }, "name": { "type": "string" }, "nodeRepaveInterval": { "description": "Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster", "type": "integer", "format": "int32" }, "size": { "description": "Size of the pool, number of nodes/machines", "type": "integer", "format": "int32" }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "updateStrategy": { "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut =\u003e maxSurge=1, maxUnavailable=0 ScaleIn =\u003e maxSurge=0, maxUnavailable=1", "type": "object", "properties": { "type": { "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", "type": "string", "enum": [ "RollingUpdateScaleOut", "RollingUpdateScaleIn" ] } } }, "useControlPlaneAsWorker": { "description": "If IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/aws/{configUid}/machinePools/{machinePoolName}": { "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified AWS cloud config's machine pool", "operationId": "v1CloudConfigsAwsMachinePoolUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "type": "object", "required": [ "cloudConfig" ], "properties": { "cloudConfig": { "type": "object", "required": [ "instanceType" ], "properties": { "additionalSecurityGroups": { "description": "Additional Security groups", "type": "array", "items": { "description": "AWSResourceReference is a reference to a specific AWS resource by ID or filters", "type": "object", "properties": { "arn": { "description": "ARN of resource", "type": "string" }, "filters": { "description": "Filters is a set of key/value pairs used to identify a resource", "type": "array", "uniqueItems": true, "items": { "description": "Filter is a filter used to identify an AWS resource", "type": "object", "properties": { "name": { "description": "Name of the filter. Filter names are case-sensitive", "type": "string" }, "values": { "description": "Values includes one or more filter values. Filter values are case-sensitive", "type": "array", "uniqueItems": true, "items": { "type": "string" } } } } }, "id": { "description": "ID of resource", "type": "string" } } } }, "azs": { "type": "array", "items": { "type": "string" } }, "capacityType": { "description": "EC2 instance capacity type", "type": "string", "default": "on-demand", "enum": [ "on-demand", "spot" ] }, "instanceType": { "description": "instance type", "type": "string" }, "rootDeviceSize": { "description": "rootDeviceSize in GBs", "type": "integer", "format": "int64", "maximum": 2000, "minimum": 1 }, "spotMarketOptions": { "description": "SpotMarketOptions defines the options available to a user when configuring Machines to run on Spot instances. Most users should provide an empty struct.", "type": "object", "properties": { "maxPrice": { "description": "MaxPrice defines the maximum price the user is willing to pay for Spot VM instances", "type": "string" } } }, "subnets": { "type": "array", "items": { "properties": { "az": { "type": "string" }, "id": { "type": "string" } } } } } }, "poolConfig": { "description": "Machine pool configuration for the cluster", "type": "object", "required": [ "name", "size", "labels" ], "properties": { "additionalLabels": { "description": "Additional labels to be part of the machine pool", "type": "object", "additionalProperties": { "type": "string" } }, "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole", "type": "object", "additionalProperties": { "type": "string" } }, "isControlPlane": { "description": "Whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "labels": { "description": "Labels for this machine pool, example: control-plane/worker, gpu, windows", "type": "array", "items": { "type": "string" } }, "machinePoolProperties": { "description": "Machine pool specific properties", "type": "object", "properties": { "archType": { "type": "string", "default": "amd64", "enum": [ "amd64", "arm64" ] } } }, "maxSize": { "description": "Max size of the pool, for scaling", "type": "integer", "format": "int32" }, "minSize": { "description": "Min size of the pool, for scaling", "type": "integer", "format": "int32" }, "name": { "type": "string" }, "nodeRepaveInterval": { "description": "Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster", "type": "integer", "format": "int32" }, "size": { "description": "Size of the pool, number of nodes/machines", "type": "integer", "format": "int32" }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "updateStrategy": { "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut =\u003e maxSurge=1, maxUnavailable=0 ScaleIn =\u003e maxSurge=0, maxUnavailable=1", "type": "object", "properties": { "type": { "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", "type": "string", "enum": [ "RollingUpdateScaleOut", "RollingUpdateScaleIn" ] } } }, "useControlPlaneAsWorker": { "description": "If IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified machine pool", "operationId": "v1CloudConfigsAwsMachinePoolDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true } ] }, "/v1/cloudconfigs/aws/{configUid}/machinePools/{machinePoolName}/machines": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of AWS machines", "operationId": "v1CloudConfigsAwsPoolMachinesList", "parameters": [ { "type": "string", "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", "name": "fields", "in": "query" }, { "type": "string", "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", "name": "filters", "in": "query" }, { "type": "string", "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", "name": "orderBy", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of AWS machine items", "schema": { "description": "AWS machine list", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "AWS cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "AWS cloud VM definition spec", "type": "object", "required": [ "instanceType", "vpcId", "ami" ], "properties": { "additionalSecurityGroups": { "description": "Additional Security groups", "type": "array", "items": { "description": "AWSResourceReference is a reference to a specific AWS resource by ID or filters", "type": "object", "properties": { "arn": { "description": "ARN of resource", "type": "string" }, "filters": { "description": "Filters is a set of key/value pairs used to identify a resource", "type": "array", "uniqueItems": true, "items": { "description": "Filter is a filter used to identify an AWS resource", "type": "object", "properties": { "name": { "description": "Name of the filter. Filter names are case-sensitive", "type": "string" }, "values": { "description": "Values includes one or more filter values. Filter values are case-sensitive", "type": "array", "uniqueItems": true, "items": { "type": "string" } } } } }, "id": { "description": "ID of resource", "type": "string" } } } }, "ami": { "type": "string" }, "az": { "type": "string" }, "dnsName": { "type": "string" }, "iamProfile": { "type": "string" }, "instanceType": { "type": "string" }, "nics": { "type": "array", "items": { "description": "AWS network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "phase": { "type": "string" }, "sshKeyName": { "type": "string" }, "subnetId": { "type": "string" }, "type": { "type": "string" }, "vpcId": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Adds the machine to cloud config's machine pool", "operationId": "v1CloudConfigsAwsPoolMachinesAdd", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "AWS cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "AWS cloud VM definition spec", "type": "object", "required": [ "instanceType", "vpcId", "ami" ], "properties": { "additionalSecurityGroups": { "description": "Additional Security groups", "type": "array", "items": { "description": "AWSResourceReference is a reference to a specific AWS resource by ID or filters", "type": "object", "properties": { "arn": { "description": "ARN of resource", "type": "string" }, "filters": { "description": "Filters is a set of key/value pairs used to identify a resource", "type": "array", "uniqueItems": true, "items": { "description": "Filter is a filter used to identify an AWS resource", "type": "object", "properties": { "name": { "description": "Name of the filter. Filter names are case-sensitive", "type": "string" }, "values": { "description": "Values includes one or more filter values. Filter values are case-sensitive", "type": "array", "uniqueItems": true, "items": { "type": "string" } } } } }, "id": { "description": "ID of resource", "type": "string" } } } }, "ami": { "type": "string" }, "az": { "type": "string" }, "dnsName": { "type": "string" }, "iamProfile": { "type": "string" }, "instanceType": { "type": "string" }, "nics": { "type": "array", "items": { "description": "AWS network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "phase": { "type": "string" }, "sshKeyName": { "type": "string" }, "subnetId": { "type": "string" }, "type": { "type": "string" }, "vpcId": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true } ] }, "/v1/cloudconfigs/aws/{configUid}/machinePools/{machinePoolName}/machines/{machineUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified AWS machine", "operationId": "v1CloudConfigsAwsPoolMachinesUidGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "AWS cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "AWS cloud VM definition spec", "type": "object", "required": [ "instanceType", "vpcId", "ami" ], "properties": { "additionalSecurityGroups": { "description": "Additional Security groups", "type": "array", "items": { "description": "AWSResourceReference is a reference to a specific AWS resource by ID or filters", "type": "object", "properties": { "arn": { "description": "ARN of resource", "type": "string" }, "filters": { "description": "Filters is a set of key/value pairs used to identify a resource", "type": "array", "uniqueItems": true, "items": { "description": "Filter is a filter used to identify an AWS resource", "type": "object", "properties": { "name": { "description": "Name of the filter. Filter names are case-sensitive", "type": "string" }, "values": { "description": "Values includes one or more filter values. Filter values are case-sensitive", "type": "array", "uniqueItems": true, "items": { "type": "string" } } } } }, "id": { "description": "ID of resource", "type": "string" } } } }, "ami": { "type": "string" }, "az": { "type": "string" }, "dnsName": { "type": "string" }, "iamProfile": { "type": "string" }, "instanceType": { "type": "string" }, "nics": { "type": "array", "items": { "description": "AWS network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "phase": { "type": "string" }, "sshKeyName": { "type": "string" }, "subnetId": { "type": "string" }, "type": { "type": "string" }, "vpcId": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified machine to the cloud config's machine pool", "operationId": "v1CloudConfigsAwsPoolMachinesUidUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "AWS cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "AWS cloud VM definition spec", "type": "object", "required": [ "instanceType", "vpcId", "ami" ], "properties": { "additionalSecurityGroups": { "description": "Additional Security groups", "type": "array", "items": { "description": "AWSResourceReference is a reference to a specific AWS resource by ID or filters", "type": "object", "properties": { "arn": { "description": "ARN of resource", "type": "string" }, "filters": { "description": "Filters is a set of key/value pairs used to identify a resource", "type": "array", "uniqueItems": true, "items": { "description": "Filter is a filter used to identify an AWS resource", "type": "object", "properties": { "name": { "description": "Name of the filter. Filter names are case-sensitive", "type": "string" }, "values": { "description": "Values includes one or more filter values. Filter values are case-sensitive", "type": "array", "uniqueItems": true, "items": { "type": "string" } } } } }, "id": { "description": "ID of resource", "type": "string" } } } }, "ami": { "type": "string" }, "az": { "type": "string" }, "dnsName": { "type": "string" }, "iamProfile": { "type": "string" }, "instanceType": { "type": "string" }, "nics": { "type": "array", "items": { "description": "AWS network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "phase": { "type": "string" }, "sshKeyName": { "type": "string" }, "subnetId": { "type": "string" }, "type": { "type": "string" }, "vpcId": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified AWS machine", "operationId": "v1CloudConfigsAwsPoolMachinesUidDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true }, { "type": "string", "description": "Machine uid", "name": "machineUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/azure/{configUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified Azure cloud config", "operationId": "v1CloudConfigsAzureGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "AzureCloudConfig is the Schema for the azurecloudconfigs API", "type": "object", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "AzureCloudConfigSpec defines the cloud configuration input by user This will translate to clusterspec/machinespec for cluster-api", "type": "object", "properties": { "cloudAccountRef": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", "type": "object", "properties": { "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } } }, "clusterConfig": { "description": "Cluster level configuration for Azure cloud and applicable for all the machine pools", "type": "object", "required": [ "subscriptionId", "location", "sshKey" ], "properties": { "aadProfile": { "description": "AADProfile - AAD integration is managed by AKS.", "type": "object", "required": [ "managed", "adminGroupObjectIDs" ], "properties": { "adminGroupObjectIDs": { "description": "AdminGroupObjectIDs - AAD group object IDs that will have admin role of the cluster.", "type": "array", "items": { "type": "string" } }, "managed": { "description": "Managed - Whether to enable managed AAD.", "type": "boolean", "x-omitempty": false } } }, "apiServerAccessProfile": { "description": "APIServerAccessProfile - access profile for AKS API server.", "type": "object", "properties": { "authorizedIPRanges": { "description": "AuthorizedIPRanges - Authorized IP Ranges to kubernetes API server.", "type": "array", "items": { "type": "string", "default": "" } }, "enablePrivateCluster": { "description": "EnablePrivateCluster - Whether to create the cluster as a private cluster or not.", "type": "boolean" }, "enablePrivateClusterPublicFQDN": { "description": "EnablePrivateClusterPublicFQDN - Whether to create additional public FQDN for private cluster or not.", "type": "boolean" }, "privateDNSZone": { "description": "PrivateDNSZone - Private dns zone mode for private cluster.", "type": "string" } } }, "containerName": { "type": "string" }, "controlPlaneSubnet": { "type": "object", "properties": { "cidrBlock": { "description": "CidrBlock is the CIDR block to be used when the provider creates a managed Vnet.", "type": "string" }, "name": { "type": "string" }, "securityGroupName": { "description": "Network Security Group(NSG) to be attached to subnet. NSG for a control plane subnet, should allow inbound to port 6443, as port 6443 is used by kubeadm to bootstrap the control planes", "type": "string" } } }, "enablePrivateCluster": { "description": "Deprecated. use apiServerAccessProfile.enablePrivateCluster", "type": "boolean" }, "infraLBConfig": { "type": "object", "properties": { "apiServerLB": { "description": "LoadBalancerSpec defines an Azure load balancer.", "type": "object", "properties": { "apiServerLBStaticIP": { "type": "string" }, "ipAllocationMethod": { "type": "string", "default": "Dynamic", "enum": [ "Static", "Dynamic" ] }, "privateDNSName": { "type": "string" }, "type": { "description": "Load Balancer type", "type": "string", "default": "Public", "enum": [ "Internal", "Public" ] } } } } }, "location": { "description": "Location is the Azure datacenter location", "type": "string" }, "resourceGroup": { "type": "string" }, "sshKey": { "type": "string" }, "storageAccountName": { "type": "string" }, "subscriptionId": { "description": "Subscription ID is unique identifier for the subscription used to access Azure services", "type": "string" }, "vnetCidrBlock": { "type": "string" }, "vnetName": { "description": "VNETName is the virtual network in which the cluster is to be provisioned.", "type": "string" }, "vnetResourceGroup": { "type": "string" }, "workerSubnet": { "type": "object", "properties": { "cidrBlock": { "description": "CidrBlock is the CIDR block to be used when the provider creates a managed Vnet.", "type": "string" }, "name": { "type": "string" }, "securityGroupName": { "description": "Network Security Group(NSG) to be attached to subnet. NSG for a control plane subnet, should allow inbound to port 6443, as port 6443 is used by kubeadm to bootstrap the control planes", "type": "string" } } } } }, "machinePoolConfig": { "type": "array", "items": { "type": "object", "required": [ "isControlPlane" ], "properties": { "additionalLabels": { "description": "additionalLabels", "type": "object", "additionalProperties": { "type": "string" } }, "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole", "type": "object", "additionalProperties": { "type": "string" } }, "azs": { "type": "array", "items": { "type": "string" } }, "instanceConfig": { "properties": { "category": { "type": "string" }, "cpuSet": { "type": "integer", "format": "int64" }, "diskGiB": { "type": "integer", "format": "int64" }, "memoryMiB": { "description": "MemoryMiB is the size of a virtual machine's memory, in MiB", "type": "integer", "format": "int64" }, "name": { "type": "string" }, "numCPUs": { "description": "NumCPUs is the number of virtual processors in a virtual machine", "type": "integer", "format": "int32" } } }, "instanceType": { "description": "Instance type stands for VMSize in Azure", "type": "string" }, "isControlPlane": { "description": "whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "isSystemNodePool": { "description": "whether this pool is for system node Pool", "type": "boolean", "x-omitempty": false }, "labels": { "description": "labels for this pool, example: control-plane/worker, gpu, windows", "type": "array", "items": { "type": "string" } }, "machinePoolProperties": { "description": "Machine pool specific properties", "type": "object", "properties": { "archType": { "type": "string", "default": "amd64", "enum": [ "amd64", "arm64" ] } } }, "maxSize": { "description": "max size of the pool, for scaling", "type": "integer", "format": "int32" }, "minSize": { "description": "min size of the pool, for scaling", "type": "integer", "format": "int32" }, "name": { "type": "string" }, "nodeRepaveInterval": { "description": "Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster", "type": "integer", "format": "int32" }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] }, "size": { "description": "size of the pool, number of machines", "type": "integer", "format": "int32" }, "spotVMOptions": { "description": "SpotVMOptions defines the options relevant to running the Machine on Spot VMs", "type": "object", "properties": { "maxPrice": { "description": "MaxPrice defines the maximum price the user is willing to pay for Spot VM instances", "type": "string" } } }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "updateStrategy": { "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut =\u003e maxSurge=1, maxUnavailable=0 ScaleIn =\u003e maxSurge=0, maxUnavailable=1", "type": "object", "properties": { "type": { "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", "type": "string", "enum": [ "RollingUpdateScaleOut", "RollingUpdateScaleIn" ] } } }, "useControlPlaneAsWorker": { "description": "if IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } }, "status": { "description": "AzureCloudConfigStatus defines the observed state of AzureCloudConfig The cloudimage info built by Mold is stored here image should be mapped to a specific machinepool", "type": "object", "properties": { "ansibleRoleDigest": { "description": "For mold controller to identify if is there any changes in Pack", "type": "string" }, "conditions": { "description": "spectroAnsibleProvisioner: should be added only once, subsequent recocile will use the same provisioner SpectroAnsiblePacker bool `json:\"spectroAnsiblePacker,omitempty\"`", "type": "array", "items": { "type": "object", "required": [ "type", "status" ], "properties": { "lastProbeTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "lastTransitionTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "message": { "description": "Human-readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "Unique, one-word, CamelCase reason for the condition's last transition.", "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "images": { "description": "Refers to Azure Shared Gallery image", "type": "object", "properties": { "gallery": { "type": "string" }, "name": { "type": "string" }, "resourceGroup": { "type": "string" }, "state": { "type": "string" }, "subscriptionID": { "type": "string" }, "version": { "type": "string" } } }, "isAddonLayer": { "description": "addon layers present in spc", "type": "boolean" }, "roleDigest": { "description": "this map will be for ansible roles present in eack pack", "type": "object", "additionalProperties": { "type": "string" } }, "sourceImageId": { "description": "sourceImageId, it can be from packref's annotations or from pack.json", "type": "string" }, "useCapiImage": { "description": "PackerVariableDigest string `json:\"packerDigest,omitempty\"` If no ansible roles found in Packs then Mold should tell Drive to use capi image and not create custom image, because there is nothing to add", "type": "boolean" }, "vhdImage": { "description": "Mold always create VHD image for custom image, and this can be use as golden images", "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "os": { "type": "string" }, "region": { "type": "string" }, "state": { "type": "string" } } } } } } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/azure/{configUid}/clusterConfig": { "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the cluster configuration information", "operationId": "v1CloudConfigsAzureUidClusterConfig", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Azure cloud cluster config entity", "type": "object", "properties": { "clusterConfig": { "description": "Cluster level configuration for Azure cloud and applicable for all the machine pools", "type": "object", "required": [ "subscriptionId", "location", "sshKey" ], "properties": { "aadProfile": { "description": "AADProfile - AAD integration is managed by AKS.", "type": "object", "required": [ "managed", "adminGroupObjectIDs" ], "properties": { "adminGroupObjectIDs": { "description": "AdminGroupObjectIDs - AAD group object IDs that will have admin role of the cluster.", "type": "array", "items": { "type": "string" } }, "managed": { "description": "Managed - Whether to enable managed AAD.", "type": "boolean", "x-omitempty": false } } }, "apiServerAccessProfile": { "description": "APIServerAccessProfile - access profile for AKS API server.", "type": "object", "properties": { "authorizedIPRanges": { "description": "AuthorizedIPRanges - Authorized IP Ranges to kubernetes API server.", "type": "array", "items": { "type": "string", "default": "" } }, "enablePrivateCluster": { "description": "EnablePrivateCluster - Whether to create the cluster as a private cluster or not.", "type": "boolean" }, "enablePrivateClusterPublicFQDN": { "description": "EnablePrivateClusterPublicFQDN - Whether to create additional public FQDN for private cluster or not.", "type": "boolean" }, "privateDNSZone": { "description": "PrivateDNSZone - Private dns zone mode for private cluster.", "type": "string" } } }, "containerName": { "type": "string" }, "controlPlaneSubnet": { "type": "object", "properties": { "cidrBlock": { "description": "CidrBlock is the CIDR block to be used when the provider creates a managed Vnet.", "type": "string" }, "name": { "type": "string" }, "securityGroupName": { "description": "Network Security Group(NSG) to be attached to subnet. NSG for a control plane subnet, should allow inbound to port 6443, as port 6443 is used by kubeadm to bootstrap the control planes", "type": "string" } } }, "enablePrivateCluster": { "description": "Deprecated. use apiServerAccessProfile.enablePrivateCluster", "type": "boolean" }, "infraLBConfig": { "type": "object", "properties": { "apiServerLB": { "description": "LoadBalancerSpec defines an Azure load balancer.", "type": "object", "properties": { "apiServerLBStaticIP": { "type": "string" }, "ipAllocationMethod": { "type": "string", "default": "Dynamic", "enum": [ "Static", "Dynamic" ] }, "privateDNSName": { "type": "string" }, "type": { "description": "Load Balancer type", "type": "string", "default": "Public", "enum": [ "Internal", "Public" ] } } } } }, "location": { "description": "Location is the Azure datacenter location", "type": "string" }, "resourceGroup": { "type": "string" }, "sshKey": { "type": "string" }, "storageAccountName": { "type": "string" }, "subscriptionId": { "description": "Subscription ID is unique identifier for the subscription used to access Azure services", "type": "string" }, "vnetCidrBlock": { "type": "string" }, "vnetName": { "description": "VNETName is the virtual network in which the cluster is to be provisioned.", "type": "string" }, "vnetResourceGroup": { "type": "string" }, "workerSubnet": { "type": "object", "properties": { "cidrBlock": { "description": "CidrBlock is the CIDR block to be used when the provider creates a managed Vnet.", "type": "string" }, "name": { "type": "string" }, "securityGroupName": { "description": "Network Security Group(NSG) to be attached to subnet. NSG for a control plane subnet, should allow inbound to port 6443, as port 6443 is used by kubeadm to bootstrap the control planes", "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/azure/{configUid}/machinePools": { "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates an Azure cloud config's machine pool", "operationId": "v1CloudConfigsAzureMachinePoolCreate", "parameters": [ { "name": "body", "in": "body", "schema": { "type": "object", "required": [ "cloudConfig" ], "properties": { "cloudConfig": { "type": "object", "properties": { "azs": { "type": "array", "items": { "type": "string" } }, "instanceType": { "description": "Instance type stands for VMSize in Azure", "type": "string" }, "isSystemNodePool": { "description": "whether this pool is for system node Pool", "type": "boolean" }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } } } }, "managedPoolConfig": { "type": "object", "properties": { "isSystemNodePool": { "description": "whether this pool is for system node Pool", "type": "boolean", "x-omitempty": false }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "poolConfig": { "description": "Machine pool configuration for the cluster", "type": "object", "required": [ "name", "size", "labels" ], "properties": { "additionalLabels": { "description": "Additional labels to be part of the machine pool", "type": "object", "additionalProperties": { "type": "string" } }, "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole", "type": "object", "additionalProperties": { "type": "string" } }, "isControlPlane": { "description": "Whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "labels": { "description": "Labels for this machine pool, example: control-plane/worker, gpu, windows", "type": "array", "items": { "type": "string" } }, "machinePoolProperties": { "description": "Machine pool specific properties", "type": "object", "properties": { "archType": { "type": "string", "default": "amd64", "enum": [ "amd64", "arm64" ] } } }, "maxSize": { "description": "Max size of the pool, for scaling", "type": "integer", "format": "int32" }, "minSize": { "description": "Min size of the pool, for scaling", "type": "integer", "format": "int32" }, "name": { "type": "string" }, "nodeRepaveInterval": { "description": "Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster", "type": "integer", "format": "int32" }, "size": { "description": "Size of the pool, number of nodes/machines", "type": "integer", "format": "int32" }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "updateStrategy": { "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut =\u003e maxSurge=1, maxUnavailable=0 ScaleIn =\u003e maxSurge=0, maxUnavailable=1", "type": "object", "properties": { "type": { "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", "type": "string", "enum": [ "RollingUpdateScaleOut", "RollingUpdateScaleIn" ] } } }, "useControlPlaneAsWorker": { "description": "If IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/azure/{configUid}/machinePools/{machinePoolName}": { "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified Azure cloud config's machine pool", "operationId": "v1CloudConfigsAzureMachinePoolUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "type": "object", "required": [ "cloudConfig" ], "properties": { "cloudConfig": { "type": "object", "properties": { "azs": { "type": "array", "items": { "type": "string" } }, "instanceType": { "description": "Instance type stands for VMSize in Azure", "type": "string" }, "isSystemNodePool": { "description": "whether this pool is for system node Pool", "type": "boolean" }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } } } }, "managedPoolConfig": { "type": "object", "properties": { "isSystemNodePool": { "description": "whether this pool is for system node Pool", "type": "boolean", "x-omitempty": false }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "poolConfig": { "description": "Machine pool configuration for the cluster", "type": "object", "required": [ "name", "size", "labels" ], "properties": { "additionalLabels": { "description": "Additional labels to be part of the machine pool", "type": "object", "additionalProperties": { "type": "string" } }, "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole", "type": "object", "additionalProperties": { "type": "string" } }, "isControlPlane": { "description": "Whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "labels": { "description": "Labels for this machine pool, example: control-plane/worker, gpu, windows", "type": "array", "items": { "type": "string" } }, "machinePoolProperties": { "description": "Machine pool specific properties", "type": "object", "properties": { "archType": { "type": "string", "default": "amd64", "enum": [ "amd64", "arm64" ] } } }, "maxSize": { "description": "Max size of the pool, for scaling", "type": "integer", "format": "int32" }, "minSize": { "description": "Min size of the pool, for scaling", "type": "integer", "format": "int32" }, "name": { "type": "string" }, "nodeRepaveInterval": { "description": "Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster", "type": "integer", "format": "int32" }, "size": { "description": "Size of the pool, number of nodes/machines", "type": "integer", "format": "int32" }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "updateStrategy": { "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut =\u003e maxSurge=1, maxUnavailable=0 ScaleIn =\u003e maxSurge=0, maxUnavailable=1", "type": "object", "properties": { "type": { "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", "type": "string", "enum": [ "RollingUpdateScaleOut", "RollingUpdateScaleIn" ] } } }, "useControlPlaneAsWorker": { "description": "If IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified machine pool", "operationId": "v1CloudConfigsAzureMachinePoolDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true } ] }, "/v1/cloudconfigs/azure/{configUid}/machinePools/{machinePoolName}/machines": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "description": "Returns all the Azure machines restricted to the user role and filters.", "tags": [ "v1" ], "summary": "Retrieves a list of Azure machines", "operationId": "v1CloudConfigsAzurePoolMachinesList", "parameters": [ { "type": "string", "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", "name": "fields", "in": "query" }, { "type": "string", "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", "name": "filters", "in": "query" }, { "type": "string", "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", "name": "orderBy", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of AWS machine items", "schema": { "description": "Azure machine list", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Azure cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Azure cloud VM definition spec", "type": "object", "required": [ "instanceType", "location", "osDisk" ], "properties": { "additionalTags": { "type": "object", "additionalProperties": { "type": "string" } }, "allocatePublicIP": { "type": "boolean" }, "availabilityZone": { "description": "Azure Machine Spec Availability zone", "type": "object", "properties": { "enabled": { "type": "boolean" }, "id": { "type": "string" } } }, "image": { "description": "Azure Machine Spec Image", "type": "object", "properties": { "gallery": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "offer": { "type": "string" }, "publisher": { "type": "string" }, "resourceGroup": { "type": "string" }, "sku": { "type": "string" }, "subscriptionId": { "type": "string" }, "version": { "type": "string" } } }, "instanceType": { "type": "string" }, "location": { "type": "string" }, "nics": { "type": "array", "items": { "description": "AWS network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "sshPublicKey": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Adds the machine to cloud config's machine pool", "operationId": "v1CloudConfigsAzurePoolMachinesAdd", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Azure cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Azure cloud VM definition spec", "type": "object", "required": [ "instanceType", "location", "osDisk" ], "properties": { "additionalTags": { "type": "object", "additionalProperties": { "type": "string" } }, "allocatePublicIP": { "type": "boolean" }, "availabilityZone": { "description": "Azure Machine Spec Availability zone", "type": "object", "properties": { "enabled": { "type": "boolean" }, "id": { "type": "string" } } }, "image": { "description": "Azure Machine Spec Image", "type": "object", "properties": { "gallery": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "offer": { "type": "string" }, "publisher": { "type": "string" }, "resourceGroup": { "type": "string" }, "sku": { "type": "string" }, "subscriptionId": { "type": "string" }, "version": { "type": "string" } } }, "instanceType": { "type": "string" }, "location": { "type": "string" }, "nics": { "type": "array", "items": { "description": "AWS network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "sshPublicKey": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true } ] }, "/v1/cloudconfigs/azure/{configUid}/machinePools/{machinePoolName}/machines/{machineUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "description": "Returns a Azure machine for the specified uid.", "tags": [ "v1" ], "summary": "Returns the specified Azure machine", "operationId": "v1CloudConfigsAzurePoolMachinesUidGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Azure cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Azure cloud VM definition spec", "type": "object", "required": [ "instanceType", "location", "osDisk" ], "properties": { "additionalTags": { "type": "object", "additionalProperties": { "type": "string" } }, "allocatePublicIP": { "type": "boolean" }, "availabilityZone": { "description": "Azure Machine Spec Availability zone", "type": "object", "properties": { "enabled": { "type": "boolean" }, "id": { "type": "string" } } }, "image": { "description": "Azure Machine Spec Image", "type": "object", "properties": { "gallery": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "offer": { "type": "string" }, "publisher": { "type": "string" }, "resourceGroup": { "type": "string" }, "sku": { "type": "string" }, "subscriptionId": { "type": "string" }, "version": { "type": "string" } } }, "instanceType": { "type": "string" }, "location": { "type": "string" }, "nics": { "type": "array", "items": { "description": "AWS network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "sshPublicKey": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified machine to cloud config's machine pool", "operationId": "v1CloudConfigsAzurePoolMachinesUidUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Azure cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Azure cloud VM definition spec", "type": "object", "required": [ "instanceType", "location", "osDisk" ], "properties": { "additionalTags": { "type": "object", "additionalProperties": { "type": "string" } }, "allocatePublicIP": { "type": "boolean" }, "availabilityZone": { "description": "Azure Machine Spec Availability zone", "type": "object", "properties": { "enabled": { "type": "boolean" }, "id": { "type": "string" } } }, "image": { "description": "Azure Machine Spec Image", "type": "object", "properties": { "gallery": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "offer": { "type": "string" }, "publisher": { "type": "string" }, "resourceGroup": { "type": "string" }, "sku": { "type": "string" }, "subscriptionId": { "type": "string" }, "version": { "type": "string" } } }, "instanceType": { "type": "string" }, "location": { "type": "string" }, "nics": { "type": "array", "items": { "description": "AWS network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "osDisk": { "type": "object", "properties": { "diskSizeGB": { "type": "integer", "format": "int32" }, "managedDisk": { "type": "object", "properties": { "storageAccountType": { "type": "string" } } }, "osType": { "type": "string", "default": "Linux", "enum": [ "Linux", "Windows" ] } } }, "sshPublicKey": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified Azure machine", "operationId": "v1CloudConfigsAzurePoolMachinesUidDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true }, { "type": "string", "description": "Machine uid", "name": "machineUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/cloudTypes/{cloudType}/{configUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified Custom cloud config", "operationId": "v1CloudConfigsCustomGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "CustomCloudConfig is the Schema for the custom cloudconfigs API", "type": "object", "properties": { "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "CustomCloudConfigSpec defines the cloud configuration input by user This will translate to clusterspec/machinespec for cluster-api", "type": "object", "properties": { "cloudAccountRef": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", "type": "object", "properties": { "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } } }, "clusterConfig": { "description": "Cluster level configuration for Custom cloud and applicable for all the machine pools", "type": "object", "required": [ "values" ], "properties": { "values": { "description": "YAML string for Cluster and CloudCluster", "type": "string" } } }, "machinePoolConfig": { "type": "array", "items": { "type": "object", "required": [ "isControlPlane" ], "properties": { "additionalLabels": { "description": "additionalLabels", "type": "object", "additionalProperties": { "type": "string" } }, "isControlPlane": { "description": "whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "name": { "type": "string" }, "size": { "description": "size of the pool, number of machines", "type": "integer", "format": "int32" }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "useControlPlaneAsWorker": { "description": "if IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false }, "values": { "description": "YAML string for machine", "type": "string" } } } } } } } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud type", "name": "cloudType", "in": "path", "required": true }, { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/cloudTypes/{cloudType}/{configUid}/clusterConfig": { "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the cluster configuration information", "operationId": "v1CloudConfigsCustomUidClusterConfig", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Custom cloud cluster config entity", "type": "object", "properties": { "clusterConfig": { "description": "Cluster level configuration for Custom cloud and applicable for all the machine pools", "type": "object", "required": [ "values" ], "properties": { "values": { "description": "YAML string for Cluster and CloudCluster", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud type", "name": "cloudType", "in": "path", "required": true }, { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/cloudTypes/{cloudType}/{configUid}/machinePools": { "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates an Custom cloud config's machine pool", "operationId": "v1CloudConfigsCustomMachinePoolCreate", "parameters": [ { "name": "body", "in": "body", "schema": { "type": "object", "required": [ "cloudConfig" ], "properties": { "cloudConfig": { "type": "object", "properties": { "values": { "description": "Machine pool configuration as yaml content", "type": "string" } } }, "poolConfig": { "description": "Machine pool configuration for the custom cluster", "type": "object", "properties": { "additionalLabels": { "description": "Additional labels to be part of the machine pool", "type": "object", "additionalProperties": { "type": "string" } }, "isControlPlane": { "description": "Whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "useControlPlaneAsWorker": { "description": "If IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud type", "name": "cloudType", "in": "path", "required": true }, { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/cloudTypes/{cloudType}/{configUid}/machinePools/{machinePoolName}": { "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified Custom cloud config's machine pool", "operationId": "v1CloudConfigsCustomMachinePoolUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "type": "object", "required": [ "cloudConfig" ], "properties": { "cloudConfig": { "type": "object", "properties": { "values": { "description": "Machine pool configuration as yaml content", "type": "string" } } }, "poolConfig": { "description": "Machine pool configuration for the custom cluster", "type": "object", "properties": { "additionalLabels": { "description": "Additional labels to be part of the machine pool", "type": "object", "additionalProperties": { "type": "string" } }, "isControlPlane": { "description": "Whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "useControlPlaneAsWorker": { "description": "If IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified machine pool", "operationId": "v1CloudConfigsCustomMachinePoolDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud type", "name": "cloudType", "in": "path", "required": true }, { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true } ] }, "/v1/cloudconfigs/cloudTypes/{cloudType}/{configUid}/machinePools/{machinePoolName}/machines": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of Custom machines", "operationId": "v1CloudConfigsCustomPoolMachinesList", "parameters": [ { "type": "string", "description": "Set of fields to be presented in the response with values. The fields are comma separated. Eg: metadata.uid,metadata.name", "name": "fields", "in": "query" }, { "type": "string", "description": "Filters can be combined with AND, OR operators with field path name. Eg: metadata.name=TestServiceANDspec.cloudType=aws\n\nServer will be restricted to certain fields based on the indexed data for each resource.", "name": "filters", "in": "query" }, { "type": "string", "description": "Specify the fields with sort order. 1 indicates ascending and -1 for descending. Eg: orderBy=metadata.name=1,metadata.uid=-1", "name": "orderBy", "in": "query" }, { "type": "integer", "format": "int64", "default": 50, "description": "limit is a maximum number of responses to return for a list call. Default and maximum value of the limit is 50.\nIf more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results.", "name": "limit", "in": "query" }, { "type": "integer", "format": "int64", "description": "offset is the next index number from which the response will start. The response offset value can be used along with continue token for the pagination.", "name": "offset", "in": "query" }, { "type": "string", "description": "continue token to paginate the subsequent data items", "name": "continue", "in": "query" }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of Custom machine items", "schema": { "description": "List of Custom machines", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "Custom cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Custom cloud VM definition spec", "properties": { "cloudType": { "type": "string" }, "hostName": { "type": "string" }, "imageId": { "type": "string" }, "instanceType": { "type": "object", "properties": { "diskGiB": { "description": "DiskGiB is the size of a custom machine's disk, in GiB", "type": "integer", "format": "int32" }, "memoryMiB": { "description": "MemoryMiB is the size of a custom machine's memory, in MiB", "type": "integer", "format": "int64" }, "name": { "type": "string" }, "numCPUs": { "description": "NumCPUs is the number in a custom machine", "type": "integer", "format": "int32" } } }, "nics": { "type": "array", "items": { "description": "Custom network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "networkName": { "type": "string" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "sshKeyName": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, "listmeta": { "description": "ListMeta describes metadata for the resource listing", "type": "object", "properties": { "continue": { "description": "Next token for the pagination. Next token is equal to empty string indicates end of result set.", "type": "string", "x-omitempty": false }, "count": { "description": "Total count of the resources which might change during pagination based on the resources addition or deletion", "type": "integer", "x-omitempty": false }, "limit": { "description": "Number of records feteched", "type": "integer", "x-omitempty": false }, "offset": { "description": "The next offset for the pagination. Starting index for which next request will be placed.", "type": "integer", "x-omitempty": false } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Adds the machine to cloud config's machine pool", "operationId": "v1CloudConfigsCustomPoolMachinesAdd", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Custom cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Custom cloud VM definition spec", "properties": { "cloudType": { "type": "string" }, "hostName": { "type": "string" }, "imageId": { "type": "string" }, "instanceType": { "type": "object", "properties": { "diskGiB": { "description": "DiskGiB is the size of a custom machine's disk, in GiB", "type": "integer", "format": "int32" }, "memoryMiB": { "description": "MemoryMiB is the size of a custom machine's memory, in MiB", "type": "integer", "format": "int64" }, "name": { "type": "string" }, "numCPUs": { "description": "NumCPUs is the number in a custom machine", "type": "integer", "format": "int32" } } }, "nics": { "type": "array", "items": { "description": "Custom network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "networkName": { "type": "string" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "sshKeyName": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud type", "name": "cloudType", "in": "path", "required": true }, { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true } ] }, "/v1/cloudconfigs/cloudTypes/{cloudType}/{configUid}/machinePools/{machinePoolName}/machines/{machineUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified Custom machine", "operationId": "v1CloudConfigsCustomPoolMachinesUidGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "Custom cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Custom cloud VM definition spec", "properties": { "cloudType": { "type": "string" }, "hostName": { "type": "string" }, "imageId": { "type": "string" }, "instanceType": { "type": "object", "properties": { "diskGiB": { "description": "DiskGiB is the size of a custom machine's disk, in GiB", "type": "integer", "format": "int32" }, "memoryMiB": { "description": "MemoryMiB is the size of a custom machine's memory, in MiB", "type": "integer", "format": "int64" }, "name": { "type": "string" }, "numCPUs": { "description": "NumCPUs is the number in a custom machine", "type": "integer", "format": "int32" } } }, "nics": { "type": "array", "items": { "description": "Custom network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "networkName": { "type": "string" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "sshKeyName": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified machine to the cloud config's machine pool", "operationId": "v1CloudConfigsCustomPoolMachinesUidUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Custom cloud VM definition", "type": "object", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "Custom cloud VM definition spec", "properties": { "cloudType": { "type": "string" }, "hostName": { "type": "string" }, "imageId": { "type": "string" }, "instanceType": { "type": "object", "properties": { "diskGiB": { "description": "DiskGiB is the size of a custom machine's disk, in GiB", "type": "integer", "format": "int32" }, "memoryMiB": { "description": "MemoryMiB is the size of a custom machine's memory, in MiB", "type": "integer", "format": "int64" }, "name": { "type": "string" }, "numCPUs": { "description": "NumCPUs is the number in a custom machine", "type": "integer", "format": "int32" } } }, "nics": { "type": "array", "items": { "description": "Custom network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "networkName": { "type": "string" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } }, "sshKeyName": { "type": "string" } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified Custom machine", "operationId": "v1CloudConfigsCustomPoolMachinesUidDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud type", "name": "cloudType", "in": "path", "required": true }, { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true }, { "type": "string", "description": "Machine uid", "name": "machineUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/edge-native/{configUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified edge-native cloud config", "operationId": "v1CloudConfigsEdgeNativeGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "EdgeNativeCloudConfig is the Schema for the edgenativecloudconfigs API", "type": "object", "properties": { "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "EdgeNativeCloudConfigSpec defines the desired state of EdgeNativeCloudConfig", "type": "object", "required": [ "clusterConfig", "machinePoolConfig" ], "properties": { "clusterConfig": { "description": "EdgeNativeClusterConfig definnes Edge Native Cluster specific Spec", "type": "object", "properties": { "controlPlaneEndpoint": { "type": "object", "properties": { "ddnsSearchDomain": { "description": "DDNSSearchDomain is the search domain used for resolving IP addresses when the EndpointType is DDNS. This search domain is appended to the generated Hostname to obtain the complete DNS name for the endpoint. If Host is already a DDNS FQDN, DDNSSearchDomain is not required", "type": "string" }, "host": { "description": "Host is FQDN(DDNS) or IP", "type": "string" }, "type": { "description": "Type indicates DDNS or VIP", "type": "string", "enum": [ "VIP", "External", "DDNS" ] } } }, "ntpServers": { "description": "NTPServers is a list of NTP servers to use instead of the machine image's default NTP server list", "type": "array", "items": { "type": "string", "default": "" } }, "overlayNetworkConfiguration": { "type": "object", "properties": { "cidr": { "description": "CIDR is the CIDR of the overlay network", "type": "string" }, "enable": { "description": "Enable is a flag to enable overlay network", "type": "boolean", "x-omitempty": false } } }, "sshKeys": { "description": "SSHKeys specifies a list of ssh authorized keys to access the vms as a 'spectro' user", "type": "array", "items": { "type": "string", "default": "" } }, "staticIp": { "description": "StaticIP indicates if IP allocation type is static IP. DHCP is the default allocation type", "type": "boolean" } } }, "machinePoolConfig": { "type": "array", "items": { "type": "object", "required": [ "hosts" ], "properties": { "additionalLabels": { "description": "AdditionalLabels", "type": "object", "additionalProperties": { "type": "string", "default": "" } }, "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole", "type": "object", "additionalProperties": { "type": "string", "default": "" } }, "hosts": { "type": "array", "items": { "description": "EdgeNativeHost is the underlying appliance", "type": "object", "required": [ "hostUid", "hostAddress" ], "properties": { "IsCandidateCaption": { "description": "Is Edge host nominated as candidate", "type": "boolean", "default": false, "x-omitempty": false }, "caCert": { "description": "CACert for TLS connections", "type": "string" }, "hostAddress": { "description": "HostAddress is a FQDN or IP address of the Host", "type": "string", "default": "" }, "hostName": { "description": "Qualified name of host", "type": "string", "default": "" }, "hostUid": { "description": "HostUid is the ID of the EdgeHost", "type": "string", "default": "" }, "nic": { "type": "object", "properties": { "dns": { "type": "array", "items": { "type": "string" } }, "gateway": { "type": "string" }, "ip": { "type": "string" }, "isDefault": { "type": "boolean" }, "macAddr": { "type": "string" }, "nicName": { "type": "string" }, "subnet": { "type": "string" } } }, "nicName": { "description": "Deprecated. Edge host nic name", "type": "string" }, "staticIP": { "description": "Deprecated. Edge host static IP", "type": "string" }, "twoNodeCandidatePriority": { "description": "Set the edgehost candidate priority as primary or secondary, if the edgehost is nominated as two node candidate", "type": "string", "enum": [ "primary", "secondary" ] } } } }, "isControlPlane": { "description": "whether this pool is for control plane", "type": "boolean" }, "labels": { "description": "labels for this pool, example: control-plane/worker, gpu, windows", "type": "array", "items": { "type": "string", "default": "" } }, "machinePoolProperties": { "description": "Machine pool specific properties", "type": "object", "properties": { "archType": { "type": "string", "default": "amd64", "enum": [ "amd64", "arm64" ] } } }, "maxSize": { "description": "max size of the pool, for scaling", "type": "integer", "format": "int32" }, "minSize": { "description": "min size of the pool, for scaling", "type": "integer", "format": "int32" }, "name": { "type": "string" }, "nodeRepaveInterval": { "description": "Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster", "type": "integer", "format": "int32" }, "osType": { "description": "the os type for the pool, must be supported by the provider", "type": "string" }, "size": { "description": "size of the pool, number of machines", "type": "integer", "format": "int32" }, "taints": { "description": "control plane or worker taints", "type": "array", "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "updateStrategy": { "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut =\u003e maxSurge=1, maxUnavailable=0 ScaleIn =\u003e maxSurge=0, maxUnavailable=1", "type": "object", "properties": { "type": { "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", "type": "string", "enum": [ "RollingUpdateScaleOut", "RollingUpdateScaleIn" ] } } }, "useControlPlaneAsWorker": { "description": "if IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean" } } } } } }, "status": { "description": "EdgeNativeCloudConfigStatus defines the observed state of EdgeNativeCloudConfig", "type": "object", "properties": { "conditions": { "type": "array", "items": { "type": "object", "required": [ "type", "status" ], "properties": { "lastProbeTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "lastTransitionTime": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "message": { "description": "Human-readable message indicating details about last transition.", "type": "string" }, "reason": { "description": "Unique, one-word, CamelCase reason for the condition's last transition.", "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "nodeImage": { "type": "string" }, "sourceImageId": { "description": "SourceImageId can be from packref's annotations or from pack.json", "type": "string" } } } } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/edge-native/{configUid}/clusterConfig": { "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the cluster configuration information", "operationId": "v1CloudConfigsEdgeNativeUidClusterConfig", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "EdgeNative cloud cluster config entity", "type": "object", "properties": { "clusterConfig": { "description": "EdgeNativeClusterConfig definnes Edge Native Cluster specific Spec", "type": "object", "properties": { "controlPlaneEndpoint": { "type": "object", "properties": { "ddnsSearchDomain": { "description": "DDNSSearchDomain is the search domain used for resolving IP addresses when the EndpointType is DDNS. This search domain is appended to the generated Hostname to obtain the complete DNS name for the endpoint. If Host is already a DDNS FQDN, DDNSSearchDomain is not required", "type": "string" }, "host": { "description": "Host is FQDN(DDNS) or IP", "type": "string" }, "type": { "description": "Type indicates DDNS or VIP", "type": "string", "enum": [ "VIP", "External", "DDNS" ] } } }, "ntpServers": { "description": "NTPServers is a list of NTP servers to use instead of the machine image's default NTP server list", "type": "array", "items": { "type": "string", "default": "" } }, "overlayNetworkConfiguration": { "type": "object", "properties": { "cidr": { "description": "CIDR is the CIDR of the overlay network", "type": "string" }, "enable": { "description": "Enable is a flag to enable overlay network", "type": "boolean", "x-omitempty": false } } }, "sshKeys": { "description": "SSHKeys specifies a list of ssh authorized keys to access the vms as a 'spectro' user", "type": "array", "items": { "type": "string", "default": "" } }, "staticIp": { "description": "StaticIP indicates if IP allocation type is static IP. DHCP is the default allocation type", "type": "boolean" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/edge-native/{configUid}/machinePools": { "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates a edge-native cloud config's machine pool", "operationId": "v1CloudConfigsEdgeNativeMachinePoolCreate", "parameters": [ { "name": "body", "in": "body", "schema": { "type": "object", "properties": { "cloudConfig": { "required": [ "edgeHosts" ], "properties": { "edgeHosts": { "type": "array", "uniqueItems": true, "items": { "required": [ "hostUid" ], "properties": { "hostName": { "description": "Edge host name", "type": "string" }, "hostUid": { "description": "Edge host id", "type": "string" }, "nic": { "type": "object", "properties": { "dns": { "type": "array", "items": { "type": "string" } }, "gateway": { "type": "string" }, "ip": { "type": "string" }, "isDefault": { "type": "boolean" }, "macAddr": { "type": "string" }, "nicName": { "type": "string" }, "subnet": { "type": "string" } } }, "nicName": { "description": "Deprecated - Edge host nic name", "type": "string" }, "staticIP": { "description": "Deprecated - Edge host static IP", "type": "string" }, "twoNodeCandidatePriority": { "description": "Set the edgehost candidate priority as primary or secondary, if the edgehost is nominated as two node candidate", "type": "string", "enum": [ "primary", "secondary" ] } } } } } }, "poolConfig": { "description": "Machine pool configuration for the cluster", "type": "object", "required": [ "name", "size", "labels" ], "properties": { "additionalLabels": { "description": "Additional labels to be part of the machine pool", "type": "object", "additionalProperties": { "type": "string" } }, "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole", "type": "object", "additionalProperties": { "type": "string" } }, "isControlPlane": { "description": "Whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "labels": { "description": "Labels for this machine pool, example: control-plane/worker, gpu, windows", "type": "array", "items": { "type": "string" } }, "machinePoolProperties": { "description": "Machine pool specific properties", "type": "object", "properties": { "archType": { "type": "string", "default": "amd64", "enum": [ "amd64", "arm64" ] } } }, "maxSize": { "description": "Max size of the pool, for scaling", "type": "integer", "format": "int32" }, "minSize": { "description": "Min size of the pool, for scaling", "type": "integer", "format": "int32" }, "name": { "type": "string" }, "nodeRepaveInterval": { "description": "Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster", "type": "integer", "format": "int32" }, "size": { "description": "Size of the pool, number of nodes/machines", "type": "integer", "format": "int32" }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "updateStrategy": { "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut =\u003e maxSurge=1, maxUnavailable=0 ScaleIn =\u003e maxSurge=0, maxUnavailable=1", "type": "object", "properties": { "type": { "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", "type": "string", "enum": [ "RollingUpdateScaleOut", "RollingUpdateScaleIn" ] } } }, "useControlPlaneAsWorker": { "description": "If IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/edge-native/{configUid}/machinePools/{machinePoolName}": { "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified edge-native cloud config's machine pool", "operationId": "v1CloudConfigsEdgeNativeMachinePoolUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "type": "object", "properties": { "cloudConfig": { "required": [ "edgeHosts" ], "properties": { "edgeHosts": { "type": "array", "uniqueItems": true, "items": { "required": [ "hostUid" ], "properties": { "hostName": { "description": "Edge host name", "type": "string" }, "hostUid": { "description": "Edge host id", "type": "string" }, "nic": { "type": "object", "properties": { "dns": { "type": "array", "items": { "type": "string" } }, "gateway": { "type": "string" }, "ip": { "type": "string" }, "isDefault": { "type": "boolean" }, "macAddr": { "type": "string" }, "nicName": { "type": "string" }, "subnet": { "type": "string" } } }, "nicName": { "description": "Deprecated - Edge host nic name", "type": "string" }, "staticIP": { "description": "Deprecated - Edge host static IP", "type": "string" }, "twoNodeCandidatePriority": { "description": "Set the edgehost candidate priority as primary or secondary, if the edgehost is nominated as two node candidate", "type": "string", "enum": [ "primary", "secondary" ] } } } } } }, "poolConfig": { "description": "Machine pool configuration for the cluster", "type": "object", "required": [ "name", "size", "labels" ], "properties": { "additionalLabels": { "description": "Additional labels to be part of the machine pool", "type": "object", "additionalProperties": { "type": "string" } }, "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole", "type": "object", "additionalProperties": { "type": "string" } }, "isControlPlane": { "description": "Whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "labels": { "description": "Labels for this machine pool, example: control-plane/worker, gpu, windows", "type": "array", "items": { "type": "string" } }, "machinePoolProperties": { "description": "Machine pool specific properties", "type": "object", "properties": { "archType": { "type": "string", "default": "amd64", "enum": [ "amd64", "arm64" ] } } }, "maxSize": { "description": "Max size of the pool, for scaling", "type": "integer", "format": "int32" }, "minSize": { "description": "Min size of the pool, for scaling", "type": "integer", "format": "int32" }, "name": { "type": "string" }, "nodeRepaveInterval": { "description": "Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster", "type": "integer", "format": "int32" }, "size": { "description": "Size of the pool, number of nodes/machines", "type": "integer", "format": "int32" }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "updateStrategy": { "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut =\u003e maxSurge=1, maxUnavailable=0 ScaleIn =\u003e maxSurge=0, maxUnavailable=1", "type": "object", "properties": { "type": { "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", "type": "string", "enum": [ "RollingUpdateScaleOut", "RollingUpdateScaleIn" ] } } }, "useControlPlaneAsWorker": { "description": "If IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified machine pool", "operationId": "v1CloudConfigsEdgeNativeMachinePoolDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true } ] }, "/v1/cloudconfigs/edge-native/{configUid}/machinePools/{machinePoolName}/machines": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Retrieves a list of edge-native machines", "operationId": "v1CloudConfigsEdgeNativePoolMachinesList", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "An array of edge-native machine items", "schema": { "description": "EdgeNative machine list", "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "uniqueItems": true, "items": { "description": "EdgeNative cloud VM definition", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "EdgeNative cloud VM definition spec", "type": "object", "properties": { "edgeHostUid": { "type": "string" }, "instanceType": { "description": "EdgeNativeInstanceType defines the instance configuration for a docker container node", "type": "object", "properties": { "diskGiB": { "description": "DiskGiB is the size of a virtual machine's disk", "type": "integer", "format": "int32" }, "memoryMiB": { "description": "MemoryMiB is the size of a virtual machine's memory, in MiB", "type": "integer", "format": "int32" }, "name": { "description": "Name is the instance name", "type": "string" }, "numCPUs": { "description": "NumCPUs is the number of CPUs", "type": "integer", "format": "int32" } } }, "nics": { "type": "array", "uniqueItems": true, "items": { "description": "Generic network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "networkName": { "type": "string" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } } } } } } }, "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Adds the edge-native machine to cloud config's machine pool", "operationId": "v1CloudConfigsEdgeNativePoolMachinesAdd", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "EdgeNative cloud VM definition", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "EdgeNative cloud VM definition spec", "type": "object", "properties": { "edgeHostUid": { "type": "string" }, "instanceType": { "description": "EdgeNativeInstanceType defines the instance configuration for a docker container node", "type": "object", "properties": { "diskGiB": { "description": "DiskGiB is the size of a virtual machine's disk", "type": "integer", "format": "int32" }, "memoryMiB": { "description": "MemoryMiB is the size of a virtual machine's memory, in MiB", "type": "integer", "format": "int32" }, "name": { "description": "Name is the instance name", "type": "string" }, "numCPUs": { "description": "NumCPUs is the number of CPUs", "type": "integer", "format": "int32" } } }, "nics": { "type": "array", "uniqueItems": true, "items": { "description": "Generic network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "networkName": { "type": "string" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "201": { "description": "Created successfully", "schema": { "type": "object", "required": [ "uid" ], "properties": { "uid": { "type": "string" } } }, "headers": { "AuditUid": { "type": "string", "description": "Audit uid for the request" } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true } ] }, "/v1/cloudconfigs/edge-native/{configUid}/machinePools/{machinePoolName}/machines/{machineUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified edge-native machine", "operationId": "v1CloudConfigsEdgeNativePoolMachinesUidGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "EdgeNative cloud VM definition", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "EdgeNative cloud VM definition spec", "type": "object", "properties": { "edgeHostUid": { "type": "string" }, "instanceType": { "description": "EdgeNativeInstanceType defines the instance configuration for a docker container node", "type": "object", "properties": { "diskGiB": { "description": "DiskGiB is the size of a virtual machine's disk", "type": "integer", "format": "int32" }, "memoryMiB": { "description": "MemoryMiB is the size of a virtual machine's memory, in MiB", "type": "integer", "format": "int32" }, "name": { "description": "Name is the instance name", "type": "string" }, "numCPUs": { "description": "NumCPUs is the number of CPUs", "type": "integer", "format": "int32" } } }, "nics": { "type": "array", "uniqueItems": true, "items": { "description": "Generic network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "networkName": { "type": "string" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } } } }, "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the specified machine to cloud config's machine pool", "operationId": "v1CloudConfigsEdgeNativePoolMachinesUidUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "EdgeNative cloud VM definition", "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "EdgeNative cloud VM definition spec", "type": "object", "properties": { "edgeHostUid": { "type": "string" }, "instanceType": { "description": "EdgeNativeInstanceType defines the instance configuration for a docker container node", "type": "object", "properties": { "diskGiB": { "description": "DiskGiB is the size of a virtual machine's disk", "type": "integer", "format": "int32" }, "memoryMiB": { "description": "MemoryMiB is the size of a virtual machine's memory, in MiB", "type": "integer", "format": "int32" }, "name": { "description": "Name is the instance name", "type": "string" }, "numCPUs": { "description": "NumCPUs is the number of CPUs", "type": "integer", "format": "int32" } } }, "nics": { "type": "array", "uniqueItems": true, "items": { "description": "Generic network interface", "type": "object", "properties": { "index": { "type": "integer", "format": "int8" }, "networkName": { "type": "string" }, "privateIPs": { "type": "array", "items": { "type": "string" } }, "publicIp": { "type": "string" } } } } } }, "status": { "description": "cloud machine status", "type": "object", "properties": { "health": { "description": "Machine health state", "type": "object", "properties": { "conditions": { "type": "array", "items": { "description": "Machine health condition", "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "status": { "type": "string" }, "type": { "type": "string" } } } }, "lastHeartBeatTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "state": { "type": "string" } } }, "instanceState": { "type": "string", "enum": [ "Pending", "Provisioning", "Provisioned", "Running", "Deleting", "Deleted", "Failed", "Unknown" ] }, "maintenanceStatus": { "description": "Machine maintenance status", "type": "object", "properties": { "action": { "type": "string" }, "message": { "type": "string" }, "state": { "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "delete": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Deletes the specified edge-native machine", "operationId": "v1CloudConfigsEdgeNativePoolMachinesUidDelete", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was deleted successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true }, { "type": "string", "description": "Machine pool name", "name": "machinePoolName", "in": "path", "required": true }, { "type": "string", "description": "Machine uid", "name": "machineUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/eks/{configUid}": { "get": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Returns the specified EKS cloud config", "operationId": "v1CloudConfigsEksGet", "parameters": [ { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "200": { "description": "OK", "schema": { "description": "EksCloudConfig is the Schema for the ekscloudconfigs API", "type": "object", "properties": { "apiVersion": { "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", "type": "string" }, "kind": { "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", "type": "string" }, "metadata": { "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "type": "object", "properties": { "annotations": { "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", "type": "object", "additionalProperties": { "type": "string" } }, "creationTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "deletionTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "labels": { "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", "type": "object", "additionalProperties": { "type": "string" } }, "lastModifiedTimestamp": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", "type": "string" }, "uid": { "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } } }, "spec": { "description": "EksCloudConfigSpec defines the cloud configuration input by user", "type": "object", "properties": { "cloudAccountRef": { "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", "type": "object", "properties": { "kind": { "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", "type": "string" }, "name": { "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "uid": { "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", "type": "string" } } }, "clusterConfig": { "description": "EksClusterConfig defines EKS specific config", "type": "object", "required": [ "region" ], "properties": { "addons": { "description": "Addons defines the EKS addons to enable with the EKS cluster. This may be required for brownfield clusters", "type": "array", "items": { "description": "EksAddon represents a EKS addon", "type": "object", "required": [ "name", "version" ], "properties": { "conflictResolution": { "description": "ConflictResolution is used to declare what should happen if there are parameter conflicts.", "type": "string" }, "name": { "description": "Name is the name of the addon", "type": "string" }, "serviceAccountRoleARN": { "description": "ServiceAccountRoleArn is the ARN of an IAM role to bind to the addons service account", "type": "string" }, "version": { "description": "Version is the version of the addon to use", "type": "string" } } } }, "bastionDisabled": { "description": "BastionDisabled is the option to disable bastion node", "type": "boolean" }, "controlPlaneLoadBalancer": { "description": "ControlPlaneLoadBalancer specifies how API server elb will be configured, this field is optional, not provided, \"\", default =\u003e \"Internet-facing\" \"Internet-facing\" =\u003e \"Internet-facing\" \"internal\" =\u003e \"internal\" For spectro saas setup we require to talk to the apiserver from our cluster so ControlPlaneLoadBalancer should be \"\", not provided or \"Internet-facing\"", "type": "string" }, "encryptionConfig": { "description": "EncryptionConfig specifies the encryption configuration for the EKS clsuter.", "type": "object", "properties": { "isEnabled": { "description": "Is encryption configuration enabled for the cluster", "type": "boolean" }, "provider": { "description": "Provider specifies the ARN or alias of the CMK (in AWS KMS)", "type": "string" }, "resources": { "description": "Resources specifies the resources to be encrypted", "type": "array", "items": { "type": "string" } } } }, "endpointAccess": { "description": "EndpointAccess specifies how control plane endpoints are accessible", "type": "object", "properties": { "private": { "description": "Private points VPC-internal control plane access to the private endpoint", "type": "boolean" }, "privateCIDRs": { "description": "PrivateCIDRs specifies which blocks can access the private endpoint", "type": "array", "items": { "type": "string" } }, "public": { "description": "Public controls whether control plane endpoints are publicly accessible", "type": "boolean" }, "publicCIDRs": { "description": "PublicCIDRs specifies which blocks can access the public endpoint", "type": "array", "items": { "type": "string" } } } }, "region": { "description": "The AWS Region the cluster lives in.", "type": "string" }, "sshKeyName": { "description": "SSHKeyName specifies which EC2 SSH key can be used to access machines.", "type": "string" }, "vpcId": { "description": "VPC Id to deploy cluster into should have one public and one private subnet for the the cluster creation, this field is optional, If VPC Id is not provided a fully managed VPC will be created", "type": "string" } } }, "fargateProfiles": { "type": "array", "items": { "description": "FargateProfile defines the desired state of FargateProfile", "type": "object", "required": [ "name" ], "properties": { "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to AWS resources managed by the AWS provider, in addition to the ones added by default.", "type": "object", "additionalProperties": { "type": "string" } }, "name": { "description": "name specifies the profile name.", "type": "string" }, "selectors": { "description": "Selectors specify fargate pod selectors.", "type": "array", "items": { "description": "FargateSelector specifies a selector for pods that should run on this fargate pool", "type": "object", "required": [ "namespace" ], "properties": { "labels": { "description": "Labels specifies which pod labels this selector should match.", "type": "object", "additionalProperties": { "type": "string" } }, "namespace": { "description": "Namespace specifies which namespace this selector should match.", "type": "string" } } } }, "subnetIds": { "description": "SubnetIDs specifies which subnets are used for the auto scaling group of this nodegroup.", "type": "array", "items": { "type": "string" } } } } }, "machinePoolConfig": { "type": "array", "items": { "type": "object", "required": [ "isControlPlane" ], "properties": { "additionalLabels": { "description": "additionalLabels", "type": "object", "additionalProperties": { "type": "string" } }, "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole", "type": "object", "additionalProperties": { "type": "string" } }, "awsLaunchTemplate": { "description": "AWSLaunchTemplate specifies the launch template to use to create the managed node group", "type": "object", "properties": { "additionalSecurityGroups": { "description": "AdditionalSecurityGroups is an array of references to security groups that should be applied to the instances", "type": "array", "uniqueItems": true, "items": { "description": "AWSResourceReference is a reference to a specific AWS resource by ID or filters", "type": "object", "properties": { "arn": { "description": "ARN of resource", "type": "string" }, "filters": { "description": "Filters is a set of key/value pairs used to identify a resource", "type": "array", "uniqueItems": true, "items": { "description": "Filter is a filter used to identify an AWS resource", "type": "object", "properties": { "name": { "description": "Name of the filter. Filter names are case-sensitive", "type": "string" }, "values": { "description": "Values includes one or more filter values. Filter values are case-sensitive", "type": "array", "uniqueItems": true, "items": { "type": "string" } } } } }, "id": { "description": "ID of resource", "type": "string" } } } }, "ami": { "description": "AMI is the reference to the AMI from which to create the machine instance", "type": "object", "properties": { "eksOptimizedLookupType": { "description": "EKSOptimizedLookupType If specified, will look up an EKS Optimized image in SSM Parameter store", "type": "string", "enum": [ "AmazonLinux", "AmazonLinuxGPU" ] }, "id": { "description": "ID of resource", "type": "string" } } }, "imageLookupBaseOS": { "description": "ImageLookupBaseOS is the name of the base operating system to use for image lookup the AMI is not set", "type": "string" }, "imageLookupFormat": { "description": "ImageLookupFormat is the AMI naming format to look up the image", "type": "string" }, "imageLookupOrg": { "description": "ImageLookupOrg is the AWS Organization ID to use for image lookup if AMI is not set", "type": "string" }, "rootVolume": { "description": "Volume encapsulates the configuration options for the storage device.", "type": "object", "properties": { "deviceName": { "description": "Device name", "type": "string" }, "encrypted": { "description": "EncryptionKey is the KMS key to use to encrypt the volume. Can be either a KMS key ID or ARN", "type": "boolean" }, "encryptionKey": { "description": "EncryptionKey is the KMS key to use to encrypt the volume. Can be either a KMS key ID or ARN", "type": "string" }, "iops": { "description": "IOPS is the number of IOPS requested for the disk. Not applicable to all types", "type": "integer", "format": "int64" }, "throughput": { "description": "Throughput to provision in MiB/s supported for the volume type. Not applicable to all types.", "type": "integer", "format": "int64" }, "type": { "description": "Type is the type of the volume (e.g. gp2, io1, etc...)", "type": "string" } } } } }, "azs": { "description": "AZs is only used for dynamic placement", "type": "array", "items": { "type": "string" } }, "capacityType": { "description": "EC2 instance capacity type", "type": "string", "default": "on-demand", "enum": [ "on-demand", "spot" ] }, "enableAwsLaunchTemplate": { "description": "flag to know if aws launch template is enabled", "type": "boolean" }, "instanceConfig": { "properties": { "category": { "type": "string" }, "cpuSet": { "type": "integer", "format": "int64" }, "diskGiB": { "type": "integer", "format": "int64" }, "memoryMiB": { "description": "MemoryMiB is the size of a virtual machine's memory, in MiB", "type": "integer", "format": "int64" }, "name": { "type": "string" }, "numCPUs": { "description": "NumCPUs is the number of virtual processors in a virtual machine", "type": "integer", "format": "int32" } } }, "instanceType": { "description": "instance type", "type": "string" }, "isControlPlane": { "description": "whether this pool is for control plane", "type": "boolean", "x-omitempty": false }, "labels": { "description": "labels for this pool, example: control-plane/worker, gpu, windows", "type": "array", "items": { "type": "string" } }, "machinePoolProperties": { "description": "Machine pool specific properties", "type": "object", "properties": { "archType": { "type": "string", "default": "amd64", "enum": [ "amd64", "arm64" ] } } }, "maxSize": { "description": "max size of the pool, for scaling", "type": "integer", "format": "int32" }, "minSize": { "description": "min size of the pool, for scaling", "type": "integer", "format": "int32" }, "name": { "type": "string" }, "nodeRepaveInterval": { "description": "Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster", "type": "integer", "format": "int32" }, "rootDeviceSize": { "description": "rootDeviceSize in GBs", "type": "integer", "format": "int64" }, "size": { "description": "size of the pool, number of machines", "type": "integer", "format": "int32" }, "spotMarketOptions": { "description": "SpotMarketOptions defines the options available to a user when configuring Machines to run on Spot instances. Most users should provide an empty struct.", "type": "object", "properties": { "maxPrice": { "description": "MaxPrice defines the maximum price the user is willing to pay for Spot VM instances", "type": "string" } } }, "subnetIds": { "description": "AZ to subnet mapping filled by ally from hubble SubnetIDs [\"us-west-2d\"] = \"subnet-079b6061\" This field is optional If we don't provide a subnetId then by default the first private subnet from the AZ will be picked up for deployment", "type": "object", "additionalProperties": { "type": "string" } }, "taints": { "description": "control plane or worker taints", "type": "array", "uniqueItems": true, "items": { "description": "Taint", "type": "object", "properties": { "effect": { "type": "string", "enum": [ "NoSchedule", "PreferNoSchedule", "NoExecute" ] }, "key": { "description": "The taint key to be applied to a node", "type": "string" }, "timeAdded": { "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.", "type": "string", "format": "date-time" }, "value": { "description": "The taint value corresponding to the taint key.", "type": "string" } } } }, "updateStrategy": { "description": "UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut =\u003e maxSurge=1, maxUnavailable=0 ScaleIn =\u003e maxSurge=0, maxUnavailable=1", "type": "object", "properties": { "type": { "description": "update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut", "type": "string", "enum": [ "RollingUpdateScaleOut", "RollingUpdateScaleIn" ] } } }, "useControlPlaneAsWorker": { "description": "if IsControlPlane==true \u0026\u0026 useControlPlaneAsWorker==true, then will remove control plane taint this will not be used for worker pools", "type": "boolean", "x-omitempty": false } } } } } } } } } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/eks/{configUid}/clusterConfig": { "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates the cluster configuration information", "operationId": "v1CloudConfigsEksUidClusterConfig", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "EKS cloud cluster config entity", "type": "object", "properties": { "clusterConfig": { "description": "EksClusterConfig defines EKS specific config", "type": "object", "required": [ "region" ], "properties": { "addons": { "description": "Addons defines the EKS addons to enable with the EKS cluster. This may be required for brownfield clusters", "type": "array", "items": { "description": "EksAddon represents a EKS addon", "type": "object", "required": [ "name", "version" ], "properties": { "conflictResolution": { "description": "ConflictResolution is used to declare what should happen if there are parameter conflicts.", "type": "string" }, "name": { "description": "Name is the name of the addon", "type": "string" }, "serviceAccountRoleARN": { "description": "ServiceAccountRoleArn is the ARN of an IAM role to bind to the addons service account", "type": "string" }, "version": { "description": "Version is the version of the addon to use", "type": "string" } } } }, "bastionDisabled": { "description": "BastionDisabled is the option to disable bastion node", "type": "boolean" }, "controlPlaneLoadBalancer": { "description": "ControlPlaneLoadBalancer specifies how API server elb will be configured, this field is optional, not provided, \"\", default =\u003e \"Internet-facing\" \"Internet-facing\" =\u003e \"Internet-facing\" \"internal\" =\u003e \"internal\" For spectro saas setup we require to talk to the apiserver from our cluster so ControlPlaneLoadBalancer should be \"\", not provided or \"Internet-facing\"", "type": "string" }, "encryptionConfig": { "description": "EncryptionConfig specifies the encryption configuration for the EKS clsuter.", "type": "object", "properties": { "isEnabled": { "description": "Is encryption configuration enabled for the cluster", "type": "boolean" }, "provider": { "description": "Provider specifies the ARN or alias of the CMK (in AWS KMS)", "type": "string" }, "resources": { "description": "Resources specifies the resources to be encrypted", "type": "array", "items": { "type": "string" } } } }, "endpointAccess": { "description": "EndpointAccess specifies how control plane endpoints are accessible", "type": "object", "properties": { "private": { "description": "Private points VPC-internal control plane access to the private endpoint", "type": "boolean" }, "privateCIDRs": { "description": "PrivateCIDRs specifies which blocks can access the private endpoint", "type": "array", "items": { "type": "string" } }, "public": { "description": "Public controls whether control plane endpoints are publicly accessible", "type": "boolean" }, "publicCIDRs": { "description": "PublicCIDRs specifies which blocks can access the public endpoint", "type": "array", "items": { "type": "string" } } } }, "region": { "description": "The AWS Region the cluster lives in.", "type": "string" }, "sshKeyName": { "description": "SSHKeyName specifies which EC2 SSH key can be used to access machines.", "type": "string" }, "vpcId": { "description": "VPC Id to deploy cluster into should have one public and one private subnet for the the cluster creation, this field is optional, If VPC Id is not provided a fully managed VPC will be created", "type": "string" } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/eks/{configUid}/fargateProfiles": { "put": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Updates EKS cloud config's fargate profiles", "operationId": "v1CloudConfigsEksUidFargateProfilesUpdate", "parameters": [ { "name": "body", "in": "body", "schema": { "description": "Fargate profiles", "type": "object", "properties": { "fargateProfiles": { "type": "array", "items": { "description": "FargateProfile defines the desired state of FargateProfile", "type": "object", "required": [ "name" ], "properties": { "additionalTags": { "description": "AdditionalTags is an optional set of tags to add to AWS resources managed by the AWS provider, in addition to the ones added by default.", "type": "object", "additionalProperties": { "type": "string" } }, "name": { "description": "name specifies the profile name.", "type": "string" }, "selectors": { "description": "Selectors specify fargate pod selectors.", "type": "array", "items": { "description": "FargateSelector specifies a selector for pods that should run on this fargate pool", "type": "object", "required": [ "namespace" ], "properties": { "labels": { "description": "Labels specifies which pod labels this selector should match.", "type": "object", "additionalProperties": { "type": "string" } }, "namespace": { "description": "Namespace specifies which namespace this selector should match.", "type": "string" } } } }, "subnetIds": { "description": "SubnetIDs specifies which subnets are used for the auto scaling group of this nodegroup.", "type": "array", "items": { "type": "string" } } } } } } } }, { "type": "string", "description": "Scope the request to the specified project uid", "name": "ProjectUid", "in": "header" } ], "responses": { "204": { "description": "The resource was updated successfully" } } }, "parameters": [ { "type": "string", "description": "Cluster's cloud config uid", "name": "configUid", "in": "path", "required": true } ] }, "/v1/cloudconfigs/eks/{configUid}/machinePools": { "post": { "security": [ { "ApiKey": [] }, { "Authorization": [] } ], "tags": [ "v1" ], "summary": "Creates an EKS cloud config's machine pool", "operationId": "v1CloudConfigsEksMachinePoolCreate", "parameters": [ { "name": "body", "in": "body", "schema": { "properties": { "cloudConfig": { "properties": { "awsLaunchTemplate": { "description": "AWSLaunchTemplate specifies the launch template to use to create the managed node group", "type": "object", "properties": { "additionalSecurityGroups": { "description": "AdditionalSecurityGroups is an array of references to security groups that should be applied to the instances", "type": "array", "uniqueItems": true, "items": { "description": "AWSResourceReference is a reference to a specific AWS resource by ID or filters", "type": "object", "properties": { "arn": { "description": "ARN of resource", "type": "string" }, "filters": { "description": "Filters is a set of key/value pairs used to identify a resource", "type": "array", "uniqueItems": true, "items": { "description": "Filter is a filter used to identify an AWS resource", "type": "object", "properties": { "name": { "description": "Name of the filter. Filter names are case-sensitive", "type": "string" }, "values": { "description": "Values includes one or more filter values. Filter values are case-sensitive", "type": "array", "uniqueItems": true, "items": { "type": "string" } } } } }, "id": { "description": "ID of resource", "type": "string" } } } }, "ami": { "description": "AMI is the reference to the AMI from which to create the machine instance", "type": "object", "properties": { "eksOptimizedLookupType": { "description": "EKSOptimizedLookupType If specified, will look up an EKS Optimized image in SSM Parameter store", "type": "string", "enum": [ "AmazonLinux", "AmazonLinuxGPU" ] }, "id": { "description": "ID of resource", "type": "string" } } }, "imageLookupBaseOS": { "description": "ImageLookupBaseOS is the name of the base operating system to use for image lookup the AMI is not set", "type": "string" }, "imageLookupFormat": { "description": "ImageLookupFormat is the AMI naming format to look up the image", "type": "string" }, "imageLookupOrg": { "description": "ImageLookupOrg is the AWS Organization ID to use for image lookup if AMI is not set", "type": "string" }, "rootVolume": { "description": "Volume encapsulates the configuration options for the storage device.", "type": "object", "properties": { "deviceName": { "description": "Device name", "type": "string" }, "encrypted": {