enumValues) {
+ this.description = description;
+ this.defaultValue = defaultValue;
+ this.enumValues = enumValues;
+ }
+}
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/StringUtil.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/StringUtil.java
new file mode 100644
index 0000000..c87cd2d
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/StringUtil.java
@@ -0,0 +1,61 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client;
+
+
+public class StringUtil {
+ /**
+ * Check if the given array contains the given value (with case-insensitive comparison).
+ *
+ * @param array The array
+ * @param value The value to search
+ * @return true if the array contains the value
+ */
+ public static boolean containsIgnoreCase(String[] array, String value) {
+ for (String str : array) {
+ if (value == null && str == null) {
+ return true;
+ }
+ if (value != null && value.equalsIgnoreCase(str)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Join an array of strings with the given separator.
+ *
+ * Note: This might be replaced by utility method from commons-lang or guava someday
+ * if one of those libraries is added as dependency.
+ *
+ *
+ * @param array The array of strings
+ * @param separator The separator
+ * @return the resulting string
+ */
+ public static String join(String[] array, String separator) {
+ int len = array.length;
+ if (len == 0) {
+ return "";
+ }
+
+ StringBuilder out = new StringBuilder();
+ out.append(array[0]);
+ for (int i = 1; i < len; i++) {
+ out.append(separator).append(array[i]);
+ }
+ return out.toString();
+ }
+}
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/auth/ApiKeyAuth.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/auth/ApiKeyAuth.java
new file mode 100644
index 0000000..cdfc525
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/auth/ApiKeyAuth.java
@@ -0,0 +1,77 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.auth;
+
+import io.github.che_incubator.devfile.kubernetes.client.Pair;
+
+import java.util.Map;
+import java.util.List;
+
+
+public class ApiKeyAuth implements Authentication {
+ private final String location;
+ private final String paramName;
+
+ private String apiKey;
+ private String apiKeyPrefix;
+
+ public ApiKeyAuth(String location, String paramName) {
+ this.location = location;
+ this.paramName = paramName;
+ }
+
+ public String getLocation() {
+ return location;
+ }
+
+ public String getParamName() {
+ return paramName;
+ }
+
+ public String getApiKey() {
+ return apiKey;
+ }
+
+ public void setApiKey(String apiKey) {
+ this.apiKey = apiKey;
+ }
+
+ public String getApiKeyPrefix() {
+ return apiKeyPrefix;
+ }
+
+ public void setApiKeyPrefix(String apiKeyPrefix) {
+ this.apiKeyPrefix = apiKeyPrefix;
+ }
+
+ @Override
+ public void applyToParams(List queryParams, Map headerParams, Map cookieParams) {
+ if (apiKey == null) {
+ return;
+ }
+ String value;
+ if (apiKeyPrefix != null) {
+ value = apiKeyPrefix + " " + apiKey;
+ } else {
+ value = apiKey;
+ }
+ if ("query".equals(location)) {
+ queryParams.add(new Pair(paramName, value));
+ } else if ("header".equals(location)) {
+ headerParams.put(paramName, value);
+ } else if ("cookie".equals(location)) {
+ cookieParams.put(paramName, value);
+ }
+ }
+}
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/auth/Authentication.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/auth/Authentication.java
new file mode 100644
index 0000000..5292995
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/auth/Authentication.java
@@ -0,0 +1,30 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.auth;
+
+import io.github.che_incubator.devfile.kubernetes.client.Pair;
+
+import java.util.Map;
+import java.util.List;
+
+public interface Authentication {
+ /**
+ * Apply authentication settings to header and query params.
+ *
+ * @param queryParams List of query parameters
+ * @param headerParams Map of header parameters
+ * @param cookieParams Map of cookie parameters
+ */
+ void applyToParams(List queryParams, Map headerParams, Map cookieParams);
+}
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/auth/HttpBasicAuth.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/auth/HttpBasicAuth.java
new file mode 100644
index 0000000..ac3f9b2
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/auth/HttpBasicAuth.java
@@ -0,0 +1,54 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.auth;
+
+import io.github.che_incubator.devfile.kubernetes.client.Pair;
+
+import okhttp3.Credentials;
+
+import java.util.Map;
+import java.util.List;
+
+import java.io.UnsupportedEncodingException;
+
+public class HttpBasicAuth implements Authentication {
+ private String username;
+ private String password;
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ @Override
+ public void applyToParams(List queryParams, Map headerParams, Map cookieParams) {
+ if (username == null && password == null) {
+ return;
+ }
+ headerParams.put("Authorization", Credentials.basic(
+ username == null ? "" : username,
+ password == null ? "" : password));
+ }
+}
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/auth/HttpBearerAuth.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/auth/HttpBearerAuth.java
new file mode 100644
index 0000000..a5fca63
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/auth/HttpBearerAuth.java
@@ -0,0 +1,60 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.auth;
+
+import io.github.che_incubator.devfile.kubernetes.client.Pair;
+
+import java.util.Map;
+import java.util.List;
+
+
+public class HttpBearerAuth implements Authentication {
+ private final String scheme;
+ private String bearerToken;
+
+ public HttpBearerAuth(String scheme) {
+ this.scheme = scheme;
+ }
+
+ /**
+ * Gets the token, which together with the scheme, will be sent as the value of the Authorization header.
+ *
+ * @return The bearer token
+ */
+ public String getBearerToken() {
+ return bearerToken;
+ }
+
+ /**
+ * Sets the token, which together with the scheme, will be sent as the value of the Authorization header.
+ *
+ * @param bearerToken The bearer token to send in the Authorization header
+ */
+ public void setBearerToken(String bearerToken) {
+ this.bearerToken = bearerToken;
+ }
+
+ @Override
+ public void applyToParams(List queryParams, Map headerParams, Map cookieParams) {
+ if(bearerToken == null) {
+ return;
+ }
+
+ headerParams.put("Authorization", (scheme != null ? upperCaseBearer(scheme) + " " : "") + bearerToken);
+ }
+
+ private static String upperCaseBearer(String scheme) {
+ return ("bearer".equalsIgnoreCase(scheme)) ? "Bearer" : scheme;
+ }
+}
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspace.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspace.java
new file mode 100644
index 0000000..b8c3d19
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspace.java
@@ -0,0 +1,219 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceMetadata;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpec;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceStatus;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * DevWorkspace is the Schema for the devworkspaces API
+ */
+@ApiModel(description = "DevWorkspace is the Schema for the devworkspaces API")
+
+public class V1alpha2DevWorkspace {
+ public static final String SERIALIZED_NAME_API_VERSION = "apiVersion";
+ @SerializedName(SERIALIZED_NAME_API_VERSION)
+ private String apiVersion;
+
+ public static final String SERIALIZED_NAME_KIND = "kind";
+ @SerializedName(SERIALIZED_NAME_KIND)
+ private String kind;
+
+ public static final String SERIALIZED_NAME_METADATA = "metadata";
+ @SerializedName(SERIALIZED_NAME_METADATA)
+ private V1alpha2DevWorkspaceMetadata metadata;
+
+ public static final String SERIALIZED_NAME_SPEC = "spec";
+ @SerializedName(SERIALIZED_NAME_SPEC)
+ private V1alpha2DevWorkspaceSpec spec;
+
+ public static final String SERIALIZED_NAME_STATUS = "status";
+ @SerializedName(SERIALIZED_NAME_STATUS)
+ private V1alpha2DevWorkspaceStatus status;
+
+
+ public V1alpha2DevWorkspace apiVersion(String apiVersion) {
+
+ this.apiVersion = apiVersion;
+ return this;
+ }
+
+ /**
+ * 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
+ * @return apiVersion
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "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")
+
+ public String getApiVersion() {
+ return apiVersion;
+ }
+
+
+ public void setApiVersion(String apiVersion) {
+ this.apiVersion = apiVersion;
+ }
+
+
+ public V1alpha2DevWorkspace kind(String kind) {
+
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * 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
+ * @return kind
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "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")
+
+ public String getKind() {
+ return kind;
+ }
+
+
+ public void setKind(String kind) {
+ this.kind = kind;
+ }
+
+
+ public V1alpha2DevWorkspace metadata(V1alpha2DevWorkspaceMetadata metadata) {
+
+ this.metadata = metadata;
+ return this;
+ }
+
+ /**
+ * Get metadata
+ * @return metadata
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceMetadata getMetadata() {
+ return metadata;
+ }
+
+
+ public void setMetadata(V1alpha2DevWorkspaceMetadata metadata) {
+ this.metadata = metadata;
+ }
+
+
+ public V1alpha2DevWorkspace spec(V1alpha2DevWorkspaceSpec spec) {
+
+ this.spec = spec;
+ return this;
+ }
+
+ /**
+ * Get spec
+ * @return spec
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpec getSpec() {
+ return spec;
+ }
+
+
+ public void setSpec(V1alpha2DevWorkspaceSpec spec) {
+ this.spec = spec;
+ }
+
+
+ public V1alpha2DevWorkspace status(V1alpha2DevWorkspaceStatus status) {
+
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get status
+ * @return status
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceStatus getStatus() {
+ return status;
+ }
+
+
+ public void setStatus(V1alpha2DevWorkspaceStatus status) {
+ this.status = status;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspace v1alpha2DevWorkspace = (V1alpha2DevWorkspace) o;
+ return Objects.equals(this.apiVersion, v1alpha2DevWorkspace.apiVersion) &&
+ Objects.equals(this.kind, v1alpha2DevWorkspace.kind) &&
+ Objects.equals(this.metadata, v1alpha2DevWorkspace.metadata) &&
+ Objects.equals(this.spec, v1alpha2DevWorkspace.spec) &&
+ Objects.equals(this.status, v1alpha2DevWorkspace.status);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(apiVersion, kind, metadata, spec, status);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspace {\n");
+ sb.append(" apiVersion: ").append(toIndentedString(apiVersion)).append("\n");
+ sb.append(" kind: ").append(toIndentedString(kind)).append("\n");
+ sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n");
+ sb.append(" spec: ").append(toIndentedString(spec)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceMetadata.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceMetadata.java
new file mode 100644
index 0000000..760df81
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceMetadata.java
@@ -0,0 +1,582 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceMetadataManagedFields;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceMetadataOwnerReferences;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
+ */
+@ApiModel(description = "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.")
+
+public class V1alpha2DevWorkspaceMetadata {
+ public static final String SERIALIZED_NAME_ANNOTATIONS = "annotations";
+ @SerializedName(SERIALIZED_NAME_ANNOTATIONS)
+ private Map annotations = null;
+
+ public static final String SERIALIZED_NAME_CLUSTER_NAME = "clusterName";
+ @SerializedName(SERIALIZED_NAME_CLUSTER_NAME)
+ private String clusterName;
+
+ public static final String SERIALIZED_NAME_CREATION_TIMESTAMP = "creationTimestamp";
+ @SerializedName(SERIALIZED_NAME_CREATION_TIMESTAMP)
+ private OffsetDateTime creationTimestamp;
+
+ public static final String SERIALIZED_NAME_DELETION_GRACE_PERIOD_SECONDS = "deletionGracePeriodSeconds";
+ @SerializedName(SERIALIZED_NAME_DELETION_GRACE_PERIOD_SECONDS)
+ private Long deletionGracePeriodSeconds;
+
+ public static final String SERIALIZED_NAME_DELETION_TIMESTAMP = "deletionTimestamp";
+ @SerializedName(SERIALIZED_NAME_DELETION_TIMESTAMP)
+ private OffsetDateTime deletionTimestamp;
+
+ public static final String SERIALIZED_NAME_FINALIZERS = "finalizers";
+ @SerializedName(SERIALIZED_NAME_FINALIZERS)
+ private List finalizers = null;
+
+ public static final String SERIALIZED_NAME_GENERATE_NAME = "generateName";
+ @SerializedName(SERIALIZED_NAME_GENERATE_NAME)
+ private String generateName;
+
+ public static final String SERIALIZED_NAME_GENERATION = "generation";
+ @SerializedName(SERIALIZED_NAME_GENERATION)
+ private Long generation;
+
+ public static final String SERIALIZED_NAME_LABELS = "labels";
+ @SerializedName(SERIALIZED_NAME_LABELS)
+ private Map labels = null;
+
+ public static final String SERIALIZED_NAME_MANAGED_FIELDS = "managedFields";
+ @SerializedName(SERIALIZED_NAME_MANAGED_FIELDS)
+ private List managedFields = null;
+
+ public static final String SERIALIZED_NAME_NAME = "name";
+ @SerializedName(SERIALIZED_NAME_NAME)
+ private String name;
+
+ public static final String SERIALIZED_NAME_NAMESPACE = "namespace";
+ @SerializedName(SERIALIZED_NAME_NAMESPACE)
+ private String namespace;
+
+ public static final String SERIALIZED_NAME_OWNER_REFERENCES = "ownerReferences";
+ @SerializedName(SERIALIZED_NAME_OWNER_REFERENCES)
+ private List ownerReferences = null;
+
+ public static final String SERIALIZED_NAME_RESOURCE_VERSION = "resourceVersion";
+ @SerializedName(SERIALIZED_NAME_RESOURCE_VERSION)
+ private String resourceVersion;
+
+ public static final String SERIALIZED_NAME_SELF_LINK = "selfLink";
+ @SerializedName(SERIALIZED_NAME_SELF_LINK)
+ private String selfLink;
+
+ public static final String SERIALIZED_NAME_UID = "uid";
+ @SerializedName(SERIALIZED_NAME_UID)
+ private String uid;
+
+
+ public V1alpha2DevWorkspaceMetadata annotations(Map annotations) {
+
+ this.annotations = annotations;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceMetadata putAnnotationsItem(String key, String annotationsItem) {
+ if (this.annotations == null) {
+ this.annotations = new HashMap<>();
+ }
+ this.annotations.put(key, annotationsItem);
+ return this;
+ }
+
+ /**
+ * 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
+ * @return annotations
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "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")
+
+ public Map getAnnotations() {
+ return annotations;
+ }
+
+
+ public void setAnnotations(Map annotations) {
+ this.annotations = annotations;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata clusterName(String clusterName) {
+
+ this.clusterName = clusterName;
+ return this;
+ }
+
+ /**
+ * The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
+ * @return clusterName
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.")
+
+ public String getClusterName() {
+ return clusterName;
+ }
+
+
+ public void setClusterName(String clusterName) {
+ this.clusterName = clusterName;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata creationTimestamp(OffsetDateTime creationTimestamp) {
+
+ this.creationTimestamp = creationTimestamp;
+ return this;
+ }
+
+ /**
+ * 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/sig-architecture/api-conventions.md#metadata
+ * @return creationTimestamp
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "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/sig-architecture/api-conventions.md#metadata")
+
+ public OffsetDateTime getCreationTimestamp() {
+ return creationTimestamp;
+ }
+
+
+ public void setCreationTimestamp(OffsetDateTime creationTimestamp) {
+ this.creationTimestamp = creationTimestamp;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata deletionGracePeriodSeconds(Long deletionGracePeriodSeconds) {
+
+ this.deletionGracePeriodSeconds = deletionGracePeriodSeconds;
+ return this;
+ }
+
+ /**
+ * Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.
+ * @return deletionGracePeriodSeconds
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.")
+
+ public Long getDeletionGracePeriodSeconds() {
+ return deletionGracePeriodSeconds;
+ }
+
+
+ public void setDeletionGracePeriodSeconds(Long deletionGracePeriodSeconds) {
+ this.deletionGracePeriodSeconds = deletionGracePeriodSeconds;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata deletionTimestamp(OffsetDateTime deletionTimestamp) {
+
+ this.deletionTimestamp = deletionTimestamp;
+ return this;
+ }
+
+ /**
+ * 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/sig-architecture/api-conventions.md#metadata
+ * @return deletionTimestamp
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "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/sig-architecture/api-conventions.md#metadata")
+
+ public OffsetDateTime getDeletionTimestamp() {
+ return deletionTimestamp;
+ }
+
+
+ public void setDeletionTimestamp(OffsetDateTime deletionTimestamp) {
+ this.deletionTimestamp = deletionTimestamp;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata finalizers(List finalizers) {
+
+ this.finalizers = finalizers;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceMetadata addFinalizersItem(String finalizersItem) {
+ if (this.finalizers == null) {
+ this.finalizers = new ArrayList<>();
+ }
+ this.finalizers.add(finalizersItem);
+ return this;
+ }
+
+ /**
+ * Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.
+ * @return finalizers
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.")
+
+ public List getFinalizers() {
+ return finalizers;
+ }
+
+
+ public void setFinalizers(List finalizers) {
+ this.finalizers = finalizers;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata generateName(String generateName) {
+
+ this.generateName = generateName;
+ return this;
+ }
+
+ /**
+ * GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header). Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency
+ * @return generateName
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header). Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency")
+
+ public String getGenerateName() {
+ return generateName;
+ }
+
+
+ public void setGenerateName(String generateName) {
+ this.generateName = generateName;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata generation(Long generation) {
+
+ this.generation = generation;
+ return this;
+ }
+
+ /**
+ * A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.
+ * @return generation
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.")
+
+ public Long getGeneration() {
+ return generation;
+ }
+
+
+ public void setGeneration(Long generation) {
+ this.generation = generation;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata labels(Map labels) {
+
+ this.labels = labels;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceMetadata putLabelsItem(String key, String labelsItem) {
+ if (this.labels == null) {
+ this.labels = new HashMap<>();
+ }
+ this.labels.put(key, labelsItem);
+ return this;
+ }
+
+ /**
+ * 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
+ * @return labels
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "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")
+
+ public Map getLabels() {
+ return labels;
+ }
+
+
+ public void setLabels(Map labels) {
+ this.labels = labels;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata managedFields(List managedFields) {
+
+ this.managedFields = managedFields;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceMetadata addManagedFieldsItem(V1alpha2DevWorkspaceMetadataManagedFields managedFieldsItem) {
+ if (this.managedFields == null) {
+ this.managedFields = new ArrayList<>();
+ }
+ this.managedFields.add(managedFieldsItem);
+ return this;
+ }
+
+ /**
+ * ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \"ci-cd\". The set of fields is always in the version that the workflow used when modifying the object.
+ * @return managedFields
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \"ci-cd\". The set of fields is always in the version that the workflow used when modifying the object.")
+
+ public List getManagedFields() {
+ return managedFields;
+ }
+
+
+ public void setManagedFields(List managedFields) {
+ this.managedFields = managedFields;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata name(String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * 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
+ * @return name
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "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")
+
+ public String getName() {
+ return name;
+ }
+
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata namespace(String namespace) {
+
+ this.namespace = namespace;
+ return this;
+ }
+
+ /**
+ * Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces
+ * @return namespace
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces")
+
+ public String getNamespace() {
+ return namespace;
+ }
+
+
+ public void setNamespace(String namespace) {
+ this.namespace = namespace;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata ownerReferences(List ownerReferences) {
+
+ this.ownerReferences = ownerReferences;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceMetadata addOwnerReferencesItem(V1alpha2DevWorkspaceMetadataOwnerReferences ownerReferencesItem) {
+ if (this.ownerReferences == null) {
+ this.ownerReferences = new ArrayList<>();
+ }
+ this.ownerReferences.add(ownerReferencesItem);
+ return this;
+ }
+
+ /**
+ * List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
+ * @return ownerReferences
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.")
+
+ public List getOwnerReferences() {
+ return ownerReferences;
+ }
+
+
+ public void setOwnerReferences(List ownerReferences) {
+ this.ownerReferences = ownerReferences;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata resourceVersion(String resourceVersion) {
+
+ this.resourceVersion = resourceVersion;
+ return this;
+ }
+
+ /**
+ * An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
+ * @return resourceVersion
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency")
+
+ public String getResourceVersion() {
+ return resourceVersion;
+ }
+
+
+ public void setResourceVersion(String resourceVersion) {
+ this.resourceVersion = resourceVersion;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata selfLink(String selfLink) {
+
+ this.selfLink = selfLink;
+ return this;
+ }
+
+ /**
+ * SelfLink is a URL representing this object. Populated by the system. Read-only. DEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.
+ * @return selfLink
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "SelfLink is a URL representing this object. Populated by the system. Read-only. DEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.")
+
+ public String getSelfLink() {
+ return selfLink;
+ }
+
+
+ public void setSelfLink(String selfLink) {
+ this.selfLink = selfLink;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadata uid(String uid) {
+
+ this.uid = uid;
+ return this;
+ }
+
+ /**
+ * 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
+ * @return uid
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "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")
+
+ public String getUid() {
+ return uid;
+ }
+
+
+ public void setUid(String uid) {
+ this.uid = uid;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceMetadata v1alpha2DevWorkspaceMetadata = (V1alpha2DevWorkspaceMetadata) o;
+ return Objects.equals(this.annotations, v1alpha2DevWorkspaceMetadata.annotations) &&
+ Objects.equals(this.clusterName, v1alpha2DevWorkspaceMetadata.clusterName) &&
+ Objects.equals(this.creationTimestamp, v1alpha2DevWorkspaceMetadata.creationTimestamp) &&
+ Objects.equals(this.deletionGracePeriodSeconds, v1alpha2DevWorkspaceMetadata.deletionGracePeriodSeconds) &&
+ Objects.equals(this.deletionTimestamp, v1alpha2DevWorkspaceMetadata.deletionTimestamp) &&
+ Objects.equals(this.finalizers, v1alpha2DevWorkspaceMetadata.finalizers) &&
+ Objects.equals(this.generateName, v1alpha2DevWorkspaceMetadata.generateName) &&
+ Objects.equals(this.generation, v1alpha2DevWorkspaceMetadata.generation) &&
+ Objects.equals(this.labels, v1alpha2DevWorkspaceMetadata.labels) &&
+ Objects.equals(this.managedFields, v1alpha2DevWorkspaceMetadata.managedFields) &&
+ Objects.equals(this.name, v1alpha2DevWorkspaceMetadata.name) &&
+ Objects.equals(this.namespace, v1alpha2DevWorkspaceMetadata.namespace) &&
+ Objects.equals(this.ownerReferences, v1alpha2DevWorkspaceMetadata.ownerReferences) &&
+ Objects.equals(this.resourceVersion, v1alpha2DevWorkspaceMetadata.resourceVersion) &&
+ Objects.equals(this.selfLink, v1alpha2DevWorkspaceMetadata.selfLink) &&
+ Objects.equals(this.uid, v1alpha2DevWorkspaceMetadata.uid);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(annotations, clusterName, creationTimestamp, deletionGracePeriodSeconds, deletionTimestamp, finalizers, generateName, generation, labels, managedFields, name, namespace, ownerReferences, resourceVersion, selfLink, uid);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceMetadata {\n");
+ sb.append(" annotations: ").append(toIndentedString(annotations)).append("\n");
+ sb.append(" clusterName: ").append(toIndentedString(clusterName)).append("\n");
+ sb.append(" creationTimestamp: ").append(toIndentedString(creationTimestamp)).append("\n");
+ sb.append(" deletionGracePeriodSeconds: ").append(toIndentedString(deletionGracePeriodSeconds)).append("\n");
+ sb.append(" deletionTimestamp: ").append(toIndentedString(deletionTimestamp)).append("\n");
+ sb.append(" finalizers: ").append(toIndentedString(finalizers)).append("\n");
+ sb.append(" generateName: ").append(toIndentedString(generateName)).append("\n");
+ sb.append(" generation: ").append(toIndentedString(generation)).append("\n");
+ sb.append(" labels: ").append(toIndentedString(labels)).append("\n");
+ sb.append(" managedFields: ").append(toIndentedString(managedFields)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" namespace: ").append(toIndentedString(namespace)).append("\n");
+ sb.append(" ownerReferences: ").append(toIndentedString(ownerReferences)).append("\n");
+ sb.append(" resourceVersion: ").append(toIndentedString(resourceVersion)).append("\n");
+ sb.append(" selfLink: ").append(toIndentedString(selfLink)).append("\n");
+ sb.append(" uid: ").append(toIndentedString(uid)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceMetadataManagedFields.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceMetadataManagedFields.java
new file mode 100644
index 0000000..5209236
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceMetadataManagedFields.java
@@ -0,0 +1,246 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.time.OffsetDateTime;
+
+/**
+ * ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.
+ */
+@ApiModel(description = "ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.")
+
+public class V1alpha2DevWorkspaceMetadataManagedFields {
+ public static final String SERIALIZED_NAME_API_VERSION = "apiVersion";
+ @SerializedName(SERIALIZED_NAME_API_VERSION)
+ private String apiVersion;
+
+ public static final String SERIALIZED_NAME_FIELDS_TYPE = "fieldsType";
+ @SerializedName(SERIALIZED_NAME_FIELDS_TYPE)
+ private String fieldsType;
+
+ public static final String SERIALIZED_NAME_FIELDS_V1 = "fieldsV1";
+ @SerializedName(SERIALIZED_NAME_FIELDS_V1)
+ private Object fieldsV1;
+
+ public static final String SERIALIZED_NAME_MANAGER = "manager";
+ @SerializedName(SERIALIZED_NAME_MANAGER)
+ private String manager;
+
+ public static final String SERIALIZED_NAME_OPERATION = "operation";
+ @SerializedName(SERIALIZED_NAME_OPERATION)
+ private String operation;
+
+ public static final String SERIALIZED_NAME_TIME = "time";
+ @SerializedName(SERIALIZED_NAME_TIME)
+ private OffsetDateTime time;
+
+
+ public V1alpha2DevWorkspaceMetadataManagedFields apiVersion(String apiVersion) {
+
+ this.apiVersion = apiVersion;
+ return this;
+ }
+
+ /**
+ * APIVersion defines the version of this resource that this field set applies to. The format is \"group/version\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.
+ * @return apiVersion
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "APIVersion defines the version of this resource that this field set applies to. The format is \"group/version\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.")
+
+ public String getApiVersion() {
+ return apiVersion;
+ }
+
+
+ public void setApiVersion(String apiVersion) {
+ this.apiVersion = apiVersion;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadataManagedFields fieldsType(String fieldsType) {
+
+ this.fieldsType = fieldsType;
+ return this;
+ }
+
+ /**
+ * FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \"FieldsV1\"
+ * @return fieldsType
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \"FieldsV1\"")
+
+ public String getFieldsType() {
+ return fieldsType;
+ }
+
+
+ public void setFieldsType(String fieldsType) {
+ this.fieldsType = fieldsType;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadataManagedFields fieldsV1(Object fieldsV1) {
+
+ this.fieldsV1 = fieldsV1;
+ return this;
+ }
+
+ /**
+ * FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.
+ * @return fieldsV1
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.")
+
+ public Object getFieldsV1() {
+ return fieldsV1;
+ }
+
+
+ public void setFieldsV1(Object fieldsV1) {
+ this.fieldsV1 = fieldsV1;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadataManagedFields manager(String manager) {
+
+ this.manager = manager;
+ return this;
+ }
+
+ /**
+ * Manager is an identifier of the workflow managing these fields.
+ * @return manager
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Manager is an identifier of the workflow managing these fields.")
+
+ public String getManager() {
+ return manager;
+ }
+
+
+ public void setManager(String manager) {
+ this.manager = manager;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadataManagedFields operation(String operation) {
+
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.
+ * @return operation
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.")
+
+ public String getOperation() {
+ return operation;
+ }
+
+
+ public void setOperation(String operation) {
+ this.operation = operation;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadataManagedFields time(OffsetDateTime time) {
+
+ this.time = time;
+ return this;
+ }
+
+ /**
+ * Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'
+ * @return time
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'")
+
+ public OffsetDateTime getTime() {
+ return time;
+ }
+
+
+ public void setTime(OffsetDateTime time) {
+ this.time = time;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceMetadataManagedFields v1alpha2DevWorkspaceMetadataManagedFields = (V1alpha2DevWorkspaceMetadataManagedFields) o;
+ return Objects.equals(this.apiVersion, v1alpha2DevWorkspaceMetadataManagedFields.apiVersion) &&
+ Objects.equals(this.fieldsType, v1alpha2DevWorkspaceMetadataManagedFields.fieldsType) &&
+ Objects.equals(this.fieldsV1, v1alpha2DevWorkspaceMetadataManagedFields.fieldsV1) &&
+ Objects.equals(this.manager, v1alpha2DevWorkspaceMetadataManagedFields.manager) &&
+ Objects.equals(this.operation, v1alpha2DevWorkspaceMetadataManagedFields.operation) &&
+ Objects.equals(this.time, v1alpha2DevWorkspaceMetadataManagedFields.time);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(apiVersion, fieldsType, fieldsV1, manager, operation, time);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceMetadataManagedFields {\n");
+ sb.append(" apiVersion: ").append(toIndentedString(apiVersion)).append("\n");
+ sb.append(" fieldsType: ").append(toIndentedString(fieldsType)).append("\n");
+ sb.append(" fieldsV1: ").append(toIndentedString(fieldsV1)).append("\n");
+ sb.append(" manager: ").append(toIndentedString(manager)).append("\n");
+ sb.append(" operation: ").append(toIndentedString(operation)).append("\n");
+ sb.append(" time: ").append(toIndentedString(time)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceMetadataOwnerReferences.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceMetadataOwnerReferences.java
new file mode 100644
index 0000000..118718f
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceMetadataOwnerReferences.java
@@ -0,0 +1,241 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.
+ */
+@ApiModel(description = "OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.")
+
+public class V1alpha2DevWorkspaceMetadataOwnerReferences {
+ public static final String SERIALIZED_NAME_API_VERSION = "apiVersion";
+ @SerializedName(SERIALIZED_NAME_API_VERSION)
+ private String apiVersion;
+
+ public static final String SERIALIZED_NAME_BLOCK_OWNER_DELETION = "blockOwnerDeletion";
+ @SerializedName(SERIALIZED_NAME_BLOCK_OWNER_DELETION)
+ private Boolean blockOwnerDeletion;
+
+ public static final String SERIALIZED_NAME_CONTROLLER = "controller";
+ @SerializedName(SERIALIZED_NAME_CONTROLLER)
+ private Boolean controller;
+
+ public static final String SERIALIZED_NAME_KIND = "kind";
+ @SerializedName(SERIALIZED_NAME_KIND)
+ private String kind;
+
+ public static final String SERIALIZED_NAME_NAME = "name";
+ @SerializedName(SERIALIZED_NAME_NAME)
+ private String name;
+
+ public static final String SERIALIZED_NAME_UID = "uid";
+ @SerializedName(SERIALIZED_NAME_UID)
+ private String uid;
+
+
+ public V1alpha2DevWorkspaceMetadataOwnerReferences apiVersion(String apiVersion) {
+
+ this.apiVersion = apiVersion;
+ return this;
+ }
+
+ /**
+ * API version of the referent.
+ * @return apiVersion
+ **/
+ @ApiModelProperty(required = true, value = "API version of the referent.")
+
+ public String getApiVersion() {
+ return apiVersion;
+ }
+
+
+ public void setApiVersion(String apiVersion) {
+ this.apiVersion = apiVersion;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadataOwnerReferences blockOwnerDeletion(Boolean blockOwnerDeletion) {
+
+ this.blockOwnerDeletion = blockOwnerDeletion;
+ return this;
+ }
+
+ /**
+ * If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.
+ * @return blockOwnerDeletion
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.")
+
+ public Boolean getBlockOwnerDeletion() {
+ return blockOwnerDeletion;
+ }
+
+
+ public void setBlockOwnerDeletion(Boolean blockOwnerDeletion) {
+ this.blockOwnerDeletion = blockOwnerDeletion;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadataOwnerReferences controller(Boolean controller) {
+
+ this.controller = controller;
+ return this;
+ }
+
+ /**
+ * If true, this reference points to the managing controller.
+ * @return controller
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "If true, this reference points to the managing controller.")
+
+ public Boolean getController() {
+ return controller;
+ }
+
+
+ public void setController(Boolean controller) {
+ this.controller = controller;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadataOwnerReferences kind(String kind) {
+
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ * @return kind
+ **/
+ @ApiModelProperty(required = true, value = "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds")
+
+ public String getKind() {
+ return kind;
+ }
+
+
+ public void setKind(String kind) {
+ this.kind = kind;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadataOwnerReferences name(String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names
+ * @return name
+ **/
+ @ApiModelProperty(required = true, value = "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names")
+
+ public String getName() {
+ return name;
+ }
+
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ public V1alpha2DevWorkspaceMetadataOwnerReferences uid(String uid) {
+
+ this.uid = uid;
+ return this;
+ }
+
+ /**
+ * UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids
+ * @return uid
+ **/
+ @ApiModelProperty(required = true, value = "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids")
+
+ public String getUid() {
+ return uid;
+ }
+
+
+ public void setUid(String uid) {
+ this.uid = uid;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceMetadataOwnerReferences v1alpha2DevWorkspaceMetadataOwnerReferences = (V1alpha2DevWorkspaceMetadataOwnerReferences) o;
+ return Objects.equals(this.apiVersion, v1alpha2DevWorkspaceMetadataOwnerReferences.apiVersion) &&
+ Objects.equals(this.blockOwnerDeletion, v1alpha2DevWorkspaceMetadataOwnerReferences.blockOwnerDeletion) &&
+ Objects.equals(this.controller, v1alpha2DevWorkspaceMetadataOwnerReferences.controller) &&
+ Objects.equals(this.kind, v1alpha2DevWorkspaceMetadataOwnerReferences.kind) &&
+ Objects.equals(this.name, v1alpha2DevWorkspaceMetadataOwnerReferences.name) &&
+ Objects.equals(this.uid, v1alpha2DevWorkspaceMetadataOwnerReferences.uid);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(apiVersion, blockOwnerDeletion, controller, kind, name, uid);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceMetadataOwnerReferences {\n");
+ sb.append(" apiVersion: ").append(toIndentedString(apiVersion)).append("\n");
+ sb.append(" blockOwnerDeletion: ").append(toIndentedString(blockOwnerDeletion)).append("\n");
+ sb.append(" controller: ").append(toIndentedString(controller)).append("\n");
+ sb.append(" kind: ").append(toIndentedString(kind)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" uid: ").append(toIndentedString(uid)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpec.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpec.java
new file mode 100644
index 0000000..6700f0d
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpec.java
@@ -0,0 +1,158 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplate;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * DevWorkspaceSpec defines the desired state of DevWorkspace
+ */
+@ApiModel(description = "DevWorkspaceSpec defines the desired state of DevWorkspace")
+
+public class V1alpha2DevWorkspaceSpec {
+ public static final String SERIALIZED_NAME_ROUTING_CLASS = "routingClass";
+ @SerializedName(SERIALIZED_NAME_ROUTING_CLASS)
+ private String routingClass;
+
+ public static final String SERIALIZED_NAME_STARTED = "started";
+ @SerializedName(SERIALIZED_NAME_STARTED)
+ private Boolean started;
+
+ public static final String SERIALIZED_NAME_TEMPLATE = "template";
+ @SerializedName(SERIALIZED_NAME_TEMPLATE)
+ private V1alpha2DevWorkspaceSpecTemplate template;
+
+
+ public V1alpha2DevWorkspaceSpec routingClass(String routingClass) {
+
+ this.routingClass = routingClass;
+ return this;
+ }
+
+ /**
+ * Get routingClass
+ * @return routingClass
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public String getRoutingClass() {
+ return routingClass;
+ }
+
+
+ public void setRoutingClass(String routingClass) {
+ this.routingClass = routingClass;
+ }
+
+
+ public V1alpha2DevWorkspaceSpec started(Boolean started) {
+
+ this.started = started;
+ return this;
+ }
+
+ /**
+ * Get started
+ * @return started
+ **/
+ @ApiModelProperty(required = true, value = "")
+
+ public Boolean getStarted() {
+ return started;
+ }
+
+
+ public void setStarted(Boolean started) {
+ this.started = started;
+ }
+
+
+ public V1alpha2DevWorkspaceSpec template(V1alpha2DevWorkspaceSpecTemplate template) {
+
+ this.template = template;
+ return this;
+ }
+
+ /**
+ * Get template
+ * @return template
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplate getTemplate() {
+ return template;
+ }
+
+
+ public void setTemplate(V1alpha2DevWorkspaceSpecTemplate template) {
+ this.template = template;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpec v1alpha2DevWorkspaceSpec = (V1alpha2DevWorkspaceSpec) o;
+ return Objects.equals(this.routingClass, v1alpha2DevWorkspaceSpec.routingClass) &&
+ Objects.equals(this.started, v1alpha2DevWorkspaceSpec.started) &&
+ Objects.equals(this.template, v1alpha2DevWorkspaceSpec.template);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(routingClass, started, template);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpec {\n");
+ sb.append(" routingClass: ").append(toIndentedString(routingClass)).append("\n");
+ sb.append(" started: ").append(toIndentedString(started)).append("\n");
+ sb.append(" template: ").append(toIndentedString(template)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplate.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplate.java
new file mode 100644
index 0000000..d70e635
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplate.java
@@ -0,0 +1,353 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateCommands;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponents;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateEvents;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateParent;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateProjects;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateStarterProjects;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Structure of the devworkspace. This is also the specification of a devworkspace template.
+ */
+@ApiModel(description = "Structure of the devworkspace. This is also the specification of a devworkspace template.")
+
+public class V1alpha2DevWorkspaceSpecTemplate {
+ public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes";
+ @SerializedName(SERIALIZED_NAME_ATTRIBUTES)
+ private Object attributes;
+
+ public static final String SERIALIZED_NAME_COMMANDS = "commands";
+ @SerializedName(SERIALIZED_NAME_COMMANDS)
+ private List commands = null;
+
+ public static final String SERIALIZED_NAME_COMPONENTS = "components";
+ @SerializedName(SERIALIZED_NAME_COMPONENTS)
+ private List components = null;
+
+ public static final String SERIALIZED_NAME_EVENTS = "events";
+ @SerializedName(SERIALIZED_NAME_EVENTS)
+ private V1alpha2DevWorkspaceSpecTemplateEvents events;
+
+ public static final String SERIALIZED_NAME_PARENT = "parent";
+ @SerializedName(SERIALIZED_NAME_PARENT)
+ private V1alpha2DevWorkspaceSpecTemplateParent parent;
+
+ public static final String SERIALIZED_NAME_PROJECTS = "projects";
+ @SerializedName(SERIALIZED_NAME_PROJECTS)
+ private List projects = null;
+
+ public static final String SERIALIZED_NAME_STARTER_PROJECTS = "starterProjects";
+ @SerializedName(SERIALIZED_NAME_STARTER_PROJECTS)
+ private List starterProjects = null;
+
+ public static final String SERIALIZED_NAME_VARIABLES = "variables";
+ @SerializedName(SERIALIZED_NAME_VARIABLES)
+ private Map variables = null;
+
+
+ public V1alpha2DevWorkspaceSpecTemplate attributes(Object attributes) {
+
+ this.attributes = attributes;
+ return this;
+ }
+
+ /**
+ * Map of implementation-dependant free-form YAML attributes.
+ * @return attributes
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Map of implementation-dependant free-form YAML attributes.")
+
+ public Object getAttributes() {
+ return attributes;
+ }
+
+
+ public void setAttributes(Object attributes) {
+ this.attributes = attributes;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplate commands(List commands) {
+
+ this.commands = commands;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplate addCommandsItem(V1alpha2DevWorkspaceSpecTemplateCommands commandsItem) {
+ if (this.commands == null) {
+ this.commands = new ArrayList<>();
+ }
+ this.commands.add(commandsItem);
+ return this;
+ }
+
+ /**
+ * Predefined, ready-to-use, devworkspace-related commands
+ * @return commands
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Predefined, ready-to-use, devworkspace-related commands")
+
+ public List getCommands() {
+ return commands;
+ }
+
+
+ public void setCommands(List commands) {
+ this.commands = commands;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplate components(List components) {
+
+ this.components = components;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplate addComponentsItem(V1alpha2DevWorkspaceSpecTemplateComponents componentsItem) {
+ if (this.components == null) {
+ this.components = new ArrayList<>();
+ }
+ this.components.add(componentsItem);
+ return this;
+ }
+
+ /**
+ * List of the devworkspace components, such as editor and plugins, user-provided containers, or other types of components
+ * @return components
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "List of the devworkspace components, such as editor and plugins, user-provided containers, or other types of components")
+
+ public List getComponents() {
+ return components;
+ }
+
+
+ public void setComponents(List components) {
+ this.components = components;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplate events(V1alpha2DevWorkspaceSpecTemplateEvents events) {
+
+ this.events = events;
+ return this;
+ }
+
+ /**
+ * Get events
+ * @return events
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateEvents getEvents() {
+ return events;
+ }
+
+
+ public void setEvents(V1alpha2DevWorkspaceSpecTemplateEvents events) {
+ this.events = events;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplate parent(V1alpha2DevWorkspaceSpecTemplateParent parent) {
+
+ this.parent = parent;
+ return this;
+ }
+
+ /**
+ * Get parent
+ * @return parent
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateParent getParent() {
+ return parent;
+ }
+
+
+ public void setParent(V1alpha2DevWorkspaceSpecTemplateParent parent) {
+ this.parent = parent;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplate projects(List projects) {
+
+ this.projects = projects;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplate addProjectsItem(V1alpha2DevWorkspaceSpecTemplateProjects projectsItem) {
+ if (this.projects == null) {
+ this.projects = new ArrayList<>();
+ }
+ this.projects.add(projectsItem);
+ return this;
+ }
+
+ /**
+ * Projects worked on in the devworkspace, containing names and sources locations
+ * @return projects
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Projects worked on in the devworkspace, containing names and sources locations")
+
+ public List getProjects() {
+ return projects;
+ }
+
+
+ public void setProjects(List projects) {
+ this.projects = projects;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplate starterProjects(List starterProjects) {
+
+ this.starterProjects = starterProjects;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplate addStarterProjectsItem(V1alpha2DevWorkspaceSpecTemplateStarterProjects starterProjectsItem) {
+ if (this.starterProjects == null) {
+ this.starterProjects = new ArrayList<>();
+ }
+ this.starterProjects.add(starterProjectsItem);
+ return this;
+ }
+
+ /**
+ * StarterProjects is a project that can be used as a starting point when bootstrapping new projects
+ * @return starterProjects
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "StarterProjects is a project that can be used as a starting point when bootstrapping new projects")
+
+ public List getStarterProjects() {
+ return starterProjects;
+ }
+
+
+ public void setStarterProjects(List starterProjects) {
+ this.starterProjects = starterProjects;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplate variables(Map variables) {
+
+ this.variables = variables;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplate putVariablesItem(String key, String variablesItem) {
+ if (this.variables == null) {
+ this.variables = new HashMap<>();
+ }
+ this.variables.put(key, variablesItem);
+ return this;
+ }
+
+ /**
+ * Map of key-value variables used for string replacement in the devfile. Values can be referenced via {{variable-key}} to replace the corresponding value in string fields in the devfile. Replacement cannot be used for - schemaVersion, metadata, parent source - element identifiers, e.g. command id, component name, endpoint name, project name - references to identifiers, e.g. in events, a command's component, container's volume mount name - string enums, e.g. command group kind, endpoint exposure
+ * @return variables
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Map of key-value variables used for string replacement in the devfile. Values can be referenced via {{variable-key}} to replace the corresponding value in string fields in the devfile. Replacement cannot be used for - schemaVersion, metadata, parent source - element identifiers, e.g. command id, component name, endpoint name, project name - references to identifiers, e.g. in events, a command's component, container's volume mount name - string enums, e.g. command group kind, endpoint exposure")
+
+ public Map getVariables() {
+ return variables;
+ }
+
+
+ public void setVariables(Map variables) {
+ this.variables = variables;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplate v1alpha2DevWorkspaceSpecTemplate = (V1alpha2DevWorkspaceSpecTemplate) o;
+ return Objects.equals(this.attributes, v1alpha2DevWorkspaceSpecTemplate.attributes) &&
+ Objects.equals(this.commands, v1alpha2DevWorkspaceSpecTemplate.commands) &&
+ Objects.equals(this.components, v1alpha2DevWorkspaceSpecTemplate.components) &&
+ Objects.equals(this.events, v1alpha2DevWorkspaceSpecTemplate.events) &&
+ Objects.equals(this.parent, v1alpha2DevWorkspaceSpecTemplate.parent) &&
+ Objects.equals(this.projects, v1alpha2DevWorkspaceSpecTemplate.projects) &&
+ Objects.equals(this.starterProjects, v1alpha2DevWorkspaceSpecTemplate.starterProjects) &&
+ Objects.equals(this.variables, v1alpha2DevWorkspaceSpecTemplate.variables);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, commands, components, events, parent, projects, starterProjects, variables);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplate {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" commands: ").append(toIndentedString(commands)).append("\n");
+ sb.append(" components: ").append(toIndentedString(components)).append("\n");
+ sb.append(" events: ").append(toIndentedString(events)).append("\n");
+ sb.append(" parent: ").append(toIndentedString(parent)).append("\n");
+ sb.append(" projects: ").append(toIndentedString(projects)).append("\n");
+ sb.append(" starterProjects: ").append(toIndentedString(starterProjects)).append("\n");
+ sb.append(" variables: ").append(toIndentedString(variables)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommands.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommands.java
new file mode 100644
index 0000000..86424e0
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommands.java
@@ -0,0 +1,247 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * V1alpha2DevWorkspaceSpecTemplateCommands
+ */
+
+public class V1alpha2DevWorkspaceSpecTemplateCommands {
+ public static final String SERIALIZED_NAME_APPLY = "apply";
+ @SerializedName(SERIALIZED_NAME_APPLY)
+ private V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply apply;
+
+ public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes";
+ @SerializedName(SERIALIZED_NAME_ATTRIBUTES)
+ private Object attributes;
+
+ public static final String SERIALIZED_NAME_COMPOSITE = "composite";
+ @SerializedName(SERIALIZED_NAME_COMPOSITE)
+ private V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite composite;
+
+ public static final String SERIALIZED_NAME_CUSTOM = "custom";
+ @SerializedName(SERIALIZED_NAME_CUSTOM)
+ private V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom custom;
+
+ public static final String SERIALIZED_NAME_EXEC = "exec";
+ @SerializedName(SERIALIZED_NAME_EXEC)
+ private V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec exec;
+
+ public static final String SERIALIZED_NAME_ID = "id";
+ @SerializedName(SERIALIZED_NAME_ID)
+ private String id;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommands apply(V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply apply) {
+
+ this.apply = apply;
+ return this;
+ }
+
+ /**
+ * Get apply
+ * @return apply
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply getApply() {
+ return apply;
+ }
+
+
+ public void setApply(V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply apply) {
+ this.apply = apply;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommands attributes(Object attributes) {
+
+ this.attributes = attributes;
+ return this;
+ }
+
+ /**
+ * Map of implementation-dependant free-form YAML attributes.
+ * @return attributes
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Map of implementation-dependant free-form YAML attributes.")
+
+ public Object getAttributes() {
+ return attributes;
+ }
+
+
+ public void setAttributes(Object attributes) {
+ this.attributes = attributes;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommands composite(V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite composite) {
+
+ this.composite = composite;
+ return this;
+ }
+
+ /**
+ * Get composite
+ * @return composite
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite getComposite() {
+ return composite;
+ }
+
+
+ public void setComposite(V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite composite) {
+ this.composite = composite;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommands custom(V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom custom) {
+
+ this.custom = custom;
+ return this;
+ }
+
+ /**
+ * Get custom
+ * @return custom
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom getCustom() {
+ return custom;
+ }
+
+
+ public void setCustom(V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom custom) {
+ this.custom = custom;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommands exec(V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec exec) {
+
+ this.exec = exec;
+ return this;
+ }
+
+ /**
+ * Get exec
+ * @return exec
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec getExec() {
+ return exec;
+ }
+
+
+ public void setExec(V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec exec) {
+ this.exec = exec;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommands id(String id) {
+
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.
+ * @return id
+ **/
+ @ApiModelProperty(required = true, value = "Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.")
+
+ public String getId() {
+ return id;
+ }
+
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateCommands v1alpha2DevWorkspaceSpecTemplateCommands = (V1alpha2DevWorkspaceSpecTemplateCommands) o;
+ return Objects.equals(this.apply, v1alpha2DevWorkspaceSpecTemplateCommands.apply) &&
+ Objects.equals(this.attributes, v1alpha2DevWorkspaceSpecTemplateCommands.attributes) &&
+ Objects.equals(this.composite, v1alpha2DevWorkspaceSpecTemplateCommands.composite) &&
+ Objects.equals(this.custom, v1alpha2DevWorkspaceSpecTemplateCommands.custom) &&
+ Objects.equals(this.exec, v1alpha2DevWorkspaceSpecTemplateCommands.exec) &&
+ Objects.equals(this.id, v1alpha2DevWorkspaceSpecTemplateCommands.id);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(apply, attributes, composite, custom, exec, id);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateCommands {\n");
+ sb.append(" apply: ").append(toIndentedString(apply)).append("\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" composite: ").append(toIndentedString(composite)).append("\n");
+ sb.append(" custom: ").append(toIndentedString(custom)).append("\n");
+ sb.append(" exec: ").append(toIndentedString(exec)).append("\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply.java
new file mode 100644
index 0000000..c649c73
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply.java
@@ -0,0 +1,158 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Command that consists in applying a given component definition, typically bound to a devworkspace event. For example, when an `apply` command is bound to a `preStart` event, and references a `container` component, it will start the container as a K8S initContainer in the devworkspace POD, unless the component has its `dedicatedPod` field set to `true`. When no `apply` command exist for a given component, it is assumed the component will be applied at devworkspace start by default, unless `deployByDefault` for that component is set to false.
+ */
+@ApiModel(description = "Command that consists in applying a given component definition, typically bound to a devworkspace event. For example, when an `apply` command is bound to a `preStart` event, and references a `container` component, it will start the container as a K8S initContainer in the devworkspace POD, unless the component has its `dedicatedPod` field set to `true`. When no `apply` command exist for a given component, it is assumed the component will be applied at devworkspace start by default, unless `deployByDefault` for that component is set to false.")
+
+public class V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply {
+ public static final String SERIALIZED_NAME_COMPONENT = "component";
+ @SerializedName(SERIALIZED_NAME_COMPONENT)
+ private String component;
+
+ public static final String SERIALIZED_NAME_GROUP = "group";
+ @SerializedName(SERIALIZED_NAME_GROUP)
+ private V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup group;
+
+ public static final String SERIALIZED_NAME_LABEL = "label";
+ @SerializedName(SERIALIZED_NAME_LABEL)
+ private String label;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply component(String component) {
+
+ this.component = component;
+ return this;
+ }
+
+ /**
+ * Describes component that will be applied
+ * @return component
+ **/
+ @ApiModelProperty(required = true, value = "Describes component that will be applied")
+
+ public String getComponent() {
+ return component;
+ }
+
+
+ public void setComponent(String component) {
+ this.component = component;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply group(V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup group) {
+
+ this.group = group;
+ return this;
+ }
+
+ /**
+ * Get group
+ * @return group
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup getGroup() {
+ return group;
+ }
+
+
+ public void setGroup(V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup group) {
+ this.group = group;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply label(String label) {
+
+ this.label = label;
+ return this;
+ }
+
+ /**
+ * Optional label that provides a label for this command to be used in Editor UI menus for example
+ * @return label
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Optional label that provides a label for this command to be used in Editor UI menus for example")
+
+ public String getLabel() {
+ return label;
+ }
+
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply v1alpha2DevWorkspaceSpecTemplateCommandsItemsApply = (V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply) o;
+ return Objects.equals(this.component, v1alpha2DevWorkspaceSpecTemplateCommandsItemsApply.component) &&
+ Objects.equals(this.group, v1alpha2DevWorkspaceSpecTemplateCommandsItemsApply.group) &&
+ Objects.equals(this.label, v1alpha2DevWorkspaceSpecTemplateCommandsItemsApply.label);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(component, group, label);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateCommandsItemsApply {\n");
+ sb.append(" component: ").append(toIndentedString(component)).append("\n");
+ sb.append(" group: ").append(toIndentedString(group)).append("\n");
+ sb.append(" label: ").append(toIndentedString(label)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup.java
new file mode 100644
index 0000000..31c8afc
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup.java
@@ -0,0 +1,181 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Defines the group this command is part of
+ */
+@ApiModel(description = "Defines the group this command is part of")
+
+public class V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup {
+ public static final String SERIALIZED_NAME_IS_DEFAULT = "isDefault";
+ @SerializedName(SERIALIZED_NAME_IS_DEFAULT)
+ private Boolean isDefault;
+
+ /**
+ * Kind of group the command is part of
+ */
+ @JsonAdapter(KindEnum.Adapter.class)
+ public enum KindEnum {
+ BUILD("build"),
+
+ RUN("run"),
+
+ TEST("test"),
+
+ DEBUG("debug"),
+
+ DEPLOY("deploy");
+
+ private String value;
+
+ KindEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static KindEnum fromValue(String value) {
+ for (KindEnum b : KindEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ public static class Adapter extends TypeAdapter {
+ @Override
+ public void write(final JsonWriter jsonWriter, final KindEnum enumeration) throws IOException {
+ jsonWriter.value(enumeration.getValue());
+ }
+
+ @Override
+ public KindEnum read(final JsonReader jsonReader) throws IOException {
+ String value = jsonReader.nextString();
+ return KindEnum.fromValue(value);
+ }
+ }
+ }
+
+ public static final String SERIALIZED_NAME_KIND = "kind";
+ @SerializedName(SERIALIZED_NAME_KIND)
+ private KindEnum kind;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup isDefault(Boolean isDefault) {
+
+ this.isDefault = isDefault;
+ return this;
+ }
+
+ /**
+ * Identifies the default command for a given group kind
+ * @return isDefault
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Identifies the default command for a given group kind")
+
+ public Boolean getIsDefault() {
+ return isDefault;
+ }
+
+
+ public void setIsDefault(Boolean isDefault) {
+ this.isDefault = isDefault;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup kind(KindEnum kind) {
+
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Kind of group the command is part of
+ * @return kind
+ **/
+ @ApiModelProperty(required = true, value = "Kind of group the command is part of")
+
+ public KindEnum getKind() {
+ return kind;
+ }
+
+
+ public void setKind(KindEnum kind) {
+ this.kind = kind;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup v1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup = (V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup) o;
+ return Objects.equals(this.isDefault, v1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup.isDefault) &&
+ Objects.equals(this.kind, v1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup.kind);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(isDefault, kind);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateCommandsItemsApplyGroup {\n");
+ sb.append(" isDefault: ").append(toIndentedString(isDefault)).append("\n");
+ sb.append(" kind: ").append(toIndentedString(kind)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite.java
new file mode 100644
index 0000000..f8b6ec4
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite.java
@@ -0,0 +1,198 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Composite command that allows executing several sub-commands either sequentially or concurrently
+ */
+@ApiModel(description = "Composite command that allows executing several sub-commands either sequentially or concurrently")
+
+public class V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite {
+ public static final String SERIALIZED_NAME_COMMANDS = "commands";
+ @SerializedName(SERIALIZED_NAME_COMMANDS)
+ private List commands = null;
+
+ public static final String SERIALIZED_NAME_GROUP = "group";
+ @SerializedName(SERIALIZED_NAME_GROUP)
+ private V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup group;
+
+ public static final String SERIALIZED_NAME_LABEL = "label";
+ @SerializedName(SERIALIZED_NAME_LABEL)
+ private String label;
+
+ public static final String SERIALIZED_NAME_PARALLEL = "parallel";
+ @SerializedName(SERIALIZED_NAME_PARALLEL)
+ private Boolean parallel;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite commands(List commands) {
+
+ this.commands = commands;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite addCommandsItem(String commandsItem) {
+ if (this.commands == null) {
+ this.commands = new ArrayList<>();
+ }
+ this.commands.add(commandsItem);
+ return this;
+ }
+
+ /**
+ * The commands that comprise this composite command
+ * @return commands
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "The commands that comprise this composite command")
+
+ public List getCommands() {
+ return commands;
+ }
+
+
+ public void setCommands(List commands) {
+ this.commands = commands;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite group(V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup group) {
+
+ this.group = group;
+ return this;
+ }
+
+ /**
+ * Get group
+ * @return group
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup getGroup() {
+ return group;
+ }
+
+
+ public void setGroup(V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup group) {
+ this.group = group;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite label(String label) {
+
+ this.label = label;
+ return this;
+ }
+
+ /**
+ * Optional label that provides a label for this command to be used in Editor UI menus for example
+ * @return label
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Optional label that provides a label for this command to be used in Editor UI menus for example")
+
+ public String getLabel() {
+ return label;
+ }
+
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite parallel(Boolean parallel) {
+
+ this.parallel = parallel;
+ return this;
+ }
+
+ /**
+ * Indicates if the sub-commands should be executed concurrently
+ * @return parallel
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Indicates if the sub-commands should be executed concurrently")
+
+ public Boolean getParallel() {
+ return parallel;
+ }
+
+
+ public void setParallel(Boolean parallel) {
+ this.parallel = parallel;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite v1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite = (V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite) o;
+ return Objects.equals(this.commands, v1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite.commands) &&
+ Objects.equals(this.group, v1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite.group) &&
+ Objects.equals(this.label, v1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite.label) &&
+ Objects.equals(this.parallel, v1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite.parallel);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(commands, group, label, parallel);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateCommandsItemsComposite {\n");
+ sb.append(" commands: ").append(toIndentedString(commands)).append("\n");
+ sb.append(" group: ").append(toIndentedString(group)).append("\n");
+ sb.append(" label: ").append(toIndentedString(label)).append("\n");
+ sb.append(" parallel: ").append(toIndentedString(parallel)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup.java
new file mode 100644
index 0000000..9013ae6
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup.java
@@ -0,0 +1,181 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Defines the group this command is part of
+ */
+@ApiModel(description = "Defines the group this command is part of")
+
+public class V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup {
+ public static final String SERIALIZED_NAME_IS_DEFAULT = "isDefault";
+ @SerializedName(SERIALIZED_NAME_IS_DEFAULT)
+ private Boolean isDefault;
+
+ /**
+ * Kind of group the command is part of
+ */
+ @JsonAdapter(KindEnum.Adapter.class)
+ public enum KindEnum {
+ BUILD("build"),
+
+ RUN("run"),
+
+ TEST("test"),
+
+ DEBUG("debug"),
+
+ DEPLOY("deploy");
+
+ private String value;
+
+ KindEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static KindEnum fromValue(String value) {
+ for (KindEnum b : KindEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ public static class Adapter extends TypeAdapter {
+ @Override
+ public void write(final JsonWriter jsonWriter, final KindEnum enumeration) throws IOException {
+ jsonWriter.value(enumeration.getValue());
+ }
+
+ @Override
+ public KindEnum read(final JsonReader jsonReader) throws IOException {
+ String value = jsonReader.nextString();
+ return KindEnum.fromValue(value);
+ }
+ }
+ }
+
+ public static final String SERIALIZED_NAME_KIND = "kind";
+ @SerializedName(SERIALIZED_NAME_KIND)
+ private KindEnum kind;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup isDefault(Boolean isDefault) {
+
+ this.isDefault = isDefault;
+ return this;
+ }
+
+ /**
+ * Identifies the default command for a given group kind
+ * @return isDefault
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Identifies the default command for a given group kind")
+
+ public Boolean getIsDefault() {
+ return isDefault;
+ }
+
+
+ public void setIsDefault(Boolean isDefault) {
+ this.isDefault = isDefault;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup kind(KindEnum kind) {
+
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Kind of group the command is part of
+ * @return kind
+ **/
+ @ApiModelProperty(required = true, value = "Kind of group the command is part of")
+
+ public KindEnum getKind() {
+ return kind;
+ }
+
+
+ public void setKind(KindEnum kind) {
+ this.kind = kind;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup v1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup = (V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup) o;
+ return Objects.equals(this.isDefault, v1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup.isDefault) &&
+ Objects.equals(this.kind, v1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup.kind);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(isDefault, kind);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateCommandsItemsCompositeGroup {\n");
+ sb.append(" isDefault: ").append(toIndentedString(isDefault)).append("\n");
+ sb.append(" kind: ").append(toIndentedString(kind)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom.java
new file mode 100644
index 0000000..2514a25
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom.java
@@ -0,0 +1,186 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Custom command whose logic is implementation-dependant and should be provided by the user possibly through some dedicated plugin
+ */
+@ApiModel(description = "Custom command whose logic is implementation-dependant and should be provided by the user possibly through some dedicated plugin")
+
+public class V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom {
+ public static final String SERIALIZED_NAME_COMMAND_CLASS = "commandClass";
+ @SerializedName(SERIALIZED_NAME_COMMAND_CLASS)
+ private String commandClass;
+
+ public static final String SERIALIZED_NAME_EMBEDDED_RESOURCE = "embeddedResource";
+ @SerializedName(SERIALIZED_NAME_EMBEDDED_RESOURCE)
+ private Object embeddedResource;
+
+ public static final String SERIALIZED_NAME_GROUP = "group";
+ @SerializedName(SERIALIZED_NAME_GROUP)
+ private V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup group;
+
+ public static final String SERIALIZED_NAME_LABEL = "label";
+ @SerializedName(SERIALIZED_NAME_LABEL)
+ private String label;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom commandClass(String commandClass) {
+
+ this.commandClass = commandClass;
+ return this;
+ }
+
+ /**
+ * Class of command that the associated implementation component should use to process this command with the appropriate logic
+ * @return commandClass
+ **/
+ @ApiModelProperty(required = true, value = "Class of command that the associated implementation component should use to process this command with the appropriate logic")
+
+ public String getCommandClass() {
+ return commandClass;
+ }
+
+
+ public void setCommandClass(String commandClass) {
+ this.commandClass = commandClass;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom embeddedResource(Object embeddedResource) {
+
+ this.embeddedResource = embeddedResource;
+ return this;
+ }
+
+ /**
+ * Additional free-form configuration for this custom command that the implementation component will know how to use
+ * @return embeddedResource
+ **/
+ @ApiModelProperty(required = true, value = "Additional free-form configuration for this custom command that the implementation component will know how to use")
+
+ public Object getEmbeddedResource() {
+ return embeddedResource;
+ }
+
+
+ public void setEmbeddedResource(Object embeddedResource) {
+ this.embeddedResource = embeddedResource;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom group(V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup group) {
+
+ this.group = group;
+ return this;
+ }
+
+ /**
+ * Get group
+ * @return group
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup getGroup() {
+ return group;
+ }
+
+
+ public void setGroup(V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup group) {
+ this.group = group;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom label(String label) {
+
+ this.label = label;
+ return this;
+ }
+
+ /**
+ * Optional label that provides a label for this command to be used in Editor UI menus for example
+ * @return label
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Optional label that provides a label for this command to be used in Editor UI menus for example")
+
+ public String getLabel() {
+ return label;
+ }
+
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom v1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom = (V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom) o;
+ return Objects.equals(this.commandClass, v1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom.commandClass) &&
+ Objects.equals(this.embeddedResource, v1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom.embeddedResource) &&
+ Objects.equals(this.group, v1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom.group) &&
+ Objects.equals(this.label, v1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom.label);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(commandClass, embeddedResource, group, label);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustom {\n");
+ sb.append(" commandClass: ").append(toIndentedString(commandClass)).append("\n");
+ sb.append(" embeddedResource: ").append(toIndentedString(embeddedResource)).append("\n");
+ sb.append(" group: ").append(toIndentedString(group)).append("\n");
+ sb.append(" label: ").append(toIndentedString(label)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup.java
new file mode 100644
index 0000000..06044ac
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup.java
@@ -0,0 +1,181 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Defines the group this command is part of
+ */
+@ApiModel(description = "Defines the group this command is part of")
+
+public class V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup {
+ public static final String SERIALIZED_NAME_IS_DEFAULT = "isDefault";
+ @SerializedName(SERIALIZED_NAME_IS_DEFAULT)
+ private Boolean isDefault;
+
+ /**
+ * Kind of group the command is part of
+ */
+ @JsonAdapter(KindEnum.Adapter.class)
+ public enum KindEnum {
+ BUILD("build"),
+
+ RUN("run"),
+
+ TEST("test"),
+
+ DEBUG("debug"),
+
+ DEPLOY("deploy");
+
+ private String value;
+
+ KindEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static KindEnum fromValue(String value) {
+ for (KindEnum b : KindEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ public static class Adapter extends TypeAdapter {
+ @Override
+ public void write(final JsonWriter jsonWriter, final KindEnum enumeration) throws IOException {
+ jsonWriter.value(enumeration.getValue());
+ }
+
+ @Override
+ public KindEnum read(final JsonReader jsonReader) throws IOException {
+ String value = jsonReader.nextString();
+ return KindEnum.fromValue(value);
+ }
+ }
+ }
+
+ public static final String SERIALIZED_NAME_KIND = "kind";
+ @SerializedName(SERIALIZED_NAME_KIND)
+ private KindEnum kind;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup isDefault(Boolean isDefault) {
+
+ this.isDefault = isDefault;
+ return this;
+ }
+
+ /**
+ * Identifies the default command for a given group kind
+ * @return isDefault
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Identifies the default command for a given group kind")
+
+ public Boolean getIsDefault() {
+ return isDefault;
+ }
+
+
+ public void setIsDefault(Boolean isDefault) {
+ this.isDefault = isDefault;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup kind(KindEnum kind) {
+
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Kind of group the command is part of
+ * @return kind
+ **/
+ @ApiModelProperty(required = true, value = "Kind of group the command is part of")
+
+ public KindEnum getKind() {
+ return kind;
+ }
+
+
+ public void setKind(KindEnum kind) {
+ this.kind = kind;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup v1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup = (V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup) o;
+ return Objects.equals(this.isDefault, v1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup.isDefault) &&
+ Objects.equals(this.kind, v1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup.kind);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(isDefault, kind);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateCommandsItemsCustomGroup {\n");
+ sb.append(" isDefault: ").append(toIndentedString(isDefault)).append("\n");
+ sb.append(" kind: ").append(toIndentedString(kind)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec.java
new file mode 100644
index 0000000..67a46a3
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec.java
@@ -0,0 +1,284 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * CLI Command executed in an existing component container
+ */
+@ApiModel(description = "CLI Command executed in an existing component container")
+
+public class V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec {
+ public static final String SERIALIZED_NAME_COMMAND_LINE = "commandLine";
+ @SerializedName(SERIALIZED_NAME_COMMAND_LINE)
+ private String commandLine;
+
+ public static final String SERIALIZED_NAME_COMPONENT = "component";
+ @SerializedName(SERIALIZED_NAME_COMPONENT)
+ private String component;
+
+ public static final String SERIALIZED_NAME_ENV = "env";
+ @SerializedName(SERIALIZED_NAME_ENV)
+ private List env = null;
+
+ public static final String SERIALIZED_NAME_GROUP = "group";
+ @SerializedName(SERIALIZED_NAME_GROUP)
+ private V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup group;
+
+ public static final String SERIALIZED_NAME_HOT_RELOAD_CAPABLE = "hotReloadCapable";
+ @SerializedName(SERIALIZED_NAME_HOT_RELOAD_CAPABLE)
+ private Boolean hotReloadCapable;
+
+ public static final String SERIALIZED_NAME_LABEL = "label";
+ @SerializedName(SERIALIZED_NAME_LABEL)
+ private String label;
+
+ public static final String SERIALIZED_NAME_WORKING_DIR = "workingDir";
+ @SerializedName(SERIALIZED_NAME_WORKING_DIR)
+ private String workingDir;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec commandLine(String commandLine) {
+
+ this.commandLine = commandLine;
+ return this;
+ }
+
+ /**
+ * The actual command-line string Special variables that can be used: - `$PROJECTS_ROOT`: A path where projects sources are mounted as defined by container component's sourceMapping. - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/<project-name>). If there are multiple projects, this will point to the directory of the first one.
+ * @return commandLine
+ **/
+ @ApiModelProperty(required = true, value = "The actual command-line string Special variables that can be used: - `$PROJECTS_ROOT`: A path where projects sources are mounted as defined by container component's sourceMapping. - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/). If there are multiple projects, this will point to the directory of the first one.")
+
+ public String getCommandLine() {
+ return commandLine;
+ }
+
+
+ public void setCommandLine(String commandLine) {
+ this.commandLine = commandLine;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec component(String component) {
+
+ this.component = component;
+ return this;
+ }
+
+ /**
+ * Describes component to which given action relates
+ * @return component
+ **/
+ @ApiModelProperty(required = true, value = "Describes component to which given action relates")
+
+ public String getComponent() {
+ return component;
+ }
+
+
+ public void setComponent(String component) {
+ this.component = component;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec env(List env) {
+
+ this.env = env;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec addEnvItem(V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv envItem) {
+ if (this.env == null) {
+ this.env = new ArrayList<>();
+ }
+ this.env.add(envItem);
+ return this;
+ }
+
+ /**
+ * Optional list of environment variables that have to be set before running the command
+ * @return env
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Optional list of environment variables that have to be set before running the command")
+
+ public List getEnv() {
+ return env;
+ }
+
+
+ public void setEnv(List env) {
+ this.env = env;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec group(V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup group) {
+
+ this.group = group;
+ return this;
+ }
+
+ /**
+ * Get group
+ * @return group
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup getGroup() {
+ return group;
+ }
+
+
+ public void setGroup(V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup group) {
+ this.group = group;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec hotReloadCapable(Boolean hotReloadCapable) {
+
+ this.hotReloadCapable = hotReloadCapable;
+ return this;
+ }
+
+ /**
+ * Whether the command is capable to reload itself when source code changes. If set to `true` the command won't be restarted and it is expected to handle file changes on its own. Default value is `false`
+ * @return hotReloadCapable
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Whether the command is capable to reload itself when source code changes. If set to `true` the command won't be restarted and it is expected to handle file changes on its own. Default value is `false`")
+
+ public Boolean getHotReloadCapable() {
+ return hotReloadCapable;
+ }
+
+
+ public void setHotReloadCapable(Boolean hotReloadCapable) {
+ this.hotReloadCapable = hotReloadCapable;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec label(String label) {
+
+ this.label = label;
+ return this;
+ }
+
+ /**
+ * Optional label that provides a label for this command to be used in Editor UI menus for example
+ * @return label
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Optional label that provides a label for this command to be used in Editor UI menus for example")
+
+ public String getLabel() {
+ return label;
+ }
+
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec workingDir(String workingDir) {
+
+ this.workingDir = workingDir;
+ return this;
+ }
+
+ /**
+ * Working directory where the command should be executed Special variables that can be used: - `$PROJECTS_ROOT`: A path where projects sources are mounted as defined by container component's sourceMapping. - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/<project-name>). If there are multiple projects, this will point to the directory of the first one.
+ * @return workingDir
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Working directory where the command should be executed Special variables that can be used: - `$PROJECTS_ROOT`: A path where projects sources are mounted as defined by container component's sourceMapping. - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/). If there are multiple projects, this will point to the directory of the first one.")
+
+ public String getWorkingDir() {
+ return workingDir;
+ }
+
+
+ public void setWorkingDir(String workingDir) {
+ this.workingDir = workingDir;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec v1alpha2DevWorkspaceSpecTemplateCommandsItemsExec = (V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec) o;
+ return Objects.equals(this.commandLine, v1alpha2DevWorkspaceSpecTemplateCommandsItemsExec.commandLine) &&
+ Objects.equals(this.component, v1alpha2DevWorkspaceSpecTemplateCommandsItemsExec.component) &&
+ Objects.equals(this.env, v1alpha2DevWorkspaceSpecTemplateCommandsItemsExec.env) &&
+ Objects.equals(this.group, v1alpha2DevWorkspaceSpecTemplateCommandsItemsExec.group) &&
+ Objects.equals(this.hotReloadCapable, v1alpha2DevWorkspaceSpecTemplateCommandsItemsExec.hotReloadCapable) &&
+ Objects.equals(this.label, v1alpha2DevWorkspaceSpecTemplateCommandsItemsExec.label) &&
+ Objects.equals(this.workingDir, v1alpha2DevWorkspaceSpecTemplateCommandsItemsExec.workingDir);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(commandLine, component, env, group, hotReloadCapable, label, workingDir);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateCommandsItemsExec {\n");
+ sb.append(" commandLine: ").append(toIndentedString(commandLine)).append("\n");
+ sb.append(" component: ").append(toIndentedString(component)).append("\n");
+ sb.append(" env: ").append(toIndentedString(env)).append("\n");
+ sb.append(" group: ").append(toIndentedString(group)).append("\n");
+ sb.append(" hotReloadCapable: ").append(toIndentedString(hotReloadCapable)).append("\n");
+ sb.append(" label: ").append(toIndentedString(label)).append("\n");
+ sb.append(" workingDir: ").append(toIndentedString(workingDir)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv.java
new file mode 100644
index 0000000..fcbc749
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv.java
@@ -0,0 +1,126 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv
+ */
+
+public class V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv {
+ public static final String SERIALIZED_NAME_NAME = "name";
+ @SerializedName(SERIALIZED_NAME_NAME)
+ private String name;
+
+ public static final String SERIALIZED_NAME_VALUE = "value";
+ @SerializedName(SERIALIZED_NAME_VALUE)
+ private String value;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv name(String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get name
+ * @return name
+ **/
+ @ApiModelProperty(required = true, value = "")
+
+ public String getName() {
+ return name;
+ }
+
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv value(String value) {
+
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get value
+ * @return value
+ **/
+ @ApiModelProperty(required = true, value = "")
+
+ public String getValue() {
+ return value;
+ }
+
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv v1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv = (V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv) o;
+ return Objects.equals(this.name, v1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv.name) &&
+ Objects.equals(this.value, v1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv.value);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, value);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecEnv {\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup.java
new file mode 100644
index 0000000..6f7c5ee
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup.java
@@ -0,0 +1,181 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Defines the group this command is part of
+ */
+@ApiModel(description = "Defines the group this command is part of")
+
+public class V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup {
+ public static final String SERIALIZED_NAME_IS_DEFAULT = "isDefault";
+ @SerializedName(SERIALIZED_NAME_IS_DEFAULT)
+ private Boolean isDefault;
+
+ /**
+ * Kind of group the command is part of
+ */
+ @JsonAdapter(KindEnum.Adapter.class)
+ public enum KindEnum {
+ BUILD("build"),
+
+ RUN("run"),
+
+ TEST("test"),
+
+ DEBUG("debug"),
+
+ DEPLOY("deploy");
+
+ private String value;
+
+ KindEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static KindEnum fromValue(String value) {
+ for (KindEnum b : KindEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ public static class Adapter extends TypeAdapter {
+ @Override
+ public void write(final JsonWriter jsonWriter, final KindEnum enumeration) throws IOException {
+ jsonWriter.value(enumeration.getValue());
+ }
+
+ @Override
+ public KindEnum read(final JsonReader jsonReader) throws IOException {
+ String value = jsonReader.nextString();
+ return KindEnum.fromValue(value);
+ }
+ }
+ }
+
+ public static final String SERIALIZED_NAME_KIND = "kind";
+ @SerializedName(SERIALIZED_NAME_KIND)
+ private KindEnum kind;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup isDefault(Boolean isDefault) {
+
+ this.isDefault = isDefault;
+ return this;
+ }
+
+ /**
+ * Identifies the default command for a given group kind
+ * @return isDefault
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Identifies the default command for a given group kind")
+
+ public Boolean getIsDefault() {
+ return isDefault;
+ }
+
+
+ public void setIsDefault(Boolean isDefault) {
+ this.isDefault = isDefault;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup kind(KindEnum kind) {
+
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Kind of group the command is part of
+ * @return kind
+ **/
+ @ApiModelProperty(required = true, value = "Kind of group the command is part of")
+
+ public KindEnum getKind() {
+ return kind;
+ }
+
+
+ public void setKind(KindEnum kind) {
+ this.kind = kind;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup v1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup = (V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup) o;
+ return Objects.equals(this.isDefault, v1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup.isDefault) &&
+ Objects.equals(this.kind, v1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup.kind);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(isDefault, kind);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateCommandsItemsExecGroup {\n");
+ sb.append(" isDefault: ").append(toIndentedString(isDefault)).append("\n");
+ sb.append(" kind: ").append(toIndentedString(kind)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponents.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponents.java
new file mode 100644
index 0000000..f702229
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponents.java
@@ -0,0 +1,337 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsVolume;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * V1alpha2DevWorkspaceSpecTemplateComponents
+ */
+
+public class V1alpha2DevWorkspaceSpecTemplateComponents {
+ public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes";
+ @SerializedName(SERIALIZED_NAME_ATTRIBUTES)
+ private Object attributes;
+
+ public static final String SERIALIZED_NAME_CONTAINER = "container";
+ @SerializedName(SERIALIZED_NAME_CONTAINER)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer container;
+
+ public static final String SERIALIZED_NAME_CUSTOM = "custom";
+ @SerializedName(SERIALIZED_NAME_CUSTOM)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom custom;
+
+ public static final String SERIALIZED_NAME_IMAGE = "image";
+ @SerializedName(SERIALIZED_NAME_IMAGE)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage image;
+
+ public static final String SERIALIZED_NAME_KUBERNETES = "kubernetes";
+ @SerializedName(SERIALIZED_NAME_KUBERNETES)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes kubernetes;
+
+ public static final String SERIALIZED_NAME_NAME = "name";
+ @SerializedName(SERIALIZED_NAME_NAME)
+ private String name;
+
+ public static final String SERIALIZED_NAME_OPENSHIFT = "openshift";
+ @SerializedName(SERIALIZED_NAME_OPENSHIFT)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift openshift;
+
+ public static final String SERIALIZED_NAME_PLUGIN = "plugin";
+ @SerializedName(SERIALIZED_NAME_PLUGIN)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin plugin;
+
+ public static final String SERIALIZED_NAME_VOLUME = "volume";
+ @SerializedName(SERIALIZED_NAME_VOLUME)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsVolume volume;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponents attributes(Object attributes) {
+
+ this.attributes = attributes;
+ return this;
+ }
+
+ /**
+ * Map of implementation-dependant free-form YAML attributes.
+ * @return attributes
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Map of implementation-dependant free-form YAML attributes.")
+
+ public Object getAttributes() {
+ return attributes;
+ }
+
+
+ public void setAttributes(Object attributes) {
+ this.attributes = attributes;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponents container(V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer container) {
+
+ this.container = container;
+ return this;
+ }
+
+ /**
+ * Get container
+ * @return container
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer getContainer() {
+ return container;
+ }
+
+
+ public void setContainer(V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer container) {
+ this.container = container;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponents custom(V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom custom) {
+
+ this.custom = custom;
+ return this;
+ }
+
+ /**
+ * Get custom
+ * @return custom
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom getCustom() {
+ return custom;
+ }
+
+
+ public void setCustom(V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom custom) {
+ this.custom = custom;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponents image(V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage image) {
+
+ this.image = image;
+ return this;
+ }
+
+ /**
+ * Get image
+ * @return image
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage getImage() {
+ return image;
+ }
+
+
+ public void setImage(V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage image) {
+ this.image = image;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponents kubernetes(V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes kubernetes) {
+
+ this.kubernetes = kubernetes;
+ return this;
+ }
+
+ /**
+ * Get kubernetes
+ * @return kubernetes
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes getKubernetes() {
+ return kubernetes;
+ }
+
+
+ public void setKubernetes(V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes kubernetes) {
+ this.kubernetes = kubernetes;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponents name(String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Mandatory name that allows referencing the component from other elements (such as commands) or from an external devfile that may reference this component through a parent or a plugin.
+ * @return name
+ **/
+ @ApiModelProperty(required = true, value = "Mandatory name that allows referencing the component from other elements (such as commands) or from an external devfile that may reference this component through a parent or a plugin.")
+
+ public String getName() {
+ return name;
+ }
+
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponents openshift(V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift openshift) {
+
+ this.openshift = openshift;
+ return this;
+ }
+
+ /**
+ * Get openshift
+ * @return openshift
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift getOpenshift() {
+ return openshift;
+ }
+
+
+ public void setOpenshift(V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift openshift) {
+ this.openshift = openshift;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponents plugin(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin plugin) {
+
+ this.plugin = plugin;
+ return this;
+ }
+
+ /**
+ * Get plugin
+ * @return plugin
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin getPlugin() {
+ return plugin;
+ }
+
+
+ public void setPlugin(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin plugin) {
+ this.plugin = plugin;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponents volume(V1alpha2DevWorkspaceSpecTemplateComponentsItemsVolume volume) {
+
+ this.volume = volume;
+ return this;
+ }
+
+ /**
+ * Get volume
+ * @return volume
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsVolume getVolume() {
+ return volume;
+ }
+
+
+ public void setVolume(V1alpha2DevWorkspaceSpecTemplateComponentsItemsVolume volume) {
+ this.volume = volume;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponents v1alpha2DevWorkspaceSpecTemplateComponents = (V1alpha2DevWorkspaceSpecTemplateComponents) o;
+ return Objects.equals(this.attributes, v1alpha2DevWorkspaceSpecTemplateComponents.attributes) &&
+ Objects.equals(this.container, v1alpha2DevWorkspaceSpecTemplateComponents.container) &&
+ Objects.equals(this.custom, v1alpha2DevWorkspaceSpecTemplateComponents.custom) &&
+ Objects.equals(this.image, v1alpha2DevWorkspaceSpecTemplateComponents.image) &&
+ Objects.equals(this.kubernetes, v1alpha2DevWorkspaceSpecTemplateComponents.kubernetes) &&
+ Objects.equals(this.name, v1alpha2DevWorkspaceSpecTemplateComponents.name) &&
+ Objects.equals(this.openshift, v1alpha2DevWorkspaceSpecTemplateComponents.openshift) &&
+ Objects.equals(this.plugin, v1alpha2DevWorkspaceSpecTemplateComponents.plugin) &&
+ Objects.equals(this.volume, v1alpha2DevWorkspaceSpecTemplateComponents.volume);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(attributes, container, custom, image, kubernetes, name, openshift, plugin, volume);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponents {\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" container: ").append(toIndentedString(container)).append("\n");
+ sb.append(" custom: ").append(toIndentedString(custom)).append("\n");
+ sb.append(" image: ").append(toIndentedString(image)).append("\n");
+ sb.append(" kubernetes: ").append(toIndentedString(kubernetes)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" openshift: ").append(toIndentedString(openshift)).append("\n");
+ sb.append(" plugin: ").append(toIndentedString(plugin)).append("\n");
+ sb.append(" volume: ").append(toIndentedString(volume)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.java
new file mode 100644
index 0000000..0830c4d
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.java
@@ -0,0 +1,522 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Allows adding and configuring devworkspace-related containers
+ */
+@ApiModel(description = "Allows adding and configuring devworkspace-related containers")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer {
+ public static final String SERIALIZED_NAME_ANNOTATION = "annotation";
+ @SerializedName(SERIALIZED_NAME_ANNOTATION)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation annotation;
+
+ public static final String SERIALIZED_NAME_ARGS = "args";
+ @SerializedName(SERIALIZED_NAME_ARGS)
+ private List args = null;
+
+ public static final String SERIALIZED_NAME_COMMAND = "command";
+ @SerializedName(SERIALIZED_NAME_COMMAND)
+ private List command = null;
+
+ public static final String SERIALIZED_NAME_CPU_LIMIT = "cpuLimit";
+ @SerializedName(SERIALIZED_NAME_CPU_LIMIT)
+ private String cpuLimit;
+
+ public static final String SERIALIZED_NAME_CPU_REQUEST = "cpuRequest";
+ @SerializedName(SERIALIZED_NAME_CPU_REQUEST)
+ private String cpuRequest;
+
+ public static final String SERIALIZED_NAME_DEDICATED_POD = "dedicatedPod";
+ @SerializedName(SERIALIZED_NAME_DEDICATED_POD)
+ private Boolean dedicatedPod;
+
+ public static final String SERIALIZED_NAME_ENDPOINTS = "endpoints";
+ @SerializedName(SERIALIZED_NAME_ENDPOINTS)
+ private List endpoints = null;
+
+ public static final String SERIALIZED_NAME_ENV = "env";
+ @SerializedName(SERIALIZED_NAME_ENV)
+ private List env = null;
+
+ public static final String SERIALIZED_NAME_IMAGE = "image";
+ @SerializedName(SERIALIZED_NAME_IMAGE)
+ private String image;
+
+ public static final String SERIALIZED_NAME_MEMORY_LIMIT = "memoryLimit";
+ @SerializedName(SERIALIZED_NAME_MEMORY_LIMIT)
+ private String memoryLimit;
+
+ public static final String SERIALIZED_NAME_MEMORY_REQUEST = "memoryRequest";
+ @SerializedName(SERIALIZED_NAME_MEMORY_REQUEST)
+ private String memoryRequest;
+
+ public static final String SERIALIZED_NAME_MOUNT_SOURCES = "mountSources";
+ @SerializedName(SERIALIZED_NAME_MOUNT_SOURCES)
+ private Boolean mountSources;
+
+ public static final String SERIALIZED_NAME_SOURCE_MAPPING = "sourceMapping";
+ @SerializedName(SERIALIZED_NAME_SOURCE_MAPPING)
+ private String sourceMapping = "/projects";
+
+ public static final String SERIALIZED_NAME_VOLUME_MOUNTS = "volumeMounts";
+ @SerializedName(SERIALIZED_NAME_VOLUME_MOUNTS)
+ private List volumeMounts = null;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer annotation(V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation annotation) {
+
+ this.annotation = annotation;
+ return this;
+ }
+
+ /**
+ * Get annotation
+ * @return annotation
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation getAnnotation() {
+ return annotation;
+ }
+
+
+ public void setAnnotation(V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation annotation) {
+ this.annotation = annotation;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer args(List args) {
+
+ this.args = args;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer addArgsItem(String argsItem) {
+ if (this.args == null) {
+ this.args = new ArrayList<>();
+ }
+ this.args.add(argsItem);
+ return this;
+ }
+
+ /**
+ * The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command. Defaults to an empty array, meaning use whatever is defined in the image.
+ * @return args
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command. Defaults to an empty array, meaning use whatever is defined in the image.")
+
+ public List getArgs() {
+ return args;
+ }
+
+
+ public void setArgs(List args) {
+ this.args = args;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer command(List command) {
+
+ this.command = command;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer addCommandItem(String commandItem) {
+ if (this.command == null) {
+ this.command = new ArrayList<>();
+ }
+ this.command.add(commandItem);
+ return this;
+ }
+
+ /**
+ * The command to run in the dockerimage component instead of the default one provided in the image. Defaults to an empty array, meaning use whatever is defined in the image.
+ * @return command
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "The command to run in the dockerimage component instead of the default one provided in the image. Defaults to an empty array, meaning use whatever is defined in the image.")
+
+ public List getCommand() {
+ return command;
+ }
+
+
+ public void setCommand(List command) {
+ this.command = command;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer cpuLimit(String cpuLimit) {
+
+ this.cpuLimit = cpuLimit;
+ return this;
+ }
+
+ /**
+ * Get cpuLimit
+ * @return cpuLimit
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public String getCpuLimit() {
+ return cpuLimit;
+ }
+
+
+ public void setCpuLimit(String cpuLimit) {
+ this.cpuLimit = cpuLimit;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer cpuRequest(String cpuRequest) {
+
+ this.cpuRequest = cpuRequest;
+ return this;
+ }
+
+ /**
+ * Get cpuRequest
+ * @return cpuRequest
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public String getCpuRequest() {
+ return cpuRequest;
+ }
+
+
+ public void setCpuRequest(String cpuRequest) {
+ this.cpuRequest = cpuRequest;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer dedicatedPod(Boolean dedicatedPod) {
+
+ this.dedicatedPod = dedicatedPod;
+ return this;
+ }
+
+ /**
+ * Specify if a container should run in its own separated pod, instead of running as part of the main development environment pod. Default value is `false`
+ * @return dedicatedPod
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Specify if a container should run in its own separated pod, instead of running as part of the main development environment pod. Default value is `false`")
+
+ public Boolean getDedicatedPod() {
+ return dedicatedPod;
+ }
+
+
+ public void setDedicatedPod(Boolean dedicatedPod) {
+ this.dedicatedPod = dedicatedPod;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer endpoints(List endpoints) {
+
+ this.endpoints = endpoints;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer addEndpointsItem(V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints endpointsItem) {
+ if (this.endpoints == null) {
+ this.endpoints = new ArrayList<>();
+ }
+ this.endpoints.add(endpointsItem);
+ return this;
+ }
+
+ /**
+ * Get endpoints
+ * @return endpoints
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public List getEndpoints() {
+ return endpoints;
+ }
+
+
+ public void setEndpoints(List endpoints) {
+ this.endpoints = endpoints;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer env(List env) {
+
+ this.env = env;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer addEnvItem(V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv envItem) {
+ if (this.env == null) {
+ this.env = new ArrayList<>();
+ }
+ this.env.add(envItem);
+ return this;
+ }
+
+ /**
+ * Environment variables used in this container. The following variables are reserved and cannot be overridden via env: - `$PROJECTS_ROOT` - `$PROJECT_SOURCE`
+ * @return env
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Environment variables used in this container. The following variables are reserved and cannot be overridden via env: - `$PROJECTS_ROOT` - `$PROJECT_SOURCE`")
+
+ public List getEnv() {
+ return env;
+ }
+
+
+ public void setEnv(List env) {
+ this.env = env;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer image(String image) {
+
+ this.image = image;
+ return this;
+ }
+
+ /**
+ * Get image
+ * @return image
+ **/
+ @ApiModelProperty(required = true, value = "")
+
+ public String getImage() {
+ return image;
+ }
+
+
+ public void setImage(String image) {
+ this.image = image;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer memoryLimit(String memoryLimit) {
+
+ this.memoryLimit = memoryLimit;
+ return this;
+ }
+
+ /**
+ * Get memoryLimit
+ * @return memoryLimit
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public String getMemoryLimit() {
+ return memoryLimit;
+ }
+
+
+ public void setMemoryLimit(String memoryLimit) {
+ this.memoryLimit = memoryLimit;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer memoryRequest(String memoryRequest) {
+
+ this.memoryRequest = memoryRequest;
+ return this;
+ }
+
+ /**
+ * Get memoryRequest
+ * @return memoryRequest
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public String getMemoryRequest() {
+ return memoryRequest;
+ }
+
+
+ public void setMemoryRequest(String memoryRequest) {
+ this.memoryRequest = memoryRequest;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer mountSources(Boolean mountSources) {
+
+ this.mountSources = mountSources;
+ return this;
+ }
+
+ /**
+ * Toggles whether or not the project source code should be mounted in the component. Defaults to true for all component types except plugins and components that set `dedicatedPod` to true.
+ * @return mountSources
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Toggles whether or not the project source code should be mounted in the component. Defaults to true for all component types except plugins and components that set `dedicatedPod` to true.")
+
+ public Boolean getMountSources() {
+ return mountSources;
+ }
+
+
+ public void setMountSources(Boolean mountSources) {
+ this.mountSources = mountSources;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer sourceMapping(String sourceMapping) {
+
+ this.sourceMapping = sourceMapping;
+ return this;
+ }
+
+ /**
+ * Optional specification of the path in the container where project sources should be transferred/mounted when `mountSources` is `true`. When omitted, the default value of /projects is used.
+ * @return sourceMapping
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Optional specification of the path in the container where project sources should be transferred/mounted when `mountSources` is `true`. When omitted, the default value of /projects is used.")
+
+ public String getSourceMapping() {
+ return sourceMapping;
+ }
+
+
+ public void setSourceMapping(String sourceMapping) {
+ this.sourceMapping = sourceMapping;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer volumeMounts(List volumeMounts) {
+
+ this.volumeMounts = volumeMounts;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer addVolumeMountsItem(V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts volumeMountsItem) {
+ if (this.volumeMounts == null) {
+ this.volumeMounts = new ArrayList<>();
+ }
+ this.volumeMounts.add(volumeMountsItem);
+ return this;
+ }
+
+ /**
+ * List of volumes mounts that should be mounted is this container.
+ * @return volumeMounts
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "List of volumes mounts that should be mounted is this container.")
+
+ public List getVolumeMounts() {
+ return volumeMounts;
+ }
+
+
+ public void setVolumeMounts(List volumeMounts) {
+ this.volumeMounts = volumeMounts;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer) o;
+ return Objects.equals(this.annotation, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.annotation) &&
+ Objects.equals(this.args, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.args) &&
+ Objects.equals(this.command, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.command) &&
+ Objects.equals(this.cpuLimit, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.cpuLimit) &&
+ Objects.equals(this.cpuRequest, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.cpuRequest) &&
+ Objects.equals(this.dedicatedPod, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.dedicatedPod) &&
+ Objects.equals(this.endpoints, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.endpoints) &&
+ Objects.equals(this.env, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.env) &&
+ Objects.equals(this.image, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.image) &&
+ Objects.equals(this.memoryLimit, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.memoryLimit) &&
+ Objects.equals(this.memoryRequest, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.memoryRequest) &&
+ Objects.equals(this.mountSources, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.mountSources) &&
+ Objects.equals(this.sourceMapping, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.sourceMapping) &&
+ Objects.equals(this.volumeMounts, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer.volumeMounts);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(annotation, args, command, cpuLimit, cpuRequest, dedicatedPod, endpoints, env, image, memoryLimit, memoryRequest, mountSources, sourceMapping, volumeMounts);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainer {\n");
+ sb.append(" annotation: ").append(toIndentedString(annotation)).append("\n");
+ sb.append(" args: ").append(toIndentedString(args)).append("\n");
+ sb.append(" command: ").append(toIndentedString(command)).append("\n");
+ sb.append(" cpuLimit: ").append(toIndentedString(cpuLimit)).append("\n");
+ sb.append(" cpuRequest: ").append(toIndentedString(cpuRequest)).append("\n");
+ sb.append(" dedicatedPod: ").append(toIndentedString(dedicatedPod)).append("\n");
+ sb.append(" endpoints: ").append(toIndentedString(endpoints)).append("\n");
+ sb.append(" env: ").append(toIndentedString(env)).append("\n");
+ sb.append(" image: ").append(toIndentedString(image)).append("\n");
+ sb.append(" memoryLimit: ").append(toIndentedString(memoryLimit)).append("\n");
+ sb.append(" memoryRequest: ").append(toIndentedString(memoryRequest)).append("\n");
+ sb.append(" mountSources: ").append(toIndentedString(mountSources)).append("\n");
+ sb.append(" sourceMapping: ").append(toIndentedString(sourceMapping)).append("\n");
+ sb.append(" volumeMounts: ").append(toIndentedString(volumeMounts)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation.java
new file mode 100644
index 0000000..6d38cd3
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation.java
@@ -0,0 +1,148 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Annotations that should be added to specific resources for this container
+ */
+@ApiModel(description = "Annotations that should be added to specific resources for this container")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation {
+ public static final String SERIALIZED_NAME_DEPLOYMENT = "deployment";
+ @SerializedName(SERIALIZED_NAME_DEPLOYMENT)
+ private Map deployment = null;
+
+ public static final String SERIALIZED_NAME_SERVICE = "service";
+ @SerializedName(SERIALIZED_NAME_SERVICE)
+ private Map service = null;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation deployment(Map deployment) {
+
+ this.deployment = deployment;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation putDeploymentItem(String key, String deploymentItem) {
+ if (this.deployment == null) {
+ this.deployment = new HashMap<>();
+ }
+ this.deployment.put(key, deploymentItem);
+ return this;
+ }
+
+ /**
+ * Annotations to be added to deployment
+ * @return deployment
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Annotations to be added to deployment")
+
+ public Map getDeployment() {
+ return deployment;
+ }
+
+
+ public void setDeployment(Map deployment) {
+ this.deployment = deployment;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation service(Map service) {
+
+ this.service = service;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation putServiceItem(String key, String serviceItem) {
+ if (this.service == null) {
+ this.service = new HashMap<>();
+ }
+ this.service.put(key, serviceItem);
+ return this;
+ }
+
+ /**
+ * Annotations to be added to service
+ * @return service
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Annotations to be added to service")
+
+ public Map getService() {
+ return service;
+ }
+
+
+ public void setService(Map service) {
+ this.service = service;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation) o;
+ return Objects.equals(this.deployment, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation.deployment) &&
+ Objects.equals(this.service, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation.service);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(deployment, service);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerAnnotation {\n");
+ sb.append(" deployment: ").append(toIndentedString(deployment)).append("\n");
+ sb.append(" service: ").append(toIndentedString(service)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints.java
new file mode 100644
index 0000000..b439edf
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints.java
@@ -0,0 +1,415 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints
+ */
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints {
+ public static final String SERIALIZED_NAME_ANNOTATION = "annotation";
+ @SerializedName(SERIALIZED_NAME_ANNOTATION)
+ private Map annotation = null;
+
+ public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes";
+ @SerializedName(SERIALIZED_NAME_ATTRIBUTES)
+ private Object attributes;
+
+ /**
+ * Describes how the endpoint should be exposed on the network. - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. - `internal` means that the endpoint will be exposed internally outside of the main devworkspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. - `none` means that the endpoint will not be exposed and will only be accessible inside the main devworkspace POD, on a local address. Default value is `public`
+ */
+ @JsonAdapter(ExposureEnum.Adapter.class)
+ public enum ExposureEnum {
+ PUBLIC("public"),
+
+ INTERNAL("internal"),
+
+ NONE("none");
+
+ private String value;
+
+ ExposureEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static ExposureEnum fromValue(String value) {
+ for (ExposureEnum b : ExposureEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ public static class Adapter extends TypeAdapter {
+ @Override
+ public void write(final JsonWriter jsonWriter, final ExposureEnum enumeration) throws IOException {
+ jsonWriter.value(enumeration.getValue());
+ }
+
+ @Override
+ public ExposureEnum read(final JsonReader jsonReader) throws IOException {
+ String value = jsonReader.nextString();
+ return ExposureEnum.fromValue(value);
+ }
+ }
+ }
+
+ public static final String SERIALIZED_NAME_EXPOSURE = "exposure";
+ @SerializedName(SERIALIZED_NAME_EXPOSURE)
+ private ExposureEnum exposure = ExposureEnum.PUBLIC;
+
+ public static final String SERIALIZED_NAME_NAME = "name";
+ @SerializedName(SERIALIZED_NAME_NAME)
+ private String name;
+
+ public static final String SERIALIZED_NAME_PATH = "path";
+ @SerializedName(SERIALIZED_NAME_PATH)
+ private String path;
+
+ /**
+ * Describes the application and transport protocols of the traffic that will go through this endpoint. - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. - `https`: Endpoint will have `https` traffic, typically on a TCP connection. - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. Default value is `http`
+ */
+ @JsonAdapter(ProtocolEnum.Adapter.class)
+ public enum ProtocolEnum {
+ HTTP("http"),
+
+ HTTPS("https"),
+
+ WS("ws"),
+
+ WSS("wss"),
+
+ TCP("tcp"),
+
+ UDP("udp");
+
+ private String value;
+
+ ProtocolEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static ProtocolEnum fromValue(String value) {
+ for (ProtocolEnum b : ProtocolEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ public static class Adapter extends TypeAdapter {
+ @Override
+ public void write(final JsonWriter jsonWriter, final ProtocolEnum enumeration) throws IOException {
+ jsonWriter.value(enumeration.getValue());
+ }
+
+ @Override
+ public ProtocolEnum read(final JsonReader jsonReader) throws IOException {
+ String value = jsonReader.nextString();
+ return ProtocolEnum.fromValue(value);
+ }
+ }
+ }
+
+ public static final String SERIALIZED_NAME_PROTOCOL = "protocol";
+ @SerializedName(SERIALIZED_NAME_PROTOCOL)
+ private ProtocolEnum protocol = ProtocolEnum.HTTP;
+
+ public static final String SERIALIZED_NAME_SECURE = "secure";
+ @SerializedName(SERIALIZED_NAME_SECURE)
+ private Boolean secure;
+
+ public static final String SERIALIZED_NAME_TARGET_PORT = "targetPort";
+ @SerializedName(SERIALIZED_NAME_TARGET_PORT)
+ private Integer targetPort;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints annotation(Map annotation) {
+
+ this.annotation = annotation;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints putAnnotationItem(String key, String annotationItem) {
+ if (this.annotation == null) {
+ this.annotation = new HashMap<>();
+ }
+ this.annotation.put(key, annotationItem);
+ return this;
+ }
+
+ /**
+ * Annotations to be added to Kubernetes Ingress or Openshift Route
+ * @return annotation
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Annotations to be added to Kubernetes Ingress or Openshift Route")
+
+ public Map getAnnotation() {
+ return annotation;
+ }
+
+
+ public void setAnnotation(Map annotation) {
+ this.annotation = annotation;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints attributes(Object attributes) {
+
+ this.attributes = attributes;
+ return this;
+ }
+
+ /**
+ * Map of implementation-dependant string-based free-form attributes. Examples of Che-specific attributes: - cookiesAuthEnabled: \"true\" / \"false\", - type: \"terminal\" / \"ide\" / \"ide-dev\",
+ * @return attributes
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Map of implementation-dependant string-based free-form attributes. Examples of Che-specific attributes: - cookiesAuthEnabled: \"true\" / \"false\", - type: \"terminal\" / \"ide\" / \"ide-dev\",")
+
+ public Object getAttributes() {
+ return attributes;
+ }
+
+
+ public void setAttributes(Object attributes) {
+ this.attributes = attributes;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints exposure(ExposureEnum exposure) {
+
+ this.exposure = exposure;
+ return this;
+ }
+
+ /**
+ * Describes how the endpoint should be exposed on the network. - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. - `internal` means that the endpoint will be exposed internally outside of the main devworkspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. - `none` means that the endpoint will not be exposed and will only be accessible inside the main devworkspace POD, on a local address. Default value is `public`
+ * @return exposure
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Describes how the endpoint should be exposed on the network. - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. - `internal` means that the endpoint will be exposed internally outside of the main devworkspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. - `none` means that the endpoint will not be exposed and will only be accessible inside the main devworkspace POD, on a local address. Default value is `public`")
+
+ public ExposureEnum getExposure() {
+ return exposure;
+ }
+
+
+ public void setExposure(ExposureEnum exposure) {
+ this.exposure = exposure;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints name(String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get name
+ * @return name
+ **/
+ @ApiModelProperty(required = true, value = "")
+
+ public String getName() {
+ return name;
+ }
+
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints path(String path) {
+
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * Path of the endpoint URL
+ * @return path
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Path of the endpoint URL")
+
+ public String getPath() {
+ return path;
+ }
+
+
+ public void setPath(String path) {
+ this.path = path;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints protocol(ProtocolEnum protocol) {
+
+ this.protocol = protocol;
+ return this;
+ }
+
+ /**
+ * Describes the application and transport protocols of the traffic that will go through this endpoint. - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. - `https`: Endpoint will have `https` traffic, typically on a TCP connection. - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. Default value is `http`
+ * @return protocol
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Describes the application and transport protocols of the traffic that will go through this endpoint. - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. - `https`: Endpoint will have `https` traffic, typically on a TCP connection. - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. Default value is `http`")
+
+ public ProtocolEnum getProtocol() {
+ return protocol;
+ }
+
+
+ public void setProtocol(ProtocolEnum protocol) {
+ this.protocol = protocol;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints secure(Boolean secure) {
+
+ this.secure = secure;
+ return this;
+ }
+
+ /**
+ * Describes whether the endpoint should be secured and protected by some authentication process. This requires a protocol of `https` or `wss`.
+ * @return secure
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Describes whether the endpoint should be secured and protected by some authentication process. This requires a protocol of `https` or `wss`.")
+
+ public Boolean getSecure() {
+ return secure;
+ }
+
+
+ public void setSecure(Boolean secure) {
+ this.secure = secure;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints targetPort(Integer targetPort) {
+
+ this.targetPort = targetPort;
+ return this;
+ }
+
+ /**
+ * Port number to be used within the container component. The same port cannot be used by two different container components.
+ * @return targetPort
+ **/
+ @ApiModelProperty(required = true, value = "Port number to be used within the container component. The same port cannot be used by two different container components.")
+
+ public Integer getTargetPort() {
+ return targetPort;
+ }
+
+
+ public void setTargetPort(Integer targetPort) {
+ this.targetPort = targetPort;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints) o;
+ return Objects.equals(this.annotation, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints.annotation) &&
+ Objects.equals(this.attributes, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints.attributes) &&
+ Objects.equals(this.exposure, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints.exposure) &&
+ Objects.equals(this.name, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints.name) &&
+ Objects.equals(this.path, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints.path) &&
+ Objects.equals(this.protocol, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints.protocol) &&
+ Objects.equals(this.secure, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints.secure) &&
+ Objects.equals(this.targetPort, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints.targetPort);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(annotation, attributes, exposure, name, path, protocol, secure, targetPort);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEndpoints {\n");
+ sb.append(" annotation: ").append(toIndentedString(annotation)).append("\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" exposure: ").append(toIndentedString(exposure)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" path: ").append(toIndentedString(path)).append("\n");
+ sb.append(" protocol: ").append(toIndentedString(protocol)).append("\n");
+ sb.append(" secure: ").append(toIndentedString(secure)).append("\n");
+ sb.append(" targetPort: ").append(toIndentedString(targetPort)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv.java
new file mode 100644
index 0000000..a3f6e08
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv.java
@@ -0,0 +1,126 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv
+ */
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv {
+ public static final String SERIALIZED_NAME_NAME = "name";
+ @SerializedName(SERIALIZED_NAME_NAME)
+ private String name;
+
+ public static final String SERIALIZED_NAME_VALUE = "value";
+ @SerializedName(SERIALIZED_NAME_VALUE)
+ private String value;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv name(String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get name
+ * @return name
+ **/
+ @ApiModelProperty(required = true, value = "")
+
+ public String getName() {
+ return name;
+ }
+
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv value(String value) {
+
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get value
+ * @return value
+ **/
+ @ApiModelProperty(required = true, value = "")
+
+ public String getValue() {
+ return value;
+ }
+
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv) o;
+ return Objects.equals(this.name, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv.name) &&
+ Objects.equals(this.value, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv.value);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, value);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerEnv {\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts.java
new file mode 100644
index 0000000..5b62db8
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts.java
@@ -0,0 +1,128 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Volume that should be mounted to a component container
+ */
+@ApiModel(description = "Volume that should be mounted to a component container")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts {
+ public static final String SERIALIZED_NAME_NAME = "name";
+ @SerializedName(SERIALIZED_NAME_NAME)
+ private String name;
+
+ public static final String SERIALIZED_NAME_PATH = "path";
+ @SerializedName(SERIALIZED_NAME_PATH)
+ private String path;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts name(String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * The volume mount name is the name of an existing `Volume` component. If several containers mount the same volume name then they will reuse the same volume and will be able to access to the same files.
+ * @return name
+ **/
+ @ApiModelProperty(required = true, value = "The volume mount name is the name of an existing `Volume` component. If several containers mount the same volume name then they will reuse the same volume and will be able to access to the same files.")
+
+ public String getName() {
+ return name;
+ }
+
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts path(String path) {
+
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * The path in the component container where the volume should be mounted. If not path is mentioned, default path is the is `/<name>`.
+ * @return path
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "The path in the component container where the volume should be mounted. If not path is mentioned, default path is the is `/`.")
+
+ public String getPath() {
+ return path;
+ }
+
+
+ public void setPath(String path) {
+ this.path = path;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts) o;
+ return Objects.equals(this.name, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts.name) &&
+ Objects.equals(this.path, v1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts.path);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, path);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsContainerVolumeMounts {\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" path: ").append(toIndentedString(path)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom.java
new file mode 100644
index 0000000..1b36379
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom.java
@@ -0,0 +1,127 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Custom component whose logic is implementation-dependant and should be provided by the user possibly through some dedicated controller
+ */
+@ApiModel(description = "Custom component whose logic is implementation-dependant and should be provided by the user possibly through some dedicated controller")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom {
+ public static final String SERIALIZED_NAME_COMPONENT_CLASS = "componentClass";
+ @SerializedName(SERIALIZED_NAME_COMPONENT_CLASS)
+ private String componentClass;
+
+ public static final String SERIALIZED_NAME_EMBEDDED_RESOURCE = "embeddedResource";
+ @SerializedName(SERIALIZED_NAME_EMBEDDED_RESOURCE)
+ private Object embeddedResource;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom componentClass(String componentClass) {
+
+ this.componentClass = componentClass;
+ return this;
+ }
+
+ /**
+ * Class of component that the associated implementation controller should use to process this command with the appropriate logic
+ * @return componentClass
+ **/
+ @ApiModelProperty(required = true, value = "Class of component that the associated implementation controller should use to process this command with the appropriate logic")
+
+ public String getComponentClass() {
+ return componentClass;
+ }
+
+
+ public void setComponentClass(String componentClass) {
+ this.componentClass = componentClass;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom embeddedResource(Object embeddedResource) {
+
+ this.embeddedResource = embeddedResource;
+ return this;
+ }
+
+ /**
+ * Additional free-form configuration for this custom component that the implementation controller will know how to use
+ * @return embeddedResource
+ **/
+ @ApiModelProperty(required = true, value = "Additional free-form configuration for this custom component that the implementation controller will know how to use")
+
+ public Object getEmbeddedResource() {
+ return embeddedResource;
+ }
+
+
+ public void setEmbeddedResource(Object embeddedResource) {
+ this.embeddedResource = embeddedResource;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom v1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom) o;
+ return Objects.equals(this.componentClass, v1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom.componentClass) &&
+ Objects.equals(this.embeddedResource, v1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom.embeddedResource);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(componentClass, embeddedResource);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsCustom {\n");
+ sb.append(" componentClass: ").append(toIndentedString(componentClass)).append("\n");
+ sb.append(" embeddedResource: ").append(toIndentedString(embeddedResource)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage.java
new file mode 100644
index 0000000..b5b8ec5
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage.java
@@ -0,0 +1,158 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Allows specifying the definition of an image for outer loop builds
+ */
+@ApiModel(description = "Allows specifying the definition of an image for outer loop builds")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage {
+ public static final String SERIALIZED_NAME_AUTO_BUILD = "autoBuild";
+ @SerializedName(SERIALIZED_NAME_AUTO_BUILD)
+ private Boolean autoBuild;
+
+ public static final String SERIALIZED_NAME_DOCKERFILE = "dockerfile";
+ @SerializedName(SERIALIZED_NAME_DOCKERFILE)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile dockerfile;
+
+ public static final String SERIALIZED_NAME_IMAGE_NAME = "imageName";
+ @SerializedName(SERIALIZED_NAME_IMAGE_NAME)
+ private String imageName;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage autoBuild(Boolean autoBuild) {
+
+ this.autoBuild = autoBuild;
+ return this;
+ }
+
+ /**
+ * Defines if the image should be built during startup. Default value is `false`
+ * @return autoBuild
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Defines if the image should be built during startup. Default value is `false`")
+
+ public Boolean getAutoBuild() {
+ return autoBuild;
+ }
+
+
+ public void setAutoBuild(Boolean autoBuild) {
+ this.autoBuild = autoBuild;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage dockerfile(V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile dockerfile) {
+
+ this.dockerfile = dockerfile;
+ return this;
+ }
+
+ /**
+ * Get dockerfile
+ * @return dockerfile
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile getDockerfile() {
+ return dockerfile;
+ }
+
+
+ public void setDockerfile(V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile dockerfile) {
+ this.dockerfile = dockerfile;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage imageName(String imageName) {
+
+ this.imageName = imageName;
+ return this;
+ }
+
+ /**
+ * Name of the image for the resulting outerloop build
+ * @return imageName
+ **/
+ @ApiModelProperty(required = true, value = "Name of the image for the resulting outerloop build")
+
+ public String getImageName() {
+ return imageName;
+ }
+
+
+ public void setImageName(String imageName) {
+ this.imageName = imageName;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage v1alpha2DevWorkspaceSpecTemplateComponentsItemsImage = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage) o;
+ return Objects.equals(this.autoBuild, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImage.autoBuild) &&
+ Objects.equals(this.dockerfile, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImage.dockerfile) &&
+ Objects.equals(this.imageName, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImage.imageName);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(autoBuild, dockerfile, imageName);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsImage {\n");
+ sb.append(" autoBuild: ").append(toIndentedString(autoBuild)).append("\n");
+ sb.append(" dockerfile: ").append(toIndentedString(dockerfile)).append("\n");
+ sb.append(" imageName: ").append(toIndentedString(imageName)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile.java
new file mode 100644
index 0000000..8127db2
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile.java
@@ -0,0 +1,257 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Allows specifying dockerfile type build
+ */
+@ApiModel(description = "Allows specifying dockerfile type build")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile {
+ public static final String SERIALIZED_NAME_ARGS = "args";
+ @SerializedName(SERIALIZED_NAME_ARGS)
+ private List args = null;
+
+ public static final String SERIALIZED_NAME_BUILD_CONTEXT = "buildContext";
+ @SerializedName(SERIALIZED_NAME_BUILD_CONTEXT)
+ private String buildContext;
+
+ public static final String SERIALIZED_NAME_DEVFILE_REGISTRY = "devfileRegistry";
+ @SerializedName(SERIALIZED_NAME_DEVFILE_REGISTRY)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry devfileRegistry;
+
+ public static final String SERIALIZED_NAME_GIT = "git";
+ @SerializedName(SERIALIZED_NAME_GIT)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit git;
+
+ public static final String SERIALIZED_NAME_ROOT_REQUIRED = "rootRequired";
+ @SerializedName(SERIALIZED_NAME_ROOT_REQUIRED)
+ private Boolean rootRequired;
+
+ public static final String SERIALIZED_NAME_URI = "uri";
+ @SerializedName(SERIALIZED_NAME_URI)
+ private String uri;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile args(List args) {
+
+ this.args = args;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile addArgsItem(String argsItem) {
+ if (this.args == null) {
+ this.args = new ArrayList<>();
+ }
+ this.args.add(argsItem);
+ return this;
+ }
+
+ /**
+ * The arguments to supply to the dockerfile build.
+ * @return args
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "The arguments to supply to the dockerfile build.")
+
+ public List getArgs() {
+ return args;
+ }
+
+
+ public void setArgs(List args) {
+ this.args = args;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile buildContext(String buildContext) {
+
+ this.buildContext = buildContext;
+ return this;
+ }
+
+ /**
+ * Path of source directory to establish build context. Defaults to ${PROJECT_SOURCE} in the container
+ * @return buildContext
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Path of source directory to establish build context. Defaults to ${PROJECT_SOURCE} in the container")
+
+ public String getBuildContext() {
+ return buildContext;
+ }
+
+
+ public void setBuildContext(String buildContext) {
+ this.buildContext = buildContext;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile devfileRegistry(V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry devfileRegistry) {
+
+ this.devfileRegistry = devfileRegistry;
+ return this;
+ }
+
+ /**
+ * Get devfileRegistry
+ * @return devfileRegistry
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry getDevfileRegistry() {
+ return devfileRegistry;
+ }
+
+
+ public void setDevfileRegistry(V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry devfileRegistry) {
+ this.devfileRegistry = devfileRegistry;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile git(V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit git) {
+
+ this.git = git;
+ return this;
+ }
+
+ /**
+ * Get git
+ * @return git
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit getGit() {
+ return git;
+ }
+
+
+ public void setGit(V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit git) {
+ this.git = git;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile rootRequired(Boolean rootRequired) {
+
+ this.rootRequired = rootRequired;
+ return this;
+ }
+
+ /**
+ * Specify if a privileged builder pod is required. Default value is `false`
+ * @return rootRequired
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Specify if a privileged builder pod is required. Default value is `false`")
+
+ public Boolean getRootRequired() {
+ return rootRequired;
+ }
+
+
+ public void setRootRequired(Boolean rootRequired) {
+ this.rootRequired = rootRequired;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile uri(String uri) {
+
+ this.uri = uri;
+ return this;
+ }
+
+ /**
+ * URI Reference of a Dockerfile. It can be a full URL or a relative URI from the current devfile as the base URI.
+ * @return uri
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "URI Reference of a Dockerfile. It can be a full URL or a relative URI from the current devfile as the base URI.")
+
+ public String getUri() {
+ return uri;
+ }
+
+
+ public void setUri(String uri) {
+ this.uri = uri;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile) o;
+ return Objects.equals(this.args, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile.args) &&
+ Objects.equals(this.buildContext, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile.buildContext) &&
+ Objects.equals(this.devfileRegistry, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile.devfileRegistry) &&
+ Objects.equals(this.git, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile.git) &&
+ Objects.equals(this.rootRequired, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile.rootRequired) &&
+ Objects.equals(this.uri, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile.uri);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(args, buildContext, devfileRegistry, git, rootRequired, uri);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfile {\n");
+ sb.append(" args: ").append(toIndentedString(args)).append("\n");
+ sb.append(" buildContext: ").append(toIndentedString(buildContext)).append("\n");
+ sb.append(" devfileRegistry: ").append(toIndentedString(devfileRegistry)).append("\n");
+ sb.append(" git: ").append(toIndentedString(git)).append("\n");
+ sb.append(" rootRequired: ").append(toIndentedString(rootRequired)).append("\n");
+ sb.append(" uri: ").append(toIndentedString(uri)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry.java
new file mode 100644
index 0000000..32491dc
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry.java
@@ -0,0 +1,128 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Dockerfile's Devfile Registry source
+ */
+@ApiModel(description = "Dockerfile's Devfile Registry source")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry {
+ public static final String SERIALIZED_NAME_ID = "id";
+ @SerializedName(SERIALIZED_NAME_ID)
+ private String id;
+
+ public static final String SERIALIZED_NAME_REGISTRY_URL = "registryUrl";
+ @SerializedName(SERIALIZED_NAME_REGISTRY_URL)
+ private String registryUrl;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry id(String id) {
+
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Id in a devfile registry that contains a Dockerfile. The src in the OCI registry required for the Dockerfile build will be downloaded for building the image.
+ * @return id
+ **/
+ @ApiModelProperty(required = true, value = "Id in a devfile registry that contains a Dockerfile. The src in the OCI registry required for the Dockerfile build will be downloaded for building the image.")
+
+ public String getId() {
+ return id;
+ }
+
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry registryUrl(String registryUrl) {
+
+ this.registryUrl = registryUrl;
+ return this;
+ }
+
+ /**
+ * Devfile Registry URL to pull the Dockerfile from when using the Devfile Registry as Dockerfile src. To ensure the Dockerfile gets resolved consistently in different environments, it is recommended to always specify the `devfileRegistryUrl` when `Id` is used.
+ * @return registryUrl
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Devfile Registry URL to pull the Dockerfile from when using the Devfile Registry as Dockerfile src. To ensure the Dockerfile gets resolved consistently in different environments, it is recommended to always specify the `devfileRegistryUrl` when `Id` is used.")
+
+ public String getRegistryUrl() {
+ return registryUrl;
+ }
+
+
+ public void setRegistryUrl(String registryUrl) {
+ this.registryUrl = registryUrl;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry) o;
+ return Objects.equals(this.id, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry.id) &&
+ Objects.equals(this.registryUrl, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry.registryUrl);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, registryUrl);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileDevfileRegistry {\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" registryUrl: ").append(toIndentedString(registryUrl)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit.java
new file mode 100644
index 0000000..6071ae8
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit.java
@@ -0,0 +1,166 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Dockerfile's Git source
+ */
+@ApiModel(description = "Dockerfile's Git source")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit {
+ public static final String SERIALIZED_NAME_CHECKOUT_FROM = "checkoutFrom";
+ @SerializedName(SERIALIZED_NAME_CHECKOUT_FROM)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom checkoutFrom;
+
+ public static final String SERIALIZED_NAME_FILE_LOCATION = "fileLocation";
+ @SerializedName(SERIALIZED_NAME_FILE_LOCATION)
+ private String fileLocation;
+
+ public static final String SERIALIZED_NAME_REMOTES = "remotes";
+ @SerializedName(SERIALIZED_NAME_REMOTES)
+ private Map remotes = new HashMap<>();
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit checkoutFrom(V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom checkoutFrom) {
+
+ this.checkoutFrom = checkoutFrom;
+ return this;
+ }
+
+ /**
+ * Get checkoutFrom
+ * @return checkoutFrom
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom getCheckoutFrom() {
+ return checkoutFrom;
+ }
+
+
+ public void setCheckoutFrom(V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom checkoutFrom) {
+ this.checkoutFrom = checkoutFrom;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit fileLocation(String fileLocation) {
+
+ this.fileLocation = fileLocation;
+ return this;
+ }
+
+ /**
+ * Location of the Dockerfile in the Git repository when using git as Dockerfile src. Defaults to Dockerfile.
+ * @return fileLocation
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Location of the Dockerfile in the Git repository when using git as Dockerfile src. Defaults to Dockerfile.")
+
+ public String getFileLocation() {
+ return fileLocation;
+ }
+
+
+ public void setFileLocation(String fileLocation) {
+ this.fileLocation = fileLocation;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit remotes(Map remotes) {
+
+ this.remotes = remotes;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit putRemotesItem(String key, String remotesItem) {
+ this.remotes.put(key, remotesItem);
+ return this;
+ }
+
+ /**
+ * The remotes map which should be initialized in the git project. Projects must have at least one remote configured while StarterProjects & Image Component's Git source can only have at most one remote configured.
+ * @return remotes
+ **/
+ @ApiModelProperty(required = true, value = "The remotes map which should be initialized in the git project. Projects must have at least one remote configured while StarterProjects & Image Component's Git source can only have at most one remote configured.")
+
+ public Map getRemotes() {
+ return remotes;
+ }
+
+
+ public void setRemotes(Map remotes) {
+ this.remotes = remotes;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit) o;
+ return Objects.equals(this.checkoutFrom, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit.checkoutFrom) &&
+ Objects.equals(this.fileLocation, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit.fileLocation) &&
+ Objects.equals(this.remotes, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit.remotes);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(checkoutFrom, fileLocation, remotes);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGit {\n");
+ sb.append(" checkoutFrom: ").append(toIndentedString(checkoutFrom)).append("\n");
+ sb.append(" fileLocation: ").append(toIndentedString(fileLocation)).append("\n");
+ sb.append(" remotes: ").append(toIndentedString(remotes)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom.java
new file mode 100644
index 0000000..c858db7
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom.java
@@ -0,0 +1,129 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Defines from what the project should be checked out. Required if there are more than one remote configured
+ */
+@ApiModel(description = "Defines from what the project should be checked out. Required if there are more than one remote configured")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom {
+ public static final String SERIALIZED_NAME_REMOTE = "remote";
+ @SerializedName(SERIALIZED_NAME_REMOTE)
+ private String remote;
+
+ public static final String SERIALIZED_NAME_REVISION = "revision";
+ @SerializedName(SERIALIZED_NAME_REVISION)
+ private String revision;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom remote(String remote) {
+
+ this.remote = remote;
+ return this;
+ }
+
+ /**
+ * The remote name should be used as init. Required if there are more than one remote configured
+ * @return remote
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "The remote name should be used as init. Required if there are more than one remote configured")
+
+ public String getRemote() {
+ return remote;
+ }
+
+
+ public void setRemote(String remote) {
+ this.remote = remote;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom revision(String revision) {
+
+ this.revision = revision;
+ return this;
+ }
+
+ /**
+ * The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.
+ * @return revision
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "The revision to checkout from. Should be branch name, tag or commit id. Default branch is used if missing or specified revision is not found.")
+
+ public String getRevision() {
+ return revision;
+ }
+
+
+ public void setRevision(String revision) {
+ this.revision = revision;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom) o;
+ return Objects.equals(this.remote, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom.remote) &&
+ Objects.equals(this.revision, v1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom.revision);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(remote, revision);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsImageDockerfileGitCheckoutFrom {\n");
+ sb.append(" remote: ").append(toIndentedString(remote)).append("\n");
+ sb.append(" revision: ").append(toIndentedString(revision)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes.java
new file mode 100644
index 0000000..a4615d4
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes.java
@@ -0,0 +1,198 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Allows importing into the devworkspace the Kubernetes resources defined in a given manifest. For example this allows reusing the Kubernetes definitions used to deploy some runtime components in production.
+ */
+@ApiModel(description = "Allows importing into the devworkspace the Kubernetes resources defined in a given manifest. For example this allows reusing the Kubernetes definitions used to deploy some runtime components in production.")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes {
+ public static final String SERIALIZED_NAME_DEPLOY_BY_DEFAULT = "deployByDefault";
+ @SerializedName(SERIALIZED_NAME_DEPLOY_BY_DEFAULT)
+ private Boolean deployByDefault;
+
+ public static final String SERIALIZED_NAME_ENDPOINTS = "endpoints";
+ @SerializedName(SERIALIZED_NAME_ENDPOINTS)
+ private List endpoints = null;
+
+ public static final String SERIALIZED_NAME_INLINED = "inlined";
+ @SerializedName(SERIALIZED_NAME_INLINED)
+ private String inlined;
+
+ public static final String SERIALIZED_NAME_URI = "uri";
+ @SerializedName(SERIALIZED_NAME_URI)
+ private String uri;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes deployByDefault(Boolean deployByDefault) {
+
+ this.deployByDefault = deployByDefault;
+ return this;
+ }
+
+ /**
+ * Defines if the component should be deployed during startup. Default value is `false`
+ * @return deployByDefault
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Defines if the component should be deployed during startup. Default value is `false`")
+
+ public Boolean getDeployByDefault() {
+ return deployByDefault;
+ }
+
+
+ public void setDeployByDefault(Boolean deployByDefault) {
+ this.deployByDefault = deployByDefault;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes endpoints(List endpoints) {
+
+ this.endpoints = endpoints;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes addEndpointsItem(V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints endpointsItem) {
+ if (this.endpoints == null) {
+ this.endpoints = new ArrayList<>();
+ }
+ this.endpoints.add(endpointsItem);
+ return this;
+ }
+
+ /**
+ * Get endpoints
+ * @return endpoints
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public List getEndpoints() {
+ return endpoints;
+ }
+
+
+ public void setEndpoints(List endpoints) {
+ this.endpoints = endpoints;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes inlined(String inlined) {
+
+ this.inlined = inlined;
+ return this;
+ }
+
+ /**
+ * Inlined manifest
+ * @return inlined
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Inlined manifest")
+
+ public String getInlined() {
+ return inlined;
+ }
+
+
+ public void setInlined(String inlined) {
+ this.inlined = inlined;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes uri(String uri) {
+
+ this.uri = uri;
+ return this;
+ }
+
+ /**
+ * Location in a file fetched from a uri.
+ * @return uri
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Location in a file fetched from a uri.")
+
+ public String getUri() {
+ return uri;
+ }
+
+
+ public void setUri(String uri) {
+ this.uri = uri;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes) o;
+ return Objects.equals(this.deployByDefault, v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes.deployByDefault) &&
+ Objects.equals(this.endpoints, v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes.endpoints) &&
+ Objects.equals(this.inlined, v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes.inlined) &&
+ Objects.equals(this.uri, v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes.uri);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(deployByDefault, endpoints, inlined, uri);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetes {\n");
+ sb.append(" deployByDefault: ").append(toIndentedString(deployByDefault)).append("\n");
+ sb.append(" endpoints: ").append(toIndentedString(endpoints)).append("\n");
+ sb.append(" inlined: ").append(toIndentedString(inlined)).append("\n");
+ sb.append(" uri: ").append(toIndentedString(uri)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints.java
new file mode 100644
index 0000000..98c624e
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints.java
@@ -0,0 +1,415 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints
+ */
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints {
+ public static final String SERIALIZED_NAME_ANNOTATION = "annotation";
+ @SerializedName(SERIALIZED_NAME_ANNOTATION)
+ private Map annotation = null;
+
+ public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes";
+ @SerializedName(SERIALIZED_NAME_ATTRIBUTES)
+ private Object attributes;
+
+ /**
+ * Describes how the endpoint should be exposed on the network. - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. - `internal` means that the endpoint will be exposed internally outside of the main devworkspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. - `none` means that the endpoint will not be exposed and will only be accessible inside the main devworkspace POD, on a local address. Default value is `public`
+ */
+ @JsonAdapter(ExposureEnum.Adapter.class)
+ public enum ExposureEnum {
+ PUBLIC("public"),
+
+ INTERNAL("internal"),
+
+ NONE("none");
+
+ private String value;
+
+ ExposureEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static ExposureEnum fromValue(String value) {
+ for (ExposureEnum b : ExposureEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ public static class Adapter extends TypeAdapter {
+ @Override
+ public void write(final JsonWriter jsonWriter, final ExposureEnum enumeration) throws IOException {
+ jsonWriter.value(enumeration.getValue());
+ }
+
+ @Override
+ public ExposureEnum read(final JsonReader jsonReader) throws IOException {
+ String value = jsonReader.nextString();
+ return ExposureEnum.fromValue(value);
+ }
+ }
+ }
+
+ public static final String SERIALIZED_NAME_EXPOSURE = "exposure";
+ @SerializedName(SERIALIZED_NAME_EXPOSURE)
+ private ExposureEnum exposure = ExposureEnum.PUBLIC;
+
+ public static final String SERIALIZED_NAME_NAME = "name";
+ @SerializedName(SERIALIZED_NAME_NAME)
+ private String name;
+
+ public static final String SERIALIZED_NAME_PATH = "path";
+ @SerializedName(SERIALIZED_NAME_PATH)
+ private String path;
+
+ /**
+ * Describes the application and transport protocols of the traffic that will go through this endpoint. - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. - `https`: Endpoint will have `https` traffic, typically on a TCP connection. - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. Default value is `http`
+ */
+ @JsonAdapter(ProtocolEnum.Adapter.class)
+ public enum ProtocolEnum {
+ HTTP("http"),
+
+ HTTPS("https"),
+
+ WS("ws"),
+
+ WSS("wss"),
+
+ TCP("tcp"),
+
+ UDP("udp");
+
+ private String value;
+
+ ProtocolEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static ProtocolEnum fromValue(String value) {
+ for (ProtocolEnum b : ProtocolEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ public static class Adapter extends TypeAdapter {
+ @Override
+ public void write(final JsonWriter jsonWriter, final ProtocolEnum enumeration) throws IOException {
+ jsonWriter.value(enumeration.getValue());
+ }
+
+ @Override
+ public ProtocolEnum read(final JsonReader jsonReader) throws IOException {
+ String value = jsonReader.nextString();
+ return ProtocolEnum.fromValue(value);
+ }
+ }
+ }
+
+ public static final String SERIALIZED_NAME_PROTOCOL = "protocol";
+ @SerializedName(SERIALIZED_NAME_PROTOCOL)
+ private ProtocolEnum protocol = ProtocolEnum.HTTP;
+
+ public static final String SERIALIZED_NAME_SECURE = "secure";
+ @SerializedName(SERIALIZED_NAME_SECURE)
+ private Boolean secure;
+
+ public static final String SERIALIZED_NAME_TARGET_PORT = "targetPort";
+ @SerializedName(SERIALIZED_NAME_TARGET_PORT)
+ private Integer targetPort;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints annotation(Map annotation) {
+
+ this.annotation = annotation;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints putAnnotationItem(String key, String annotationItem) {
+ if (this.annotation == null) {
+ this.annotation = new HashMap<>();
+ }
+ this.annotation.put(key, annotationItem);
+ return this;
+ }
+
+ /**
+ * Annotations to be added to Kubernetes Ingress or Openshift Route
+ * @return annotation
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Annotations to be added to Kubernetes Ingress or Openshift Route")
+
+ public Map getAnnotation() {
+ return annotation;
+ }
+
+
+ public void setAnnotation(Map annotation) {
+ this.annotation = annotation;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints attributes(Object attributes) {
+
+ this.attributes = attributes;
+ return this;
+ }
+
+ /**
+ * Map of implementation-dependant string-based free-form attributes. Examples of Che-specific attributes: - cookiesAuthEnabled: \"true\" / \"false\", - type: \"terminal\" / \"ide\" / \"ide-dev\",
+ * @return attributes
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Map of implementation-dependant string-based free-form attributes. Examples of Che-specific attributes: - cookiesAuthEnabled: \"true\" / \"false\", - type: \"terminal\" / \"ide\" / \"ide-dev\",")
+
+ public Object getAttributes() {
+ return attributes;
+ }
+
+
+ public void setAttributes(Object attributes) {
+ this.attributes = attributes;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints exposure(ExposureEnum exposure) {
+
+ this.exposure = exposure;
+ return this;
+ }
+
+ /**
+ * Describes how the endpoint should be exposed on the network. - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. - `internal` means that the endpoint will be exposed internally outside of the main devworkspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. - `none` means that the endpoint will not be exposed and will only be accessible inside the main devworkspace POD, on a local address. Default value is `public`
+ * @return exposure
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Describes how the endpoint should be exposed on the network. - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. - `internal` means that the endpoint will be exposed internally outside of the main devworkspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. - `none` means that the endpoint will not be exposed and will only be accessible inside the main devworkspace POD, on a local address. Default value is `public`")
+
+ public ExposureEnum getExposure() {
+ return exposure;
+ }
+
+
+ public void setExposure(ExposureEnum exposure) {
+ this.exposure = exposure;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints name(String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get name
+ * @return name
+ **/
+ @ApiModelProperty(required = true, value = "")
+
+ public String getName() {
+ return name;
+ }
+
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints path(String path) {
+
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * Path of the endpoint URL
+ * @return path
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Path of the endpoint URL")
+
+ public String getPath() {
+ return path;
+ }
+
+
+ public void setPath(String path) {
+ this.path = path;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints protocol(ProtocolEnum protocol) {
+
+ this.protocol = protocol;
+ return this;
+ }
+
+ /**
+ * Describes the application and transport protocols of the traffic that will go through this endpoint. - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. - `https`: Endpoint will have `https` traffic, typically on a TCP connection. - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. Default value is `http`
+ * @return protocol
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Describes the application and transport protocols of the traffic that will go through this endpoint. - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. - `https`: Endpoint will have `https` traffic, typically on a TCP connection. - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. Default value is `http`")
+
+ public ProtocolEnum getProtocol() {
+ return protocol;
+ }
+
+
+ public void setProtocol(ProtocolEnum protocol) {
+ this.protocol = protocol;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints secure(Boolean secure) {
+
+ this.secure = secure;
+ return this;
+ }
+
+ /**
+ * Describes whether the endpoint should be secured and protected by some authentication process. This requires a protocol of `https` or `wss`.
+ * @return secure
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Describes whether the endpoint should be secured and protected by some authentication process. This requires a protocol of `https` or `wss`.")
+
+ public Boolean getSecure() {
+ return secure;
+ }
+
+
+ public void setSecure(Boolean secure) {
+ this.secure = secure;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints targetPort(Integer targetPort) {
+
+ this.targetPort = targetPort;
+ return this;
+ }
+
+ /**
+ * Port number to be used within the container component. The same port cannot be used by two different container components.
+ * @return targetPort
+ **/
+ @ApiModelProperty(required = true, value = "Port number to be used within the container component. The same port cannot be used by two different container components.")
+
+ public Integer getTargetPort() {
+ return targetPort;
+ }
+
+
+ public void setTargetPort(Integer targetPort) {
+ this.targetPort = targetPort;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints) o;
+ return Objects.equals(this.annotation, v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints.annotation) &&
+ Objects.equals(this.attributes, v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints.attributes) &&
+ Objects.equals(this.exposure, v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints.exposure) &&
+ Objects.equals(this.name, v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints.name) &&
+ Objects.equals(this.path, v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints.path) &&
+ Objects.equals(this.protocol, v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints.protocol) &&
+ Objects.equals(this.secure, v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints.secure) &&
+ Objects.equals(this.targetPort, v1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints.targetPort);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(annotation, attributes, exposure, name, path, protocol, secure, targetPort);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsKubernetesEndpoints {\n");
+ sb.append(" annotation: ").append(toIndentedString(annotation)).append("\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" exposure: ").append(toIndentedString(exposure)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" path: ").append(toIndentedString(path)).append("\n");
+ sb.append(" protocol: ").append(toIndentedString(protocol)).append("\n");
+ sb.append(" secure: ").append(toIndentedString(secure)).append("\n");
+ sb.append(" targetPort: ").append(toIndentedString(targetPort)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift.java
new file mode 100644
index 0000000..92414a6
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift.java
@@ -0,0 +1,198 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Allows importing into the devworkspace the OpenShift resources defined in a given manifest. For example this allows reusing the OpenShift definitions used to deploy some runtime components in production.
+ */
+@ApiModel(description = "Allows importing into the devworkspace the OpenShift resources defined in a given manifest. For example this allows reusing the OpenShift definitions used to deploy some runtime components in production.")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift {
+ public static final String SERIALIZED_NAME_DEPLOY_BY_DEFAULT = "deployByDefault";
+ @SerializedName(SERIALIZED_NAME_DEPLOY_BY_DEFAULT)
+ private Boolean deployByDefault;
+
+ public static final String SERIALIZED_NAME_ENDPOINTS = "endpoints";
+ @SerializedName(SERIALIZED_NAME_ENDPOINTS)
+ private List endpoints = null;
+
+ public static final String SERIALIZED_NAME_INLINED = "inlined";
+ @SerializedName(SERIALIZED_NAME_INLINED)
+ private String inlined;
+
+ public static final String SERIALIZED_NAME_URI = "uri";
+ @SerializedName(SERIALIZED_NAME_URI)
+ private String uri;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift deployByDefault(Boolean deployByDefault) {
+
+ this.deployByDefault = deployByDefault;
+ return this;
+ }
+
+ /**
+ * Defines if the component should be deployed during startup. Default value is `false`
+ * @return deployByDefault
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Defines if the component should be deployed during startup. Default value is `false`")
+
+ public Boolean getDeployByDefault() {
+ return deployByDefault;
+ }
+
+
+ public void setDeployByDefault(Boolean deployByDefault) {
+ this.deployByDefault = deployByDefault;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift endpoints(List endpoints) {
+
+ this.endpoints = endpoints;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift addEndpointsItem(V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints endpointsItem) {
+ if (this.endpoints == null) {
+ this.endpoints = new ArrayList<>();
+ }
+ this.endpoints.add(endpointsItem);
+ return this;
+ }
+
+ /**
+ * Get endpoints
+ * @return endpoints
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public List getEndpoints() {
+ return endpoints;
+ }
+
+
+ public void setEndpoints(List endpoints) {
+ this.endpoints = endpoints;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift inlined(String inlined) {
+
+ this.inlined = inlined;
+ return this;
+ }
+
+ /**
+ * Inlined manifest
+ * @return inlined
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Inlined manifest")
+
+ public String getInlined() {
+ return inlined;
+ }
+
+
+ public void setInlined(String inlined) {
+ this.inlined = inlined;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift uri(String uri) {
+
+ this.uri = uri;
+ return this;
+ }
+
+ /**
+ * Location in a file fetched from a uri.
+ * @return uri
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Location in a file fetched from a uri.")
+
+ public String getUri() {
+ return uri;
+ }
+
+
+ public void setUri(String uri) {
+ this.uri = uri;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift) o;
+ return Objects.equals(this.deployByDefault, v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift.deployByDefault) &&
+ Objects.equals(this.endpoints, v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift.endpoints) &&
+ Objects.equals(this.inlined, v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift.inlined) &&
+ Objects.equals(this.uri, v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift.uri);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(deployByDefault, endpoints, inlined, uri);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshift {\n");
+ sb.append(" deployByDefault: ").append(toIndentedString(deployByDefault)).append("\n");
+ sb.append(" endpoints: ").append(toIndentedString(endpoints)).append("\n");
+ sb.append(" inlined: ").append(toIndentedString(inlined)).append("\n");
+ sb.append(" uri: ").append(toIndentedString(uri)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints.java
new file mode 100644
index 0000000..c39f980
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints.java
@@ -0,0 +1,415 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints
+ */
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints {
+ public static final String SERIALIZED_NAME_ANNOTATION = "annotation";
+ @SerializedName(SERIALIZED_NAME_ANNOTATION)
+ private Map annotation = null;
+
+ public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes";
+ @SerializedName(SERIALIZED_NAME_ATTRIBUTES)
+ private Object attributes;
+
+ /**
+ * Describes how the endpoint should be exposed on the network. - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. - `internal` means that the endpoint will be exposed internally outside of the main devworkspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. - `none` means that the endpoint will not be exposed and will only be accessible inside the main devworkspace POD, on a local address. Default value is `public`
+ */
+ @JsonAdapter(ExposureEnum.Adapter.class)
+ public enum ExposureEnum {
+ PUBLIC("public"),
+
+ INTERNAL("internal"),
+
+ NONE("none");
+
+ private String value;
+
+ ExposureEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static ExposureEnum fromValue(String value) {
+ for (ExposureEnum b : ExposureEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ public static class Adapter extends TypeAdapter {
+ @Override
+ public void write(final JsonWriter jsonWriter, final ExposureEnum enumeration) throws IOException {
+ jsonWriter.value(enumeration.getValue());
+ }
+
+ @Override
+ public ExposureEnum read(final JsonReader jsonReader) throws IOException {
+ String value = jsonReader.nextString();
+ return ExposureEnum.fromValue(value);
+ }
+ }
+ }
+
+ public static final String SERIALIZED_NAME_EXPOSURE = "exposure";
+ @SerializedName(SERIALIZED_NAME_EXPOSURE)
+ private ExposureEnum exposure = ExposureEnum.PUBLIC;
+
+ public static final String SERIALIZED_NAME_NAME = "name";
+ @SerializedName(SERIALIZED_NAME_NAME)
+ private String name;
+
+ public static final String SERIALIZED_NAME_PATH = "path";
+ @SerializedName(SERIALIZED_NAME_PATH)
+ private String path;
+
+ /**
+ * Describes the application and transport protocols of the traffic that will go through this endpoint. - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. - `https`: Endpoint will have `https` traffic, typically on a TCP connection. - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. Default value is `http`
+ */
+ @JsonAdapter(ProtocolEnum.Adapter.class)
+ public enum ProtocolEnum {
+ HTTP("http"),
+
+ HTTPS("https"),
+
+ WS("ws"),
+
+ WSS("wss"),
+
+ TCP("tcp"),
+
+ UDP("udp");
+
+ private String value;
+
+ ProtocolEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static ProtocolEnum fromValue(String value) {
+ for (ProtocolEnum b : ProtocolEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ public static class Adapter extends TypeAdapter {
+ @Override
+ public void write(final JsonWriter jsonWriter, final ProtocolEnum enumeration) throws IOException {
+ jsonWriter.value(enumeration.getValue());
+ }
+
+ @Override
+ public ProtocolEnum read(final JsonReader jsonReader) throws IOException {
+ String value = jsonReader.nextString();
+ return ProtocolEnum.fromValue(value);
+ }
+ }
+ }
+
+ public static final String SERIALIZED_NAME_PROTOCOL = "protocol";
+ @SerializedName(SERIALIZED_NAME_PROTOCOL)
+ private ProtocolEnum protocol = ProtocolEnum.HTTP;
+
+ public static final String SERIALIZED_NAME_SECURE = "secure";
+ @SerializedName(SERIALIZED_NAME_SECURE)
+ private Boolean secure;
+
+ public static final String SERIALIZED_NAME_TARGET_PORT = "targetPort";
+ @SerializedName(SERIALIZED_NAME_TARGET_PORT)
+ private Integer targetPort;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints annotation(Map annotation) {
+
+ this.annotation = annotation;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints putAnnotationItem(String key, String annotationItem) {
+ if (this.annotation == null) {
+ this.annotation = new HashMap<>();
+ }
+ this.annotation.put(key, annotationItem);
+ return this;
+ }
+
+ /**
+ * Annotations to be added to Kubernetes Ingress or Openshift Route
+ * @return annotation
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Annotations to be added to Kubernetes Ingress or Openshift Route")
+
+ public Map getAnnotation() {
+ return annotation;
+ }
+
+
+ public void setAnnotation(Map annotation) {
+ this.annotation = annotation;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints attributes(Object attributes) {
+
+ this.attributes = attributes;
+ return this;
+ }
+
+ /**
+ * Map of implementation-dependant string-based free-form attributes. Examples of Che-specific attributes: - cookiesAuthEnabled: \"true\" / \"false\", - type: \"terminal\" / \"ide\" / \"ide-dev\",
+ * @return attributes
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Map of implementation-dependant string-based free-form attributes. Examples of Che-specific attributes: - cookiesAuthEnabled: \"true\" / \"false\", - type: \"terminal\" / \"ide\" / \"ide-dev\",")
+
+ public Object getAttributes() {
+ return attributes;
+ }
+
+
+ public void setAttributes(Object attributes) {
+ this.attributes = attributes;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints exposure(ExposureEnum exposure) {
+
+ this.exposure = exposure;
+ return this;
+ }
+
+ /**
+ * Describes how the endpoint should be exposed on the network. - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. - `internal` means that the endpoint will be exposed internally outside of the main devworkspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. - `none` means that the endpoint will not be exposed and will only be accessible inside the main devworkspace POD, on a local address. Default value is `public`
+ * @return exposure
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Describes how the endpoint should be exposed on the network. - `public` means that the endpoint will be exposed on the public network, typically through a K8S ingress or an OpenShift route. - `internal` means that the endpoint will be exposed internally outside of the main devworkspace POD, typically by K8S services, to be consumed by other elements running on the same cloud internal network. - `none` means that the endpoint will not be exposed and will only be accessible inside the main devworkspace POD, on a local address. Default value is `public`")
+
+ public ExposureEnum getExposure() {
+ return exposure;
+ }
+
+
+ public void setExposure(ExposureEnum exposure) {
+ this.exposure = exposure;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints name(String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get name
+ * @return name
+ **/
+ @ApiModelProperty(required = true, value = "")
+
+ public String getName() {
+ return name;
+ }
+
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints path(String path) {
+
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * Path of the endpoint URL
+ * @return path
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Path of the endpoint URL")
+
+ public String getPath() {
+ return path;
+ }
+
+
+ public void setPath(String path) {
+ this.path = path;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints protocol(ProtocolEnum protocol) {
+
+ this.protocol = protocol;
+ return this;
+ }
+
+ /**
+ * Describes the application and transport protocols of the traffic that will go through this endpoint. - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. - `https`: Endpoint will have `https` traffic, typically on a TCP connection. - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. Default value is `http`
+ * @return protocol
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Describes the application and transport protocols of the traffic that will go through this endpoint. - `http`: Endpoint will have `http` traffic, typically on a TCP connection. It will be automaticaly promoted to `https` when the `secure` field is set to `true`. - `https`: Endpoint will have `https` traffic, typically on a TCP connection. - `ws`: Endpoint will have `ws` traffic, typically on a TCP connection. It will be automaticaly promoted to `wss` when the `secure` field is set to `true`. - `wss`: Endpoint will have `wss` traffic, typically on a TCP connection. - `tcp`: Endpoint will have traffic on a TCP connection, without specifying an application protocol. - `udp`: Endpoint will have traffic on an UDP connection, without specifying an application protocol. Default value is `http`")
+
+ public ProtocolEnum getProtocol() {
+ return protocol;
+ }
+
+
+ public void setProtocol(ProtocolEnum protocol) {
+ this.protocol = protocol;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints secure(Boolean secure) {
+
+ this.secure = secure;
+ return this;
+ }
+
+ /**
+ * Describes whether the endpoint should be secured and protected by some authentication process. This requires a protocol of `https` or `wss`.
+ * @return secure
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Describes whether the endpoint should be secured and protected by some authentication process. This requires a protocol of `https` or `wss`.")
+
+ public Boolean getSecure() {
+ return secure;
+ }
+
+
+ public void setSecure(Boolean secure) {
+ this.secure = secure;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints targetPort(Integer targetPort) {
+
+ this.targetPort = targetPort;
+ return this;
+ }
+
+ /**
+ * Port number to be used within the container component. The same port cannot be used by two different container components.
+ * @return targetPort
+ **/
+ @ApiModelProperty(required = true, value = "Port number to be used within the container component. The same port cannot be used by two different container components.")
+
+ public Integer getTargetPort() {
+ return targetPort;
+ }
+
+
+ public void setTargetPort(Integer targetPort) {
+ this.targetPort = targetPort;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints) o;
+ return Objects.equals(this.annotation, v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints.annotation) &&
+ Objects.equals(this.attributes, v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints.attributes) &&
+ Objects.equals(this.exposure, v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints.exposure) &&
+ Objects.equals(this.name, v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints.name) &&
+ Objects.equals(this.path, v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints.path) &&
+ Objects.equals(this.protocol, v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints.protocol) &&
+ Objects.equals(this.secure, v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints.secure) &&
+ Objects.equals(this.targetPort, v1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints.targetPort);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(annotation, attributes, exposure, name, path, protocol, secure, targetPort);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsOpenshiftEndpoints {\n");
+ sb.append(" annotation: ").append(toIndentedString(annotation)).append("\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" exposure: ").append(toIndentedString(exposure)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" path: ").append(toIndentedString(path)).append("\n");
+ sb.append(" protocol: ").append(toIndentedString(protocol)).append("\n");
+ sb.append(" secure: ").append(toIndentedString(secure)).append("\n");
+ sb.append(" targetPort: ").append(toIndentedString(targetPort)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin.java
new file mode 100644
index 0000000..1406bd8
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin.java
@@ -0,0 +1,295 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginComponents;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginKubernetes;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Allows importing a plugin. Plugins are mainly imported devfiles that contribute components, commands and events as a consistent single unit. They are defined in either YAML files following the devfile syntax, or as `DevWorkspaceTemplate` Kubernetes Custom Resources
+ */
+@ApiModel(description = "Allows importing a plugin. Plugins are mainly imported devfiles that contribute components, commands and events as a consistent single unit. They are defined in either YAML files following the devfile syntax, or as `DevWorkspaceTemplate` Kubernetes Custom Resources")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin {
+ public static final String SERIALIZED_NAME_COMMANDS = "commands";
+ @SerializedName(SERIALIZED_NAME_COMMANDS)
+ private List commands = null;
+
+ public static final String SERIALIZED_NAME_COMPONENTS = "components";
+ @SerializedName(SERIALIZED_NAME_COMPONENTS)
+ private List components = null;
+
+ public static final String SERIALIZED_NAME_ID = "id";
+ @SerializedName(SERIALIZED_NAME_ID)
+ private String id;
+
+ public static final String SERIALIZED_NAME_KUBERNETES = "kubernetes";
+ @SerializedName(SERIALIZED_NAME_KUBERNETES)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginKubernetes kubernetes;
+
+ public static final String SERIALIZED_NAME_REGISTRY_URL = "registryUrl";
+ @SerializedName(SERIALIZED_NAME_REGISTRY_URL)
+ private String registryUrl;
+
+ public static final String SERIALIZED_NAME_URI = "uri";
+ @SerializedName(SERIALIZED_NAME_URI)
+ private String uri;
+
+ public static final String SERIALIZED_NAME_VERSION = "version";
+ @SerializedName(SERIALIZED_NAME_VERSION)
+ private String version;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin commands(List commands) {
+
+ this.commands = commands;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin addCommandsItem(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands commandsItem) {
+ if (this.commands == null) {
+ this.commands = new ArrayList<>();
+ }
+ this.commands.add(commandsItem);
+ return this;
+ }
+
+ /**
+ * Overrides of commands encapsulated in a parent devfile or a plugin. Overriding is done according to K8S strategic merge patch standard rules.
+ * @return commands
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Overrides of commands encapsulated in a parent devfile or a plugin. Overriding is done according to K8S strategic merge patch standard rules.")
+
+ public List getCommands() {
+ return commands;
+ }
+
+
+ public void setCommands(List commands) {
+ this.commands = commands;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin components(List components) {
+
+ this.components = components;
+ return this;
+ }
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin addComponentsItem(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginComponents componentsItem) {
+ if (this.components == null) {
+ this.components = new ArrayList<>();
+ }
+ this.components.add(componentsItem);
+ return this;
+ }
+
+ /**
+ * Overrides of components encapsulated in a parent devfile or a plugin. Overriding is done according to K8S strategic merge patch standard rules.
+ * @return components
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Overrides of components encapsulated in a parent devfile or a plugin. Overriding is done according to K8S strategic merge patch standard rules.")
+
+ public List getComponents() {
+ return components;
+ }
+
+
+ public void setComponents(List components) {
+ this.components = components;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin id(String id) {
+
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Id in a registry that contains a Devfile yaml file
+ * @return id
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Id in a registry that contains a Devfile yaml file")
+
+ public String getId() {
+ return id;
+ }
+
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin kubernetes(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginKubernetes kubernetes) {
+
+ this.kubernetes = kubernetes;
+ return this;
+ }
+
+ /**
+ * Get kubernetes
+ * @return kubernetes
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginKubernetes getKubernetes() {
+ return kubernetes;
+ }
+
+
+ public void setKubernetes(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginKubernetes kubernetes) {
+ this.kubernetes = kubernetes;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin registryUrl(String registryUrl) {
+
+ this.registryUrl = registryUrl;
+ return this;
+ }
+
+ /**
+ * Registry URL to pull the parent devfile from when using id in the parent reference. To ensure the parent devfile gets resolved consistently in different environments, it is recommended to always specify the `registryUrl` when `id` is used.
+ * @return registryUrl
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Registry URL to pull the parent devfile from when using id in the parent reference. To ensure the parent devfile gets resolved consistently in different environments, it is recommended to always specify the `registryUrl` when `id` is used.")
+
+ public String getRegistryUrl() {
+ return registryUrl;
+ }
+
+
+ public void setRegistryUrl(String registryUrl) {
+ this.registryUrl = registryUrl;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin uri(String uri) {
+
+ this.uri = uri;
+ return this;
+ }
+
+ /**
+ * URI Reference of a parent devfile YAML file. It can be a full URL or a relative URI with the current devfile as the base URI.
+ * @return uri
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "URI Reference of a parent devfile YAML file. It can be a full URL or a relative URI with the current devfile as the base URI.")
+
+ public String getUri() {
+ return uri;
+ }
+
+
+ public void setUri(String uri) {
+ this.uri = uri;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin version(String version) {
+
+ this.version = version;
+ return this;
+ }
+
+ /**
+ * Specific stack/sample version to pull the parent devfile from, when using id in the parent reference. To specify `version`, `id` must be defined and used as the import reference source. `version` can be either a specific stack version, or `latest`. If no `version` specified, default version will be used.
+ * @return version
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Specific stack/sample version to pull the parent devfile from, when using id in the parent reference. To specify `version`, `id` must be defined and used as the import reference source. `version` can be either a specific stack version, or `latest`. If no `version` specified, default version will be used.")
+
+ public String getVersion() {
+ return version;
+ }
+
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin v1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin) o;
+ return Objects.equals(this.commands, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin.commands) &&
+ Objects.equals(this.components, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin.components) &&
+ Objects.equals(this.id, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin.id) &&
+ Objects.equals(this.kubernetes, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin.kubernetes) &&
+ Objects.equals(this.registryUrl, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin.registryUrl) &&
+ Objects.equals(this.uri, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin.uri) &&
+ Objects.equals(this.version, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin.version);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(commands, components, id, kubernetes, registryUrl, uri, version);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsPlugin {\n");
+ sb.append(" commands: ").append(toIndentedString(commands)).append("\n");
+ sb.append(" components: ").append(toIndentedString(components)).append("\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" kubernetes: ").append(toIndentedString(kubernetes)).append("\n");
+ sb.append(" registryUrl: ").append(toIndentedString(registryUrl)).append("\n");
+ sb.append(" uri: ").append(toIndentedString(uri)).append("\n");
+ sb.append(" version: ").append(toIndentedString(version)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands.java
new file mode 100644
index 0000000..27b9d7a
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands.java
@@ -0,0 +1,217 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsComposite;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsExec;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands
+ */
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands {
+ public static final String SERIALIZED_NAME_APPLY = "apply";
+ @SerializedName(SERIALIZED_NAME_APPLY)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply apply;
+
+ public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes";
+ @SerializedName(SERIALIZED_NAME_ATTRIBUTES)
+ private Object attributes;
+
+ public static final String SERIALIZED_NAME_COMPOSITE = "composite";
+ @SerializedName(SERIALIZED_NAME_COMPOSITE)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsComposite composite;
+
+ public static final String SERIALIZED_NAME_EXEC = "exec";
+ @SerializedName(SERIALIZED_NAME_EXEC)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsExec exec;
+
+ public static final String SERIALIZED_NAME_ID = "id";
+ @SerializedName(SERIALIZED_NAME_ID)
+ private String id;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands apply(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply apply) {
+
+ this.apply = apply;
+ return this;
+ }
+
+ /**
+ * Get apply
+ * @return apply
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply getApply() {
+ return apply;
+ }
+
+
+ public void setApply(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply apply) {
+ this.apply = apply;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands attributes(Object attributes) {
+
+ this.attributes = attributes;
+ return this;
+ }
+
+ /**
+ * Map of implementation-dependant free-form YAML attributes.
+ * @return attributes
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Map of implementation-dependant free-form YAML attributes.")
+
+ public Object getAttributes() {
+ return attributes;
+ }
+
+
+ public void setAttributes(Object attributes) {
+ this.attributes = attributes;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands composite(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsComposite composite) {
+
+ this.composite = composite;
+ return this;
+ }
+
+ /**
+ * Get composite
+ * @return composite
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsComposite getComposite() {
+ return composite;
+ }
+
+
+ public void setComposite(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsComposite composite) {
+ this.composite = composite;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands exec(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsExec exec) {
+
+ this.exec = exec;
+ return this;
+ }
+
+ /**
+ * Get exec
+ * @return exec
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsExec getExec() {
+ return exec;
+ }
+
+
+ public void setExec(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsExec exec) {
+ this.exec = exec;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands id(String id) {
+
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.
+ * @return id
+ **/
+ @ApiModelProperty(required = true, value = "Mandatory identifier that allows referencing this command in composite commands, from a parent, or in events.")
+
+ public String getId() {
+ return id;
+ }
+
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands v1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands) o;
+ return Objects.equals(this.apply, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands.apply) &&
+ Objects.equals(this.attributes, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands.attributes) &&
+ Objects.equals(this.composite, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands.composite) &&
+ Objects.equals(this.exec, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands.exec) &&
+ Objects.equals(this.id, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands.id);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(apply, attributes, composite, exec, id);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommands {\n");
+ sb.append(" apply: ").append(toIndentedString(apply)).append("\n");
+ sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n");
+ sb.append(" composite: ").append(toIndentedString(composite)).append("\n");
+ sb.append(" exec: ").append(toIndentedString(exec)).append("\n");
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply.java
new file mode 100644
index 0000000..7523178
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply.java
@@ -0,0 +1,159 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.github.che_incubator.devfile.kubernetes.client.models.V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApplyGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Command that consists in applying a given component definition, typically bound to a devworkspace event. For example, when an `apply` command is bound to a `preStart` event, and references a `container` component, it will start the container as a K8S initContainer in the devworkspace POD, unless the component has its `dedicatedPod` field set to `true`. When no `apply` command exist for a given component, it is assumed the component will be applied at devworkspace start by default, unless `deployByDefault` for that component is set to false.
+ */
+@ApiModel(description = "Command that consists in applying a given component definition, typically bound to a devworkspace event. For example, when an `apply` command is bound to a `preStart` event, and references a `container` component, it will start the container as a K8S initContainer in the devworkspace POD, unless the component has its `dedicatedPod` field set to `true`. When no `apply` command exist for a given component, it is assumed the component will be applied at devworkspace start by default, unless `deployByDefault` for that component is set to false.")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply {
+ public static final String SERIALIZED_NAME_COMPONENT = "component";
+ @SerializedName(SERIALIZED_NAME_COMPONENT)
+ private String component;
+
+ public static final String SERIALIZED_NAME_GROUP = "group";
+ @SerializedName(SERIALIZED_NAME_GROUP)
+ private V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApplyGroup group;
+
+ public static final String SERIALIZED_NAME_LABEL = "label";
+ @SerializedName(SERIALIZED_NAME_LABEL)
+ private String label;
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply component(String component) {
+
+ this.component = component;
+ return this;
+ }
+
+ /**
+ * Describes component that will be applied
+ * @return component
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Describes component that will be applied")
+
+ public String getComponent() {
+ return component;
+ }
+
+
+ public void setComponent(String component) {
+ this.component = component;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply group(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApplyGroup group) {
+
+ this.group = group;
+ return this;
+ }
+
+ /**
+ * Get group
+ * @return group
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "")
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApplyGroup getGroup() {
+ return group;
+ }
+
+
+ public void setGroup(V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApplyGroup group) {
+ this.group = group;
+ }
+
+
+ public V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply label(String label) {
+
+ this.label = label;
+ return this;
+ }
+
+ /**
+ * Optional label that provides a label for this command to be used in Editor UI menus for example
+ * @return label
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "Optional label that provides a label for this command to be used in Editor UI menus for example")
+
+ public String getLabel() {
+ return label;
+ }
+
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply v1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply = (V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply) o;
+ return Objects.equals(this.component, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply.component) &&
+ Objects.equals(this.group, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply.group) &&
+ Objects.equals(this.label, v1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply.label);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(component, group, label);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApply {\n");
+ sb.append(" component: ").append(toIndentedString(component)).append("\n");
+ sb.append(" group: ").append(toIndentedString(group)).append("\n");
+ sb.append(" label: ").append(toIndentedString(label)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApplyGroup.java b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApplyGroup.java
new file mode 100644
index 0000000..b8c68ed
--- /dev/null
+++ b/src/main/java/io/github/che_incubator/devfile/kubernetes/client/models/V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApplyGroup.java
@@ -0,0 +1,182 @@
+/*
+ * Kubernetes
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package io.github.che_incubator.devfile.kubernetes.client.models;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * Defines the group this command is part of
+ */
+@ApiModel(description = "Defines the group this command is part of")
+
+public class V1alpha2DevWorkspaceSpecTemplateComponentsItemsPluginCommandsItemsApplyGroup {
+ public static final String SERIALIZED_NAME_IS_DEFAULT = "isDefault";
+ @SerializedName(SERIALIZED_NAME_IS_DEFAULT)
+ private Boolean isDefault;
+
+ /**
+ * Kind of group the command is part of
+ */
+ @JsonAdapter(KindEnum.Adapter.class)
+ public enum KindEnum {
+ BUILD("build"),
+
+ RUN("run"),
+
+ TEST("test"),
+
+ DEBUG("debug"),
+
+ DEPLOY("deploy");
+
+ private String value;
+
+ KindEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static KindEnum fromValue(String value) {
+ for (KindEnum b : KindEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ public static class Adapter extends TypeAdapter