definitions: | |
# Generic response model | |
V4GenericResponse: | |
type: object | |
properties: | |
message: | |
type: string | |
description: A human readable message | |
code: | |
type: string | |
description: | | |
A machine readable [response code](https://github.com/giantswarm/api-spec/blob/master/details/RESPONSE_CODES.md) like e. g. `INVALID_CREDENTIALS` | |
# Info resposne | |
V4InfoResponse: | |
type: object | |
properties: | |
general: | |
description: General information | |
type: object | |
properties: | |
installation_name: | |
description: Unique name of the installation | |
type: string | |
provider: | |
description: The technical provider used in this installation. Either "kvm", "aws", or "azure". | |
type: string | |
datacenter: | |
description: Identifier of the datacenter or cloud provider region, e. g. "eu-west-1" | |
type: string | |
workers: | |
description: Information related to worker nodes | |
type: object | |
properties: | |
count_per_cluster: | |
description: Number of workers per cluster | |
type: object | |
properties: | |
max: | |
description: Maximum number of worker a cluster can have | |
type: number | |
default: | |
description: Default number of workers in a new cluster will have, if not specifiec otherwise | |
type: number | |
instance_type: | |
description: Instance types to be used for worker nodes. Only available for AWS clusters. | |
type: object | |
properties: | |
options: | |
description: List of available instance types | |
type: array | |
items: | |
type: string | |
default: | |
description: The instance type used in new cluster, if not specified | |
type: string | |
vm_size: | |
description: Azure Virtual Machine size to be used for worker nodes. Only available for Azure clusters. | |
type: object | |
properties: | |
options: | |
description: List of available instance types | |
type: array | |
items: | |
type: string | |
default: | |
description: The instance type used in new cluster, if not specified | |
type: string | |
# Request to create a new cluster | |
V4AddClusterRequest: | |
type: object | |
required: | |
- owner | |
description: Request model for creating a new cluster | |
properties: | |
owner: | |
type: string | |
description: Name of the organization owning the cluster | |
name: | |
type: string | |
description: Cluster name | |
release_version: | |
type: string | |
description: | | |
The [release](https://docs.giantswarm.io/api/#tag/releases) version | |
to use in the new cluster | |
kubernetes_version: | |
type: string | |
description: | | |
Kubernetes version number (deprecated). Doesn't have any effect. | |
This attribute is going to be removed in future API versions. | |
workers: | |
type: array | |
items: | |
$ref: '#/definitions/V4NodeDefinition' | |
V4ModifyClusterRequest: | |
type: object | |
required: [] | |
description: Request body for cluster modification | |
properties: | |
name: | |
type: string | |
description: Name for the cluster | |
owner: | |
type: string | |
description: Name of the organization owning the cluster | |
release_version: | |
type: string | |
description: Release version to use after an upgrade | |
workers: | |
type: array | |
description: Worker node array | |
items: | |
$ref: '#/definitions/V4NodeDefinition' | |
# Details on existing cluster | |
V4ClusterDetailsResponse: | |
type: object | |
description: Response model showing details of a cluster | |
properties: | |
id: | |
type: string | |
description: Unique cluster identifier | |
api_endpoint: | |
type: string | |
description: URI of the Kubernetes API endpoint | |
create_date: | |
type: string | |
description: Date/time of cluster creation | |
owner: | |
type: string | |
description: Name of the organization owning the cluster | |
name: | |
type: string | |
description: Cluster name | |
release_version: | |
type: string | |
description: | | |
The [release](https://docs.giantswarm.io/api/#tag/releases) version | |
currently running this cluster. | |
kubernetes_version: | |
type: string | |
description: Deprecated. Will be removed in a future API version. | |
workers: | |
type: array | |
items: | |
$ref: '#/definitions/V4NodeDefinition' | |
kvm: | |
type: object | |
description: Attributes specific to clusters running on KVM (on-prem) installations. | |
properties: | |
port_mappings: | |
type: array | |
description: | | |
Reveals the ports on the host cluster that are mapped to this guest cluster's ingress | |
and which protocol that port supports. Only shown and relevant on our on-prem KVM clusters. | |
items: | |
type: object | |
properties: | |
port: | |
description: | | |
The port on the host cluster that will forward traffic to the guest cluster | |
type: integer | |
protocol: | |
description: | | |
The protocol this port mapping is made for. | |
type: string | |
# Definition of a cluster node | |
V4NodeDefinition: | |
type: object | |
properties: | |
aws: | |
type: object | |
description: | | |
Attributes specific to nodes running on Amazon Web Services (AWS) | |
properties: | |
instance_type: | |
type: string | |
description: | | |
EC2 instance type name. Must be the same for all worker nodes | |
of a cluster. | |
azure: | |
type: object | |
description: | | |
Attributes specific to nodes running on Microsoft Azure | |
properties: | |
vm_size: | |
type: string | |
description: | | |
Azure Virtual Machine size. Must be the same for all worker nodes | |
of a cluster. | |
memory: | |
type: object | |
properties: | |
size_gb: | |
type: number | |
description: RAM size in GB. Can be an integer or float. | |
storage: | |
type: object | |
properties: | |
size_gb: | |
type: number | |
description: Node storage size in GB. Can be an integer or float. | |
cpu: | |
type: object | |
properties: | |
cores: | |
type: integer | |
description: Number of CPU cores | |
labels: | |
type: object | |
additionalProperties: true | |
# List of key pairs | |
V4GetKeyPairsResponse: | |
type: array | |
description: Array of sparse key pair objects | |
items: | |
type: object | |
properties: | |
id: | |
type: string | |
description: Unique identifier of the key pair | |
description: | |
type: string | |
description: Free text information about the key pair | |
ttl_hours: | |
type: integer | |
description: Expiration time (from creation) in hours | |
create_date: | |
type: string | |
description: Date/time of creation | |
common_name: | |
type: string | |
description: The common name of the certificate subject. | |
certificate_organizations: | |
type: string | |
description: The certificate subject's `organization` fields. | |
# Add key pair request | |
V4AddKeyPairRequest: | |
type: object | |
required: | |
- description | |
properties: | |
description: | |
type: string | |
description: Free text information about the key pair | |
ttl_hours: | |
type: integer | |
format: int32 | |
description: Expiration time (from creation) in hours | |
cn_prefix: | |
type: string | |
description: The common name prefix of the certificate subject. This only allows characters that are usable in domain names (`a-z`, `0-9`, and `.-`, where `.-` must not occur at either the start or the end). | |
certificate_organizations: | |
type: string | |
description: | | |
This will set the certificate subject's `organization` fields. | |
Use a comma seperated list of values. | |
V4AddKeyPairResponse: | |
type: object | |
properties: | |
id: | |
type: string | |
description: Unique identifier of the key pair | |
description: | |
type: string | |
description: Free text information about the key pair | |
ttl_hours: | |
type: integer | |
description: Expiration time (from creation) in hours | |
create_date: | |
type: string | |
description: Date/time of creation | |
certificate_authority_data: | |
type: string | |
description: PEM-encoded CA certificate of the cluster | |
client_key_data: | |
type: string | |
description: PEM-encoded RSA private key | |
client_certificate_data: | |
type: string | |
description: PEM-encoded certificate | |
# cluster metrics | |
V4GetClusterMetricsResponse: | |
description: Response for the getClusterMetrics operation | |
type: object | |
properties: | |
workers: | |
description: Group of metrics regarding workers | |
type: array | |
items: | |
$ref: '#/definitions/V4NodeMetrics' | |
V4NodeMetrics: | |
type: object | |
properties: | |
id: | |
description: String identifying the node | |
type: string | |
metrics: | |
description: Container object for all metrics available for the node | |
type: object | |
properties: | |
container_count: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
pod_count: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
cpu_used: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
ram_free: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
ram_available: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
ram_cached: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
ram_buffers: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
ram_mapped: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
node_storage_used: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
network_rx: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
network_tx: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
resource_cpu_requests: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
resource_cpu_limits: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
resource_ram_requests: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
resource_ram_limits: | |
type: object | |
properties: | |
timestamp: | |
description: Time when the given value has been recorded | |
type: string | |
value: | |
description: The value for the metric. Can be an integer or float. | |
type: number | |
# a complete organization object | |
V4Organization: | |
type: object | |
properties: | |
id: | |
type: string | |
description: Unique name/identifier of the organization | |
members: | |
type: array | |
description: List of members that belong to this organization | |
items: | |
$ref: '#/definitions/V4OrganizationMember' | |
# An organization as returned by getOrganizations as an array item | |
V4OrganizationListItem: | |
type: object | |
properties: | |
id: | |
type: string | |
description: Unique name/identifier of the organization | |
# A user that belongs to an organization | |
V4OrganizationMember: | |
type: object | |
properties: | |
email: | |
type: string | |
description: Email address of the user | |
# One of the users in the array as returned by getUsers | |
V4UserListItem: | |
type: object | |
properties: | |
email: | |
type: string | |
description: Email address of the user | |
created: | |
type: string | |
description: The date and time that this account was created | |
expiry: | |
type: string | |
description: The date and time when this account will expire | |
# A cluster array item, as return by getClusters | |
V4ClusterListItem: | |
type: object | |
properties: | |
id: | |
type: string | |
description: Unique cluster identifier | |
create_date: | |
type: string | |
description: Date/time of cluster creation | |
name: | |
type: string | |
description: Cluster name | |
owner: | |
type: string | |
description: Name of the organization owning the cluster | |
release_version: | |
type: string | |
description: The semantic version number of this cluster | |
# A cluster array item, as return by getClusters | |
V4ReleaseListItem: | |
type: object | |
required: ["version", "timestamp", "changelog", "components"] | |
properties: | |
version: | |
type: string | |
description: The semantic version number | |
timestamp: | |
type: string | |
description: Date and time of the release creation | |
active: | |
type: boolean | |
description: | | |
If true, the version is available for new clusters and cluster | |
upgrades. Older versions become unavailable and thus have the | |
value `false` here. | |
changelog: | |
description: | | |
Structured list of changes in this release, in comparison to the | |
previous version, with respect to the contained components. | |
type: array | |
items: | |
type: object | |
properties: | |
component: | |
type: string | |
description: | | |
If the changed item was a component, this attribute is the | |
name of the component. | |
description: | |
type: string | |
description: Human-friendly description of the change | |
components: | |
description: | | |
List of components and their version contained in the release | |
type: array | |
items: | |
type: object | |
required: ["name", "version"] | |
properties: | |
name: | |
type: string | |
description: Name of the component | |
version: | |
type: string | |
description: Version number of the component | |
V4CreateUserRequest: | |
type: object | |
required: | |
- password | |
description: Request model for creating a new user | |
properties: | |
password: | |
type: string | |
description: A Base64 encoded password | |
expiry: | |
type: string | |
description: The date and time when this account will expire | |
V4AddCredentialsRequest: | |
type: object | |
required: | |
- provider | |
description: Request model for adding a set of credentials | |
properties: | |
provider: | |
type: string | |
aws: | |
type: object | |
description: Credentials specific to an AWS account | |
required: | |
- roles | |
properties: | |
roles: | |
type: object | |
description: IAM roles to assume by certain entities | |
required: | |
- awsoperator | |
- admin | |
properties: | |
admin: | |
type: string | |
description: ARN of the IAM role to assume by Giant Swarm support staff | |
awsoperator: | |
type: string | |
description: ARN of the IAM role to assume by the software operating clusters | |
# A request for an auth token | |
V4CreateAuthTokenRequest: | |
type: object | |
properties: | |
email: | |
type: string | |
description: Your email address | |
password_base64: | |
type: string | |
description: Your password as a base64 encoded string | |
# A response to a successful auth token request | |
V4CreateAuthTokenResponse: | |
type: object | |
properties: | |
auth_token: | |
type: string | |
description: The newly created API token | |