com.google.api.services.composer.v1.model.SoftwareConfig Maven / Gradle / Ivy
The newest version!
/*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
/*
* This code was generated by https://github.com/googleapis/google-api-java-client-services/
* Modify at your own risk.
*/
package com.google.api.services.composer.v1.model;
/**
* Specifies the selection and configuration of software inside the environment.
*
* This is the Java data model class that specifies how to parse/serialize into the JSON that is
* transmitted over HTTP when working with the Cloud Composer API. For a detailed explanation see:
* https://developers.google.com/api-client-library/java/google-http-java-client/json
*
*
* @author Google, Inc.
*/
@SuppressWarnings("javadoc")
public final class SoftwareConfig extends com.google.api.client.json.GenericJson {
/**
* Optional. Apache Airflow configuration properties to override. Property keys contain the
* section and property names, separated by a hyphen, for example "core-
* dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square
* brackets ("["), or closing square brackets ("]"). The property name must not be empty and must
* not contain an equals sign ("=") or semicolon (";"). Section and property names must not
* contain a period ("."). Apache Airflow configuration property names must be written in
* [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can contain any
* character, and can be written in any lower/upper case format. Certain Apache Airflow
* configuration property values are [blocked](/composer/docs/concepts/airflow-configurations),
* and cannot be overridden.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.util.Map airflowConfigOverrides;
/**
* Optional. The configuration for Cloud Data Lineage integration.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private CloudDataLineageIntegration cloudDataLineageIntegration;
/**
* Optional. Additional environment variables to provide to the Apache Airflow scheduler, worker,
* and webserver processes. Environment variable names must match the regular expression `a-zA-
* Z_*`. They cannot specify Apache Airflow software configuration overrides (they cannot match
* the regular expression `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the
* following reserved names: * `AIRFLOW_HOME` * `C_FORCE_ROOT` * `CONTAINER_NAME` * `DAGS_FOLDER`
* * `GCP_PROJECT` * `GCS_BUCKET` * `GKE_CLUSTER_NAME` * `SQL_DATABASE` * `SQL_INSTANCE` *
* `SQL_PASSWORD` * `SQL_PROJECT` * `SQL_REGION` * `SQL_USER`
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.util.Map envVariables;
/**
* The version of the software running in the environment. This encapsulates both the version of
* Cloud Composer functionality and the version of Apache Airflow. It must match the regular
* expression `composer-([0-9]+(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-([0-9]+(\.[0
* -9]+(\.[0-9]+)?)?)`. When used as input, the server also checks if the provided version is
* supported and denies the request for an unsupported version. The Cloud Composer portion of the
* image version is a full [semantic version](https://semver.org), or an alias in the form of
* major version number or `latest`. When an alias is provided, the server replaces it with the
* current Cloud Composer version that satisfies the alias. The Apache Airflow portion of the
* image version is a full semantic version that points to one of the supported Apache Airflow
* versions, or an alias in the form of only major or major.minor versions specified. When an
* alias is provided, the server replaces it with the latest Apache Airflow version that satisfies
* the alias and is supported in the given Cloud Composer version. In all cases, the resolved
* image version is stored in the same field. See also [version
* list](/composer/docs/concepts/versioning/composer-versions) and [versioning
* overview](/composer/docs/concepts/versioning/composer-versioning-overview).
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String imageVersion;
/**
* Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys
* refer to the lowercase package name such as "numpy" and values are the lowercase extras and
* version specifier such as "==1.12.0", "[devel,gcp_api]", or "[devel]>=1.8.2, <1.9.2". To
* specify a package without pinning it to a version specifier, use the empty string as the value.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.util.Map pypiPackages;
/**
* Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and
* webserver processes. Can be set to '2' or '3'. If not specified, the default is '3'. Cannot be
* updated. This field is only supported for Cloud Composer environments in versions
* composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String pythonVersion;
/**
* Optional. The number of schedulers for Airflow. This field is supported for Cloud Composer
* environments in versions composer-1.*.*-airflow-2.*.*.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.Integer schedulerCount;
/**
* Optional. Whether or not the web server uses custom plugins. If unspecified, the field defaults
* to `PLUGINS_ENABLED`. This field is supported for Cloud Composer environments in versions
* composer-3.*.*-airflow-*.*.* and newer.
* The value may be {@code null}.
*/
@com.google.api.client.util.Key
private java.lang.String webServerPluginsMode;
/**
* Optional. Apache Airflow configuration properties to override. Property keys contain the
* section and property names, separated by a hyphen, for example "core-
* dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square
* brackets ("["), or closing square brackets ("]"). The property name must not be empty and must
* not contain an equals sign ("=") or semicolon (";"). Section and property names must not
* contain a period ("."). Apache Airflow configuration property names must be written in
* [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can contain any
* character, and can be written in any lower/upper case format. Certain Apache Airflow
* configuration property values are [blocked](/composer/docs/concepts/airflow-configurations),
* and cannot be overridden.
* @return value or {@code null} for none
*/
public java.util.Map getAirflowConfigOverrides() {
return airflowConfigOverrides;
}
/**
* Optional. Apache Airflow configuration properties to override. Property keys contain the
* section and property names, separated by a hyphen, for example "core-
* dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square
* brackets ("["), or closing square brackets ("]"). The property name must not be empty and must
* not contain an equals sign ("=") or semicolon (";"). Section and property names must not
* contain a period ("."). Apache Airflow configuration property names must be written in
* [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can contain any
* character, and can be written in any lower/upper case format. Certain Apache Airflow
* configuration property values are [blocked](/composer/docs/concepts/airflow-configurations),
* and cannot be overridden.
* @param airflowConfigOverrides airflowConfigOverrides or {@code null} for none
*/
public SoftwareConfig setAirflowConfigOverrides(java.util.Map airflowConfigOverrides) {
this.airflowConfigOverrides = airflowConfigOverrides;
return this;
}
/**
* Optional. The configuration for Cloud Data Lineage integration.
* @return value or {@code null} for none
*/
public CloudDataLineageIntegration getCloudDataLineageIntegration() {
return cloudDataLineageIntegration;
}
/**
* Optional. The configuration for Cloud Data Lineage integration.
* @param cloudDataLineageIntegration cloudDataLineageIntegration or {@code null} for none
*/
public SoftwareConfig setCloudDataLineageIntegration(CloudDataLineageIntegration cloudDataLineageIntegration) {
this.cloudDataLineageIntegration = cloudDataLineageIntegration;
return this;
}
/**
* Optional. Additional environment variables to provide to the Apache Airflow scheduler, worker,
* and webserver processes. Environment variable names must match the regular expression `a-zA-
* Z_*`. They cannot specify Apache Airflow software configuration overrides (they cannot match
* the regular expression `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the
* following reserved names: * `AIRFLOW_HOME` * `C_FORCE_ROOT` * `CONTAINER_NAME` * `DAGS_FOLDER`
* * `GCP_PROJECT` * `GCS_BUCKET` * `GKE_CLUSTER_NAME` * `SQL_DATABASE` * `SQL_INSTANCE` *
* `SQL_PASSWORD` * `SQL_PROJECT` * `SQL_REGION` * `SQL_USER`
* @return value or {@code null} for none
*/
public java.util.Map getEnvVariables() {
return envVariables;
}
/**
* Optional. Additional environment variables to provide to the Apache Airflow scheduler, worker,
* and webserver processes. Environment variable names must match the regular expression `a-zA-
* Z_*`. They cannot specify Apache Airflow software configuration overrides (they cannot match
* the regular expression `AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the
* following reserved names: * `AIRFLOW_HOME` * `C_FORCE_ROOT` * `CONTAINER_NAME` * `DAGS_FOLDER`
* * `GCP_PROJECT` * `GCS_BUCKET` * `GKE_CLUSTER_NAME` * `SQL_DATABASE` * `SQL_INSTANCE` *
* `SQL_PASSWORD` * `SQL_PROJECT` * `SQL_REGION` * `SQL_USER`
* @param envVariables envVariables or {@code null} for none
*/
public SoftwareConfig setEnvVariables(java.util.Map envVariables) {
this.envVariables = envVariables;
return this;
}
/**
* The version of the software running in the environment. This encapsulates both the version of
* Cloud Composer functionality and the version of Apache Airflow. It must match the regular
* expression `composer-([0-9]+(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-([0-9]+(\.[0
* -9]+(\.[0-9]+)?)?)`. When used as input, the server also checks if the provided version is
* supported and denies the request for an unsupported version. The Cloud Composer portion of the
* image version is a full [semantic version](https://semver.org), or an alias in the form of
* major version number or `latest`. When an alias is provided, the server replaces it with the
* current Cloud Composer version that satisfies the alias. The Apache Airflow portion of the
* image version is a full semantic version that points to one of the supported Apache Airflow
* versions, or an alias in the form of only major or major.minor versions specified. When an
* alias is provided, the server replaces it with the latest Apache Airflow version that satisfies
* the alias and is supported in the given Cloud Composer version. In all cases, the resolved
* image version is stored in the same field. See also [version
* list](/composer/docs/concepts/versioning/composer-versions) and [versioning
* overview](/composer/docs/concepts/versioning/composer-versioning-overview).
* @return value or {@code null} for none
*/
public java.lang.String getImageVersion() {
return imageVersion;
}
/**
* The version of the software running in the environment. This encapsulates both the version of
* Cloud Composer functionality and the version of Apache Airflow. It must match the regular
* expression `composer-([0-9]+(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-([0-9]+(\.[0
* -9]+(\.[0-9]+)?)?)`. When used as input, the server also checks if the provided version is
* supported and denies the request for an unsupported version. The Cloud Composer portion of the
* image version is a full [semantic version](https://semver.org), or an alias in the form of
* major version number or `latest`. When an alias is provided, the server replaces it with the
* current Cloud Composer version that satisfies the alias. The Apache Airflow portion of the
* image version is a full semantic version that points to one of the supported Apache Airflow
* versions, or an alias in the form of only major or major.minor versions specified. When an
* alias is provided, the server replaces it with the latest Apache Airflow version that satisfies
* the alias and is supported in the given Cloud Composer version. In all cases, the resolved
* image version is stored in the same field. See also [version
* list](/composer/docs/concepts/versioning/composer-versions) and [versioning
* overview](/composer/docs/concepts/versioning/composer-versioning-overview).
* @param imageVersion imageVersion or {@code null} for none
*/
public SoftwareConfig setImageVersion(java.lang.String imageVersion) {
this.imageVersion = imageVersion;
return this;
}
/**
* Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys
* refer to the lowercase package name such as "numpy" and values are the lowercase extras and
* version specifier such as "==1.12.0", "[devel,gcp_api]", or "[devel]>=1.8.2, <1.9.2". To
* specify a package without pinning it to a version specifier, use the empty string as the value.
* @return value or {@code null} for none
*/
public java.util.Map getPypiPackages() {
return pypiPackages;
}
/**
* Optional. Custom Python Package Index (PyPI) packages to be installed in the environment. Keys
* refer to the lowercase package name such as "numpy" and values are the lowercase extras and
* version specifier such as "==1.12.0", "[devel,gcp_api]", or "[devel]>=1.8.2, <1.9.2". To
* specify a package without pinning it to a version specifier, use the empty string as the value.
* @param pypiPackages pypiPackages or {@code null} for none
*/
public SoftwareConfig setPypiPackages(java.util.Map pypiPackages) {
this.pypiPackages = pypiPackages;
return this;
}
/**
* Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and
* webserver processes. Can be set to '2' or '3'. If not specified, the default is '3'. Cannot be
* updated. This field is only supported for Cloud Composer environments in versions
* composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3.
* @return value or {@code null} for none
*/
public java.lang.String getPythonVersion() {
return pythonVersion;
}
/**
* Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and
* webserver processes. Can be set to '2' or '3'. If not specified, the default is '3'. Cannot be
* updated. This field is only supported for Cloud Composer environments in versions
* composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3.
* @param pythonVersion pythonVersion or {@code null} for none
*/
public SoftwareConfig setPythonVersion(java.lang.String pythonVersion) {
this.pythonVersion = pythonVersion;
return this;
}
/**
* Optional. The number of schedulers for Airflow. This field is supported for Cloud Composer
* environments in versions composer-1.*.*-airflow-2.*.*.
* @return value or {@code null} for none
*/
public java.lang.Integer getSchedulerCount() {
return schedulerCount;
}
/**
* Optional. The number of schedulers for Airflow. This field is supported for Cloud Composer
* environments in versions composer-1.*.*-airflow-2.*.*.
* @param schedulerCount schedulerCount or {@code null} for none
*/
public SoftwareConfig setSchedulerCount(java.lang.Integer schedulerCount) {
this.schedulerCount = schedulerCount;
return this;
}
/**
* Optional. Whether or not the web server uses custom plugins. If unspecified, the field defaults
* to `PLUGINS_ENABLED`. This field is supported for Cloud Composer environments in versions
* composer-3.*.*-airflow-*.*.* and newer.
* @return value or {@code null} for none
*/
public java.lang.String getWebServerPluginsMode() {
return webServerPluginsMode;
}
/**
* Optional. Whether or not the web server uses custom plugins. If unspecified, the field defaults
* to `PLUGINS_ENABLED`. This field is supported for Cloud Composer environments in versions
* composer-3.*.*-airflow-*.*.* and newer.
* @param webServerPluginsMode webServerPluginsMode or {@code null} for none
*/
public SoftwareConfig setWebServerPluginsMode(java.lang.String webServerPluginsMode) {
this.webServerPluginsMode = webServerPluginsMode;
return this;
}
@Override
public SoftwareConfig set(String fieldName, Object value) {
return (SoftwareConfig) super.set(fieldName, value);
}
@Override
public SoftwareConfig clone() {
return (SoftwareConfig) super.clone();
}
}