openapi: 3.2.0 info: title: Palette APIs - 4.9 App Deployments API version: v1 servers: - url: https://api.spectrocloud.com tags: - name: App Deployments x-displayName: App Deployments paths: /v1/appDeployments: post: operationId: v1AppDeploymentsVirtualClusterCreate parameters: - description: A project UID is required for project-scoped resources and should be omitted when targeting tenant-scoped resources in: header name: ProjectUid schema: type: string responses: '201': description: Created successfully headers: AuditUid: description: Audit uid for the request schema: type: string content: application/json: schema: $ref: '#/components/schemas/v1Uid' security: - ApiKey: [] - Authorization: [] summary: Creates a application deployment in the virtual cluster tags: - App Deployments requestBody: content: application/json: schema: $ref: '#/components/schemas/v1AppDeploymentVirtualClusterEntity' /v1/appDeployments/clusterGroup: post: operationId: v1AppDeploymentsClusterGroupCreate parameters: - description: A project UID is required for project-scoped resources and should be omitted when targeting tenant-scoped resources in: header name: ProjectUid schema: type: string responses: '201': description: Created successfully headers: AuditUid: description: Audit uid for the request schema: type: string content: application/json: schema: $ref: '#/components/schemas/v1Uid' security: - ApiKey: [] - Authorization: [] summary: Creates a application deployment in one of virtual clusters in the cluster group tags: - App Deployments requestBody: content: application/json: schema: $ref: '#/components/schemas/v1AppDeploymentClusterGroupEntity' /v1/appDeployments/{uid}: parameters: - description: Application deployment uid in: path name: uid required: true schema: type: string delete: operationId: v1AppDeploymentsUidDelete parameters: - description: A project UID is required for project-scoped resources and should be omitted when targeting tenant-scoped resources in: header name: ProjectUid schema: type: string responses: '204': description: The resource was deleted successfully security: - ApiKey: [] - Authorization: [] summary: Deletes the specified application deployment tags: - App Deployments get: operationId: v1AppDeploymentsUidGet parameters: - description: A project UID is required for project-scoped resources and should be omitted when targeting tenant-scoped resources in: header name: ProjectUid schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1AppDeployment' security: - ApiKey: [] - Authorization: [] summary: Returns the specified application deployment tags: - App Deployments /v1/appDeployments/{uid}/profile: parameters: - description: Application deployment uid in: path name: uid required: true schema: type: string get: operationId: v1AppDeploymentsUidProfileGet parameters: - description: A project UID is required for project-scoped resources and should be omitted when targeting tenant-scoped resources in: header name: ProjectUid schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1AppDeploymentProfileSpec' security: - ApiKey: [] - Authorization: [] summary: Returns profile of the specified application deployment tags: - App Deployments put: operationId: v1AppDeploymentsUidProfileUpdate parameters: - description: A project UID is required for project-scoped resources and should be omitted when targeting tenant-scoped resources in: header name: ProjectUid schema: type: string responses: '204': description: The resource was updated successfully security: - ApiKey: [] - Authorization: [] summary: Updates the specified application deployment profile tags: - App Deployments requestBody: content: application/json: schema: $ref: '#/components/schemas/v1AppDeploymentProfileEntity' /v1/appDeployments/{uid}/profile/apply: parameters: - description: Application deployment uid in: path name: uid required: true schema: type: string - description: Application deployment notification uid in: query name: notify schema: type: string patch: operationId: v1AppDeploymentsUidProfileApply parameters: - description: A project UID is required for project-scoped resources and should be omitted when targeting tenant-scoped resources in: header name: ProjectUid schema: type: string responses: '204': description: The resource was updated successfully security: - ApiKey: [] - Authorization: [] summary: Apply the application deployment profile updates tags: - App Deployments /v1/appDeployments/{uid}/profile/tiers/{tierUid}: parameters: - description: Application deployment uid in: path name: uid required: true schema: type: string - description: Application deployment tier uid in: path name: tierUid required: true schema: type: string get: operationId: v1AppDeploymentsProfileTiersUidGet parameters: - description: A project UID is required for project-scoped resources and should be omitted when targeting tenant-scoped resources in: header name: ProjectUid schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1AppTier' security: - ApiKey: [] - Authorization: [] summary: Returns the specified application deployment profile tier information tags: - App Deployments put: operationId: v1AppDeploymentsProfileTiersUidUpdate parameters: - description: A project UID is required for project-scoped resources and should be omitted when targeting tenant-scoped resources in: header name: ProjectUid schema: type: string responses: '204': description: The resource was updated successfully security: - ApiKey: [] - Authorization: [] summary: Updates the specified application deployment profile tier information tags: - App Deployments requestBody: content: application/json: schema: $ref: '#/components/schemas/v1AppTierUpdateEntity' /v1/appDeployments/{uid}/profile/tiers/{tierUid}/manifests: parameters: - description: Application deployment uid in: path name: uid required: true schema: type: string - description: Application deployment tier uid in: path name: tierUid required: true schema: type: string get: operationId: v1AppDeploymentsProfileTiersUidManifestsGet parameters: - description: A project UID is required for project-scoped resources and should be omitted when targeting tenant-scoped resources in: header name: ProjectUid schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1AppTierManifests' security: - ApiKey: [] - Authorization: [] summary: Retrieves a list of manifests of the specified application deployment profile… tags: - App Deployments /v1/appDeployments/{uid}/profile/tiers/{tierUid}/manifests/{manifestUid}: parameters: - description: Application deployment uid in: path name: uid required: true schema: type: string - description: Application deployment tier uid in: path name: tierUid required: true schema: type: string - description: Application deployment tier manifest uid in: path name: manifestUid required: true schema: type: string get: operationId: v1AppDeploymentsProfileTiersManifestsUidGet parameters: - description: A project UID is required for project-scoped resources and should be omitted when targeting tenant-scoped resources in: header name: ProjectUid schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1Manifest' security: - ApiKey: [] - Authorization: [] summary: Returns the specified application deployment tier manifest information tags: - App Deployments put: operationId: v1AppDeploymentsProfileTiersManifestsUidUpdate parameters: - description: A project UID is required for project-scoped resources and should be omitted when targeting tenant-scoped resources in: header name: ProjectUid schema: type: string responses: '204': description: The resource was updated successfully security: - ApiKey: [] - Authorization: [] summary: Updates the specified application deployment tier manifest information tags: - App Deployments requestBody: content: application/json: schema: $ref: '#/components/schemas/v1ManifestRefUpdateEntity' /v1/appDeployments/{uid}/profile/versions: parameters: - description: Application deployment uid in: path name: uid required: true schema: type: string get: operationId: v1AppDeploymentsUidProfileVersionsGet parameters: - description: A project UID is required for project-scoped resources and should be omitted when targeting tenant-scoped resources in: header name: ProjectUid schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/v1AppDeploymentProfileVersions' security: - ApiKey: [] - Authorization: [] summary: Retrieves a list of profile versions of the specified application deployment tags: - App Deployments components: schemas: v1ManifestData: description: Published manifest object properties: content: description: Manifest content in yaml type: string digest: description: Manifest digest type: string type: object v1ObjectMetaInputEntity: description: ObjectMeta input entity for object creation properties: annotations: additionalProperties: type: string 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 labels: additionalProperties: type: string 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 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 type: object v1AppTierManifests: description: Application tier manifests data properties: manifests: description: Application tier manifests array items: $ref: '#/components/schemas/v1Manifest' type: array v1AppDeploymentProfileEntity: description: Application deployment profile request payload properties: appProfileUid: description: Application deployment profile uid type: string required: - appProfileUid type: object v1LifecycleStatus: properties: msg: description: error or success msg of lifecycle type: string status: description: lifecycle status enum: - Pausing - Paused - Resuming - Running - Error type: string v1AppTierProperty: 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 v1AppTierPropertyEntity: description: Application tier property object properties: name: description: Application tier property name type: string value: description: Application tier property value type: string v1ClusterPackManifestStatus: properties: condition: $ref: '#/components/schemas/v1ClusterCondition' name: type: string uid: type: string type: object v1Time: description: Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. format: date-time type: string v1AppDeploymentClusterGroupEntity: description: Application deployment cluster group request payload properties: metadata: $ref: '#/components/schemas/v1ObjectMetaInputEntity' spec: $ref: '#/components/schemas/v1AppDeploymentClusterGroupSpec' type: object v1Manifest: description: Manifest object properties: metadata: $ref: '#/components/schemas/v1ObjectMeta' spec: $ref: '#/components/schemas/v1ManifestPublishedSpec' v1AppDeploymentProfileSpec: description: Application deployment profile spec properties: metadata: $ref: '#/components/schemas/v1AppDeploymentProfileMeta' template: $ref: '#/components/schemas/v1AppProfileTemplateSpec' type: object v1AppDeploymentTargetEnvironmentRef: description: Application deployment target environment reference 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 type: object v1AppDeploymentClusterGroupSpec: description: Application deployment cluster group spec properties: config: $ref: '#/components/schemas/v1AppDeploymentClusterGroupConfigEntity' profile: $ref: '#/components/schemas/v1AppDeploymentProfileEntity' type: object v1ManifestRefUpdateEntity: description: Manifest update request payload properties: content: description: Manifest content in yaml type: string name: description: Manifest name type: string uid: description: Manifest uid type: string required: - name v1AppDeploymentClusterGroupConfigEntity: description: Application deployment cluster group config properties: targetSpec: $ref: '#/components/schemas/v1AppDeploymentClusterGroupTargetSpec' type: object v1ObjectMeta: description: ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. properties: annotations: additionalProperties: type: string 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 creationTimestamp: $ref: '#/components/schemas/v1Time' description: 'CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' deletionTimestamp: $ref: '#/components/schemas/v1Time' description: 'DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested. Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' labels: additionalProperties: type: string 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 lastModifiedTimestamp: $ref: '#/components/schemas/v1Time' description: 'LastModifiedTimestamp is a timestamp representing the server time when this object was last modified. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata' 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. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' type: string type: object v1ObjectReference: description: ObjectReference contains enough information to let you inspect or modify the referred 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 type: object v1AppTier: properties: metadata: $ref: '#/components/schemas/v1ObjectMeta' spec: $ref: '#/components/schemas/v1AppTierSpec' v1AppDeploymentVirtualClusterConfigEntity: description: Application deployment virtual cluster config properties: targetSpec: $ref: '#/components/schemas/v1AppDeploymentVirtualClusterTargetSpec' type: object v1AppDeploymentSpec: description: Application deployment spec properties: config: $ref: '#/components/schemas/v1AppDeploymentConfig' profile: $ref: '#/components/schemas/v1AppDeploymentProfile' type: object v1AppDeploymentTargetClusterLimits: description: Application deployment target cluster limits properties: cpu: description: CPU cores format: int32 type: integer memoryMiB: description: Memory in MiB format: int32 type: integer storageGiB: description: Storage in GiB format: int32 type: integer v1AppDeploymentVirtualClusterSpec: description: Application deployment virtual cluster spec properties: config: $ref: '#/components/schemas/v1AppDeploymentVirtualClusterConfigEntity' profile: $ref: '#/components/schemas/v1AppDeploymentProfileEntity' type: object v1Uid: properties: uid: type: string required: - uid type: object v1ManifestPublishedSpec: description: Manifest spec properties: published: $ref: '#/components/schemas/v1ManifestData' v1ClusterPackStatus: properties: condition: $ref: '#/components/schemas/v1ClusterCondition' endTime: $ref: '#/components/schemas/v1Time' manifests: items: $ref: '#/components/schemas/v1ClusterPackManifestStatus' type: array name: type: string profileUid: type: string services: items: $ref: '#/components/schemas/v1LoadBalancerService' type: array startTime: $ref: '#/components/schemas/v1Time' type: type: string version: type: string type: object v1AppDeploymentClusterRef: description: Application deployment cluster reference properties: deploymentClusterType: description: Application deployment source cluster type[ "virtualCluster", "hostCluster" ] enum: - virtual - host type: string name: description: Application deployment cluster name type: string uid: description: Application deployment cluster uid type: string type: object v1ServicePort: properties: port: description: The port that will be exposed by this service. format: int32 type: integer protocol: type: string required: - port type: object v1AppDeploymentClusterGroupTargetSpec: description: Application deployment cluster group target spec properties: clusterGroupUid: description: Application deployment cluster group uid type: string clusterLimits: $ref: '#/components/schemas/v1AppDeploymentTargetClusterLimits' clusterName: description: Application deployment virtual cluster name type: string required: - clusterName - clusterGroupUid type: object v1AppTierSpec: description: Application tier specs properties: containerRegistryUid: description: Application tier container registry uid type: string installOrder: description: Application tier installation order format: int32 type: integer manifests: description: Application tier attached manifest content in yaml format items: $ref: '#/components/schemas/v1ObjectReference' type: array properties: description: Application tier properties items: $ref: '#/components/schemas/v1AppTierProperty' type: array registryUid: description: Registry uid type: string sourceAppTierUid: description: Application tier source pack uid type: string type: $ref: '#/components/schemas/v1AppTierType' description: Application tier type values: description: Application tier configuration values in yaml format type: string version: description: Application tier version type: string type: object v1AppDeploymentProfileVersions: description: Application deployment profile versions properties: availableVersions: description: Application deployment profile available versions items: $ref: '#/components/schemas/v1AppDeploymentProfileVersion' type: array latestVersions: description: Application deployment profile latest versions items: $ref: '#/components/schemas/v1AppDeploymentProfileVersion' type: array metadata: $ref: '#/components/schemas/v1AppDeploymentProfileMeta' type: object v1AppDeploymentVirtualClusterTargetSpec: description: Application deployment virtual cluster target spec properties: clusterUid: description: Application deployment virtual cluster uid type: string required: - clusterUid type: object v1AppTierUpdateEntity: description: Application tier update request payload properties: containerRegistryUid: description: Application tier container registry uid type: string installOrder: description: Application tier installation order format: int32 type: integer manifests: description: Application tier manifests items: $ref: '#/components/schemas/v1ManifestRefUpdateEntity' type: array name: description: Application tier name type: string properties: description: Application tier properties items: $ref: '#/components/schemas/v1AppTierPropertyEntity' type: array values: description: Application tier configuration values in yaml format type: string version: description: Application tier version type: string type: object v1AppDeploymentTargetConfig: description: Application deployment target config response properties: clusterRef: $ref: '#/components/schemas/v1AppDeploymentClusterRef' envRef: $ref: '#/components/schemas/v1AppDeploymentTargetEnvironmentRef' type: object v1AppDeploymentStatus: description: Application deployment status properties: appTiers: description: Application deployment tiers items: $ref: '#/components/schemas/v1ClusterPackStatus' type: array lifecycleStatus: $ref: '#/components/schemas/v1LifecycleStatus' state: description: Application deployment state [ "Pending", "Deploying", "Deployed", "Updating" ] type: string type: object v1AppProfileTemplateSpec: description: Application profile template specs properties: appTiers: description: Application profile tiers items: $ref: '#/components/schemas/v1AppTier' type: array uniqueItems: true registryRefs: description: Application profile registries reference items: $ref: '#/components/schemas/v1ObjectReference' type: array type: object v1AppProfileTemplate: description: Application profile template information properties: appTiers: description: Application profile tiers items: $ref: '#/components/schemas/v1AppTierRef' type: array uniqueItems: true registryRefs: description: Application profile registries reference items: $ref: '#/components/schemas/v1ObjectReference' type: array type: object v1AppDeploymentProfileVersion: description: Application deployment profile version properties: uid: description: Application deployment profile uid type: string version: description: Application deployment profile version type: string type: object v1AppDeploymentConfig: description: Application deployment config response properties: target: $ref: '#/components/schemas/v1AppDeploymentTargetConfig' type: object v1AppDeploymentProfileMeta: description: Application deployment profile metadata 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 type: object v1AppDeployment: description: Application deployment response properties: metadata: $ref: '#/components/schemas/v1ObjectMeta' spec: $ref: '#/components/schemas/v1AppDeploymentSpec' status: $ref: '#/components/schemas/v1AppDeploymentStatus' type: object v1AppDeploymentProfile: description: Application deployment profile properties: metadata: $ref: '#/components/schemas/v1AppDeploymentProfileMeta' template: $ref: '#/components/schemas/v1AppProfileTemplate' type: object v1LoadBalancerService: 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 items: $ref: '#/components/schemas/v1ServicePort' type: array type: object v1AppTierType: default: manifest enum: - manifest - helm - operator-instance - container type: string v1ClusterCondition: properties: lastProbeTime: $ref: '#/components/schemas/v1Time' lastTransitionTime: $ref: '#/components/schemas/v1Time' 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 required: - type - status type: object v1AppTierRef: description: Application tier reference properties: name: description: Application tier name type: string type: $ref: '#/components/schemas/v1AppTierType' uid: description: Application tier uid to uniquely identify the tier type: string version: description: Application tier version type: string type: object v1AppDeploymentVirtualClusterEntity: description: Application deployment virtual cluster request payload properties: metadata: $ref: '#/components/schemas/v1ObjectMetaInputEntity' spec: $ref: '#/components/schemas/v1AppDeploymentVirtualClusterSpec' type: object securitySchemes: ApiKey: description: API key authorization where API key can be generated from Palette console under Profile > My API Keys in: header name: ApiKey type: apiKey Authorization: description: JWT token authorization obtained using /v1/auth/authenticate api in: header name: Authorization type: apiKey