public MapField<string, string> AirflowConfigOverrides { get; }
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. Property values can
contain any character, and can be written in any lower/upper case format.
Certain Apache Airflow configuration property values are
blocked,
and cannot be overridden.
public MapField<string, string> EnvVariables { get; }
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_][a-zA-Z0-9_]*. 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:
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, 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.
public MapField<string, string> PypiPackages { get; }
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.
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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eSoftwareConfig\u003c/code\u003e class within the Cloud Composer v1 API provides configuration options for managing software within an environment.\u003c/p\u003e\n"],["\u003cp\u003eThis documentation details various versions, ranging from 1.0.0 to 2.9.0, for the \u003ccode\u003eSoftwareConfig\u003c/code\u003e class, with 2.9.0 being the latest release.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eSoftwareConfig\u003c/code\u003e allows users to override Apache Airflow configurations, manage environment variables, specify Python package dependencies, and configure the number of Airflow schedulers.\u003c/p\u003e\n"],["\u003cp\u003eUsers can specify custom PyPI packages to be installed, with the ability to define version specifiers or leave them open-ended.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eSoftwareConfig\u003c/code\u003e class can be used to set the version of Python used and manage the use of custom web server plugins.\u003c/p\u003e\n"]]],[],null,["# Cloud Composer v1 API - Class SoftwareConfig (2.9.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.9.0 (latest)](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/latest/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig)\n- [2.8.0](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/2.8.0/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig)\n- [2.7.0](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/2.7.0/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/2.6.0/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/2.5.0/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/2.4.0/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/2.3.0/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/2.2.0/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/2.1.0/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/2.0.0/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig)\n- [1.0.0](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/1.0.0/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig) \n\n public sealed class SoftwareConfig : IMessage\u003cSoftwareConfig\u003e, IEquatable\u003cSoftwareConfig\u003e, IDeepCloneable\u003cSoftwareConfig\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Cloud Composer v1 API class SoftwareConfig.\n\nSpecifies the selection and configuration of software inside the environment. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e SoftwareConfig \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[SoftwareConfig](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/latest/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[SoftwareConfig](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/latest/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[SoftwareConfig](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/latest/Google.Cloud.Orchestration.Airflow.Service.V1.SoftwareConfig), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Orchestration.Airflow.Service.V1](/dotnet/docs/reference/Google.Cloud.Orchestration.Airflow.Service.V1/latest/Google.Cloud.Orchestration.Airflow.Service.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.Orchestration.Airflow.Service.V1.dll\n\nConstructors\n------------\n\n### SoftwareConfig()\n\n public SoftwareConfig()\n\n### SoftwareConfig(SoftwareConfig)\n\n public SoftwareConfig(SoftwareConfig other)\n\nProperties\n----------\n\n### AirflowConfigOverrides\n\n public MapField\u003cstring, string\u003e AirflowConfigOverrides { get; }\n\nOptional. Apache Airflow configuration properties to override.\n\nProperty keys contain the section and property names, separated by a\nhyphen, for example \"core-dags_are_paused_at_creation\". Section names must\nnot contain hyphens (\"-\"), opening square brackets (\"\\[\"), or closing\nsquare brackets (\"\\]\"). The property name must not be empty and must not\ncontain an equals sign (\"=\") or semicolon (\";\"). Section and property names\nmust not contain a period (\".\"). Apache Airflow configuration property\nnames must be written in\n[snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can\ncontain any character, and can be written in any lower/upper case format.\n\nCertain Apache Airflow configuration property values are\n[blocked](/composer/docs/concepts/airflow-configurations),\nand cannot be overridden.\n\n### CloudDataLineageIntegration\n\n public CloudDataLineageIntegration CloudDataLineageIntegration { get; set; }\n\nOptional. The configuration for Cloud Data Lineage integration.\n\n### EnvVariables\n\n public MapField\u003cstring, string\u003e EnvVariables { get; }\n\nOptional. Additional environment variables to provide to the Apache Airflow\nscheduler, worker, and webserver processes.\n\nEnvironment variable names must match the regular expression\n`[a-zA-Z_][a-zA-Z0-9_]*`. They cannot specify Apache Airflow\nsoftware configuration overrides (they cannot match the regular expression\n`AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+`), and they cannot match any of the\nfollowing reserved names:\n\n- `AIRFLOW_HOME`\n- `C_FORCE_ROOT`\n- `CONTAINER_NAME`\n- `DAGS_FOLDER`\n- `GCP_PROJECT`\n- `GCS_BUCKET`\n- `GKE_CLUSTER_NAME`\n- `SQL_DATABASE`\n- `SQL_INSTANCE`\n- `SQL_PASSWORD`\n- `SQL_PROJECT`\n- `SQL_REGION`\n- `SQL_USER`\n\n### ImageVersion\n\n public string ImageVersion { get; set; }\n\nThe version of the software running in the environment.\nThis encapsulates both the version of Cloud Composer functionality and the\nversion of Apache Airflow. It must match the regular expression\n`composer-([0-9]+(\\.[0-9]+\\.[0-9]+(-preview\\.[0-9]+)?)?|latest)-airflow-([0-9]+(\\.[0-9]+(\\.[0-9]+)?)?)`.\nWhen used as input, the server also checks if the provided version is\nsupported and denies the request for an unsupported version.\n\nThe Cloud Composer portion of the image version is a full\n[semantic version](https://semver.org), or an alias in the form of major\nversion number or `latest`. When an alias is provided, the server replaces\nit with the current Cloud Composer version that satisfies the alias.\n\nThe Apache Airflow portion of the image version is a full semantic version\nthat points to one of the supported Apache Airflow versions, or an alias in\nthe form of only major or major.minor versions specified. When an alias is\nprovided, the server replaces it with the latest Apache Airflow version\nthat satisfies the alias and is supported in the given Cloud Composer\nversion.\n\nIn all cases, the resolved image version is stored in the same field.\n\nSee also [version\nlist](/composer/docs/concepts/versioning/composer-versions) and [versioning\noverview](/composer/docs/concepts/versioning/composer-versioning-overview).\n\n### PypiPackages\n\n public MapField\u003cstring, string\u003e PypiPackages { get; }\n\nOptional. Custom Python Package Index (PyPI) packages to be installed in\nthe environment.\n\nKeys refer to the lowercase package name such as \"numpy\"\nand values are the lowercase extras and version specifier such as\n\"==1.12.0\", \"\\[devel,gcp_api\\]\", or \"\\[devel\\]\\\u003e=1.8.2, \\\u003c1.9.2\". To specify a\npackage without pinning it to a version specifier, use the empty string as\nthe value.\n\n### PythonVersion\n\n public string PythonVersion { get; set; }\n\nOptional. The major version of Python used to run the Apache Airflow\nscheduler, worker, and webserver processes.\n\nCan be set to '2' or '3'. If not specified, the default is '3'. Cannot be\nupdated.\n\nThis field is only supported for Cloud Composer environments in versions\ncomposer-1.*.* -airflow-*.*.\\*. Environments in newer versions always use\nPython major version 3.\n\n### SchedulerCount\n\n public int SchedulerCount { get; set; }\n\nOptional. The number of schedulers for Airflow.\n\nThis field is supported for Cloud Composer environments in versions\ncomposer-1.*.* -airflow-2.*.*.\n\n### WebServerPluginsMode\n\n public SoftwareConfig.Types.WebServerPluginsMode WebServerPluginsMode { get; set; }\n\nOptional. Whether or not the web server uses custom plugins.\nIf unspecified, the field defaults to `PLUGINS_ENABLED`.\n\nThis field is supported for Cloud Composer environments in versions\ncomposer-3.*.* -airflow-*.*.\\* and newer."]]