/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file 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. */ /* * Do not modify this file. This file is generated from the proton-2020-07-20.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.Proton.Model { /// /// Container for the parameters to the UpdateEnvironment operation. /// Update an environment. /// /// /// /// If the environment is associated with an environment account connection, don't /// update or include the protonServiceRoleArn and provisioningRepository /// parameter to update or connect to an environment account connection. /// /// /// /// You can only update to a new environment account connection if that connection was /// created in the same environment account that the current environment account connection /// was created in. The account connection must also be associated with the current environment. /// /// /// /// If the environment isn't associated with an environment account connection, /// don't update or include the environmentAccountConnectionId parameter. /// You can't update or connect the environment to an environment account connection /// if it isn't already associated with an environment connection. /// /// /// /// You can update either the environmentAccountConnectionId or protonServiceRoleArn /// parameter and value. You can’t update both. /// /// /// /// If the environment was configured for Amazon Web Services-managed provisioning, omit /// the provisioningRepository parameter. /// /// /// /// If the environment was configured for self-managed provisioning, specify the provisioningRepository /// parameter and omit the protonServiceRoleArn and environmentAccountConnectionId /// parameters. /// /// /// /// For more information, see Environments /// and Provisioning /// methods in the Proton User Guide. /// /// /// /// There are four modes for updating an environment. The deploymentType /// field defines the mode. /// ///
/// /// NONE /// /// /// /// In this mode, a deployment doesn't occur. Only the requested metadata parameters /// are updated. /// ///
/// /// CURRENT_VERSION /// /// /// /// In this mode, the environment is deployed and updated with the new spec that you provide. /// Only requested parameters are updated. Don’t include minor or major version /// parameters when you use this deployment-type. /// ///
/// /// MINOR_VERSION /// /// /// /// In this mode, the environment is deployed and updated with the published, recommended /// (latest) minor version of the current major version in use, by default. You can also /// specify a different minor version of the current major version in use. /// ///
/// /// MAJOR_VERSION /// /// /// /// In this mode, the environment is deployed and updated with the published, recommended /// (latest) major and minor version of the current template, by default. You can also /// specify a different major version that's higher than the major version in use and /// a minor version. /// ///
///
public partial class UpdateEnvironmentRequest : AmazonProtonRequest { private string _codebuildRoleArn; private string _componentRoleArn; private DeploymentUpdateType _deploymentType; private string _description; private string _environmentAccountConnectionId; private string _name; private string _protonServiceRoleArn; private RepositoryBranchInput _provisioningRepository; private string _spec; private string _templateMajorVersion; private string _templateMinorVersion; /// /// Gets and sets the property CodebuildRoleArn. /// /// The Amazon Resource Name (ARN) of the IAM service role that allows Proton to provision /// infrastructure using CodeBuild-based provisioning on your behalf. /// /// [AWSProperty(Min=1, Max=2048)] public string CodebuildRoleArn { get { return this._codebuildRoleArn; } set { this._codebuildRoleArn = value; } } // Check to see if CodebuildRoleArn property is set internal bool IsSetCodebuildRoleArn() { return this._codebuildRoleArn != null; } /// /// Gets and sets the property ComponentRoleArn. /// /// The Amazon Resource Name (ARN) of the IAM service role that Proton uses when provisioning /// directly defined components in this environment. It determines the scope of infrastructure /// that a component can provision. /// /// /// /// The environment must have a componentRoleArn to allow directly defined /// components to be associated with the environment. /// /// /// /// For more information about components, see Proton /// components in the Proton User Guide. /// /// [AWSProperty(Min=1, Max=2048)] public string ComponentRoleArn { get { return this._componentRoleArn; } set { this._componentRoleArn = value; } } // Check to see if ComponentRoleArn property is set internal bool IsSetComponentRoleArn() { return this._componentRoleArn != null; } /// /// Gets and sets the property DeploymentType. /// /// There are four modes for updating an environment. The deploymentType /// field defines the mode. /// ///
/// /// NONE /// /// /// /// In this mode, a deployment doesn't occur. Only the requested metadata parameters /// are updated. /// ///
/// /// CURRENT_VERSION /// /// /// /// In this mode, the environment is deployed and updated with the new spec that you provide. /// Only requested parameters are updated. Don’t include major or minor version /// parameters when you use this deployment-type. /// ///
/// /// MINOR_VERSION /// /// /// /// In this mode, the environment is deployed and updated with the published, recommended /// (latest) minor version of the current major version in use, by default. You can also /// specify a different minor version of the current major version in use. /// ///
/// /// MAJOR_VERSION /// /// /// /// In this mode, the environment is deployed and updated with the published, recommended /// (latest) major and minor version of the current template, by default. You can also /// specify a different major version that is higher than the major version in use and /// a minor version (optional). /// ///
///
[AWSProperty(Required=true)] public DeploymentUpdateType DeploymentType { get { return this._deploymentType; } set { this._deploymentType = value; } } // Check to see if DeploymentType property is set internal bool IsSetDeploymentType() { return this._deploymentType != null; } /// /// Gets and sets the property Description. /// /// A description of the environment update. /// /// [AWSProperty(Sensitive=true, Min=0, Max=500)] public string Description { get { return this._description; } set { this._description = value; } } // Check to see if Description property is set internal bool IsSetDescription() { return this._description != null; } /// /// Gets and sets the property EnvironmentAccountConnectionId. /// /// The ID of the environment account connection. /// /// /// /// You can only update to a new environment account connection if it was created in the /// same environment account that the current environment account connection was created /// in and is associated with the current environment. /// /// public string EnvironmentAccountConnectionId { get { return this._environmentAccountConnectionId; } set { this._environmentAccountConnectionId = value; } } // Check to see if EnvironmentAccountConnectionId property is set internal bool IsSetEnvironmentAccountConnectionId() { return this._environmentAccountConnectionId != null; } /// /// Gets and sets the property Name. /// /// The name of the environment to update. /// /// [AWSProperty(Required=true, Min=1, Max=100)] public string Name { get { return this._name; } set { this._name = value; } } // Check to see if Name property is set internal bool IsSetName() { return this._name != null; } /// /// Gets and sets the property ProtonServiceRoleArn. /// /// The Amazon Resource Name (ARN) of the Proton service role that allows Proton to make /// API calls to other services your behalf. /// /// [AWSProperty(Min=1, Max=200)] public string ProtonServiceRoleArn { get { return this._protonServiceRoleArn; } set { this._protonServiceRoleArn = value; } } // Check to see if ProtonServiceRoleArn property is set internal bool IsSetProtonServiceRoleArn() { return this._protonServiceRoleArn != null; } /// /// Gets and sets the property ProvisioningRepository. /// /// The linked repository that you use to host your rendered infrastructure templates /// for self-managed provisioning. A linked repository is a repository that has been registered /// with Proton. For more information, see CreateRepository. /// /// public RepositoryBranchInput ProvisioningRepository { get { return this._provisioningRepository; } set { this._provisioningRepository = value; } } // Check to see if ProvisioningRepository property is set internal bool IsSetProvisioningRepository() { return this._provisioningRepository != null; } /// /// Gets and sets the property Spec. /// /// The formatted specification that defines the update. /// /// [AWSProperty(Sensitive=true, Min=1, Max=51200)] public string Spec { get { return this._spec; } set { this._spec = value; } } // Check to see if Spec property is set internal bool IsSetSpec() { return this._spec != null; } /// /// Gets and sets the property TemplateMajorVersion. /// /// The major version of the environment to update. /// /// [AWSProperty(Min=1, Max=20)] public string TemplateMajorVersion { get { return this._templateMajorVersion; } set { this._templateMajorVersion = value; } } // Check to see if TemplateMajorVersion property is set internal bool IsSetTemplateMajorVersion() { return this._templateMajorVersion != null; } /// /// Gets and sets the property TemplateMinorVersion. /// /// The minor version of the environment to update. /// /// [AWSProperty(Min=1, Max=20)] public string TemplateMinorVersion { get { return this._templateMinorVersion; } set { this._templateMinorVersion = value; } } // Check to see if TemplateMinorVersion property is set internal bool IsSetTemplateMinorVersion() { return this._templateMinorVersion != null; } } }