public sealed class CanaryDeployment : IMessage<CanaryDeployment>, IEquatable<CanaryDeployment>, IDeepCloneable<CanaryDeployment>, IBufferMessage, IMessage
Reference documentation and code samples for the Google Cloud Deploy v1 API class CanaryDeployment.
CanaryDeployment represents the canary deployment configuration
Required. The percentage based deployments that will occur as a part of a
Rollout. List is expected in ascending order and each integer n is
0 <= n < 100.
If the GatewayServiceMesh is configured for Kubernetes, then the range for
n is 0 <= n <= 100.
[[["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 latest version of the \u003ccode\u003eCanaryDeployment\u003c/code\u003e class in the Google Cloud Deploy v1 API is 3.4.0, and multiple previous versions, ranging from 3.3.0 down to 1.0.0, are also documented.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eCanaryDeployment\u003c/code\u003e is a class representing the canary deployment configuration within the Google Cloud Deploy v1 API, and it inherits from \u003ccode\u003eobject\u003c/code\u003e and 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.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003ePercentages\u003c/code\u003e property, a required field, configures the percentage-based deployments in a \u003ccode\u003eRollout\u003c/code\u003e, with each integer in the list expected to be in ascending order between 0 and 100, or between 0 and 100 inclusive if \u003ccode\u003eGatewayServiceMesh\u003c/code\u003e is configured for Kubernetes.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eCanaryDeployment\u003c/code\u003e has optional properties, such as \u003ccode\u003ePostdeploy\u003c/code\u003e and \u003ccode\u003ePredeploy\u003c/code\u003e, that allow configuration of post- and pre-deployment jobs for the last and first phases of deployment, respectively.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eVerify\u003c/code\u003e property is a boolean value indicating if verify tests should be run after each percentage deployment.\u003c/p\u003e\n"]]],[],null,["# Google Cloud Deploy v1 API - Class CanaryDeployment (3.6.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.6.0 (latest)](/dotnet/docs/reference/Google.Cloud.Deploy.V1/latest/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [3.5.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/3.5.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [3.4.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/3.4.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [3.3.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/3.3.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [3.2.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/3.2.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [3.1.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/3.1.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [3.0.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/3.0.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.19.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.19.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.18.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.18.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.17.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.17.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.16.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.16.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.15.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.15.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.14.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.14.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.13.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.13.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.12.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.12.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.11.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.11.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.10.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.10.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.9.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.9.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.8.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.8.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.7.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.7.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.6.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.5.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.4.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.3.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.2.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.1.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.1.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [2.0.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/2.0.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [1.1.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/1.1.0/Google.Cloud.Deploy.V1.CanaryDeployment)\n- [1.0.0](/dotnet/docs/reference/Google.Cloud.Deploy.V1/1.0.0/Google.Cloud.Deploy.V1.CanaryDeployment) \n\n public sealed class CanaryDeployment : IMessage\u003cCanaryDeployment\u003e, IEquatable\u003cCanaryDeployment\u003e, IDeepCloneable\u003cCanaryDeployment\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Google Cloud Deploy v1 API class CanaryDeployment.\n\nCanaryDeployment represents the canary deployment configuration \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e CanaryDeployment \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[CanaryDeployment](/dotnet/docs/reference/Google.Cloud.Deploy.V1/latest/Google.Cloud.Deploy.V1.CanaryDeployment), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[CanaryDeployment](/dotnet/docs/reference/Google.Cloud.Deploy.V1/latest/Google.Cloud.Deploy.V1.CanaryDeployment), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[CanaryDeployment](/dotnet/docs/reference/Google.Cloud.Deploy.V1/latest/Google.Cloud.Deploy.V1.CanaryDeployment), [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.Deploy.V1](/dotnet/docs/reference/Google.Cloud.Deploy.V1/latest/Google.Cloud.Deploy.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.Deploy.V1.dll\n\nConstructors\n------------\n\n### CanaryDeployment()\n\n public CanaryDeployment()\n\n### CanaryDeployment(CanaryDeployment)\n\n public CanaryDeployment(CanaryDeployment other)\n\nProperties\n----------\n\n### Percentages\n\n public RepeatedField\u003cint\u003e Percentages { get; }\n\nRequired. The percentage based deployments that will occur as a part of a\n`Rollout`. List is expected in ascending order and each integer n is\n0 \\\u003c= n \\\u003c 100.\nIf the GatewayServiceMesh is configured for Kubernetes, then the range for\nn is 0 \\\u003c= n \\\u003c= 100.\n\n### Postdeploy\n\n public Postdeploy Postdeploy { get; set; }\n\nOptional. Configuration for the postdeploy job of the last phase. If this\nis not configured, there will be no postdeploy job for this phase.\n\n### Predeploy\n\n public Predeploy Predeploy { get; set; }\n\nOptional. Configuration for the predeploy job of the first phase. If this\nis not configured, there will be no predeploy job for this phase.\n\n### Verify\n\n public bool Verify { get; set; }\n\nOptional. Whether to run verify tests after each percentage deployment via\n`skaffold verify`."]]