public sealed class AwsControlPlane : IMessage<AwsControlPlane>, IEquatable<AwsControlPlane>, IDeepCloneable<AwsControlPlane>, IBufferMessage, IMessage
Reference documentation and code samples for the Anthos Multi-Cloud v1 API class AwsControlPlane.
ControlPlane defines common parameters between control plane nodes.
Optional. Configuration related to the main volume provisioned for each
control plane replica.
The main volume is in charge of storing all of the cluster's etcd state.
Volumes will be provisioned in the availability zone associated
with the corresponding subnet.
When unspecified, it defaults to 8 GiB with the GP2 volume type.
public RepeatedField<string> SecurityGroupIds { get; }
Optional. The IDs of additional security groups to add to control plane
replicas. The Anthos Multi-Cloud API will automatically create and manage
security groups with the minimum rules needed for a functioning cluster.
Required. The list of subnets where control plane replicas will run.
A replica will be provisioned on each subnet and up to three values
can be provided.
Each subnet must be in a different AWS Availability Zone (AZ).
Optional. A set of AWS resource tags to propagate to all underlying managed
AWS resources.
Specify at most 50 pairs containing alphanumerics, spaces, and symbols
(.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to
255 Unicode characters.
Required. The Kubernetes version to run on control plane replicas
(e.g. 1.19.10-gke.1000).
You can list all supported versions on a given Google Cloud region by
calling
[GetAwsServerConfig][google.cloud.gkemulticloud.v1.AwsClusters.GetAwsServerConfig].
[[["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\u003eAwsControlPlane\u003c/code\u003e class within the Google.Cloud.GkeMultiCloud.V1 namespace is used to define parameters for control plane nodes in an Anthos Multi-Cloud v1 API environment.\u003c/p\u003e\n"],["\u003cp\u003eIt implements several interfaces including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, and has constructors for creating new instances either from scratch or by copying existing ones.\u003c/p\u003e\n"],["\u003cp\u003eKey properties of \u003ccode\u003eAwsControlPlane\u003c/code\u003e include configurations for AWS services authentication, data encryption, instance profiles, placement, instance type, main and root volume settings, proxy configuration, and SSH access.\u003c/p\u003e\n"],["\u003cp\u003eThe class also includes properties for managing security groups, subnet IDs for replica deployment, and custom AWS resource tags, alongside a required Kubernetes version property.\u003c/p\u003e\n"],["\u003cp\u003eThis document also references the available versions of \u003ccode\u003eAwsControlPlane\u003c/code\u003e, with the most recent being 2.8.0, and other previous versions ranging from 2.7.0 down to 1.0.0-beta01.\u003c/p\u003e\n"]]],[],null,["# Anthos Multi-Cloud v1 API - Class AwsControlPlane (2.8.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.8.0 (latest)](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/latest/Google.Cloud.GkeMultiCloud.V1.AwsControlPlane)\n- [2.7.0](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/2.7.0/Google.Cloud.GkeMultiCloud.V1.AwsControlPlane)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/2.6.0/Google.Cloud.GkeMultiCloud.V1.AwsControlPlane)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/2.5.0/Google.Cloud.GkeMultiCloud.V1.AwsControlPlane)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/2.4.0/Google.Cloud.GkeMultiCloud.V1.AwsControlPlane)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/2.3.0/Google.Cloud.GkeMultiCloud.V1.AwsControlPlane)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/2.2.0/Google.Cloud.GkeMultiCloud.V1.AwsControlPlane)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/2.1.0/Google.Cloud.GkeMultiCloud.V1.AwsControlPlane)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/2.0.0/Google.Cloud.GkeMultiCloud.V1.AwsControlPlane)\n- [1.0.0-beta01](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/1.0.0-beta01/Google.Cloud.GkeMultiCloud.V1.AwsControlPlane) \n\n public sealed class AwsControlPlane : IMessage\u003cAwsControlPlane\u003e, IEquatable\u003cAwsControlPlane\u003e, IDeepCloneable\u003cAwsControlPlane\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Anthos Multi-Cloud v1 API class AwsControlPlane.\n\nControlPlane defines common parameters between control plane nodes. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e AwsControlPlane \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[AwsControlPlane](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/latest/Google.Cloud.GkeMultiCloud.V1.AwsControlPlane), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[AwsControlPlane](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/latest/Google.Cloud.GkeMultiCloud.V1.AwsControlPlane), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[AwsControlPlane](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/latest/Google.Cloud.GkeMultiCloud.V1.AwsControlPlane), [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.GkeMultiCloud.V1](/dotnet/docs/reference/Google.Cloud.GkeMultiCloud.V1/latest/Google.Cloud.GkeMultiCloud.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.GkeMultiCloud.V1.dll\n\nConstructors\n------------\n\n### AwsControlPlane()\n\n public AwsControlPlane()\n\n### AwsControlPlane(AwsControlPlane)\n\n public AwsControlPlane(AwsControlPlane other)\n\nProperties\n----------\n\n### AwsServicesAuthentication\n\n public AwsServicesAuthentication AwsServicesAuthentication { get; set; }\n\nRequired. Authentication configuration for management of AWS resources.\n\n### ConfigEncryption\n\n public AwsConfigEncryption ConfigEncryption { get; set; }\n\nRequired. Config encryption for user data.\n\n### DatabaseEncryption\n\n public AwsDatabaseEncryption DatabaseEncryption { get; set; }\n\nRequired. The ARN of the AWS KMS key used to encrypt cluster secrets.\n\n### IamInstanceProfile\n\n public string IamInstanceProfile { get; set; }\n\nRequired. The name or ARN of the AWS IAM instance profile to assign to each\ncontrol plane replica.\n\n### InstancePlacement\n\n public AwsInstancePlacement InstancePlacement { get; set; }\n\nOptional. The placement to use on control plane instances.\nWhen unspecified, the VPC's default tenancy will be used.\n\n### InstanceType\n\n public string InstanceType { get; set; }\n\nOptional. The AWS instance type.\n\nWhen unspecified, it uses a default based on the cluster's version.\n\n### MainVolume\n\n public AwsVolumeTemplate MainVolume { get; set; }\n\nOptional. Configuration related to the main volume provisioned for each\ncontrol plane replica.\nThe main volume is in charge of storing all of the cluster's etcd state.\n\nVolumes will be provisioned in the availability zone associated\nwith the corresponding subnet.\n\nWhen unspecified, it defaults to 8 GiB with the GP2 volume type.\n\n### ProxyConfig\n\n public AwsProxyConfig ProxyConfig { get; set; }\n\nOptional. Proxy configuration for outbound HTTP(S) traffic.\n\n### RootVolume\n\n public AwsVolumeTemplate RootVolume { get; set; }\n\nOptional. Configuration related to the root volume provisioned for each\ncontrol plane replica.\n\nVolumes will be provisioned in the availability zone associated\nwith the corresponding subnet.\n\nWhen unspecified, it defaults to 32 GiB with the GP2 volume type.\n\n### SecurityGroupIds\n\n public RepeatedField\u003cstring\u003e SecurityGroupIds { get; }\n\nOptional. The IDs of additional security groups to add to control plane\nreplicas. The Anthos Multi-Cloud API will automatically create and manage\nsecurity groups with the minimum rules needed for a functioning cluster.\n\n### SshConfig\n\n public AwsSshConfig SshConfig { get; set; }\n\nOptional. SSH configuration for how to access the underlying control plane\nmachines.\n\n### SubnetIds\n\n public RepeatedField\u003cstring\u003e SubnetIds { get; }\n\nRequired. The list of subnets where control plane replicas will run.\nA replica will be provisioned on each subnet and up to three values\ncan be provided.\nEach subnet must be in a different AWS Availability Zone (AZ).\n\n### Tags\n\n public MapField\u003cstring, string\u003e Tags { get; }\n\nOptional. A set of AWS resource tags to propagate to all underlying managed\nAWS resources.\n\nSpecify at most 50 pairs containing alphanumerics, spaces, and symbols\n(.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to\n255 Unicode characters.\n\n### Version\n\n public string Version { get; set; }\n\nRequired. The Kubernetes version to run on control plane replicas\n(e.g. `1.19.10-gke.1000`).\n\nYou can list all supported versions on a given Google Cloud region by\ncalling\n\\[GetAwsServerConfig\\]\\[google.cloud.gkemulticloud.v1.AwsClusters.GetAwsServerConfig\\]."]]