/*
* 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 opsworks-2013-02-18.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.OpsWorks.Model
{
///
/// Container for the parameters to the UpdateStack operation.
/// Updates a specified stack.
///
///
///
/// Required Permissions: To use this action, an IAM user must have a Manage permissions
/// level for the stack, or an attached policy that explicitly grants permissions. For
/// more information on user permissions, see Managing
/// User Permissions.
///
///
public partial class UpdateStackRequest : AmazonOpsWorksRequest
{
private string _agentVersion;
private Dictionary _attributes = new Dictionary();
private ChefConfiguration _chefConfiguration;
private StackConfigurationManager _configurationManager;
private Source _customCookbooksSource;
private string _customJson;
private string _defaultAvailabilityZone;
private string _defaultInstanceProfileArn;
private string _defaultOs;
private RootDeviceType _defaultRootDeviceType;
private string _defaultSshKeyName;
private string _defaultSubnetId;
private string _hostnameTheme;
private string _name;
private string _serviceRoleArn;
private string _stackId;
private bool? _useCustomCookbooks;
private bool? _useOpsworksSecurityGroups;
///
/// Gets and sets the property AgentVersion.
///
/// The default AWS OpsWorks Stacks agent version. You have the following options:
///
/// -
///
/// Auto-update - Set this parameter to
LATEST
. AWS OpsWorks Stacks automatically
/// installs new agent versions on the stack's instances as soon as they are available.
///
/// -
///
/// Fixed version - Set this parameter to your preferred agent version. To update the
/// agent version, you must edit the stack configuration and specify a new version. AWS
/// OpsWorks Stacks then automatically installs that version on the stack's instances.
///
///
///
/// The default setting is LATEST
. To specify an agent version, you must
/// use the complete version number, not the abbreviated number shown on the console.
/// For a list of available agent version numbers, call DescribeAgentVersions.
/// AgentVersion cannot be set to Chef 12.2.
///
///
///
/// You can also specify an agent version when you create or update an instance, which
/// overrides the stack's default setting.
///
///
///
public string AgentVersion
{
get { return this._agentVersion; }
set { this._agentVersion = value; }
}
// Check to see if AgentVersion property is set
internal bool IsSetAgentVersion()
{
return this._agentVersion != null;
}
///
/// Gets and sets the property Attributes.
///
/// One or more user-defined key-value pairs to be added to the stack attributes.
///
///
public Dictionary Attributes
{
get { return this._attributes; }
set { this._attributes = value; }
}
// Check to see if Attributes property is set
internal bool IsSetAttributes()
{
return this._attributes != null && this._attributes.Count > 0;
}
///
/// Gets and sets the property ChefConfiguration.
///
/// A ChefConfiguration
object that specifies whether to enable Berkshelf
/// and the Berkshelf version on Chef 11.10 stacks. For more information, see Create
/// a New Stack.
///
///
public ChefConfiguration ChefConfiguration
{
get { return this._chefConfiguration; }
set { this._chefConfiguration = value; }
}
// Check to see if ChefConfiguration property is set
internal bool IsSetChefConfiguration()
{
return this._chefConfiguration != null;
}
///
/// Gets and sets the property ConfigurationManager.
///
/// The configuration manager. When you update a stack, we recommend that you use the
/// configuration manager to specify the Chef version: 12, 11.10, or 11.4 for Linux stacks,
/// or 12.2 for Windows stacks. The default value for Linux stacks is currently 12.
///
///
public StackConfigurationManager ConfigurationManager
{
get { return this._configurationManager; }
set { this._configurationManager = value; }
}
// Check to see if ConfigurationManager property is set
internal bool IsSetConfigurationManager()
{
return this._configurationManager != null;
}
///
/// Gets and sets the property CustomCookbooksSource.
///
/// Contains the information required to retrieve an app or cookbook from a repository.
/// For more information, see Adding
/// Apps or Cookbooks
/// and Recipes.
///
///
public Source CustomCookbooksSource
{
get { return this._customCookbooksSource; }
set { this._customCookbooksSource = value; }
}
// Check to see if CustomCookbooksSource property is set
internal bool IsSetCustomCookbooksSource()
{
return this._customCookbooksSource != null;
}
///
/// Gets and sets the property CustomJson.
///
/// A string that contains user-defined, custom JSON. It can be used to override the corresponding
/// default stack configuration JSON values or to pass data to recipes. The string should
/// be in the following format:
///
///
///
/// "{\"key1\": \"value1\", \"key2\": \"value2\",...}"
///
///
///
/// For more information about custom JSON, see Use
/// Custom JSON to Modify the Stack Configuration Attributes.
///
///
public string CustomJson
{
get { return this._customJson; }
set { this._customJson = value; }
}
// Check to see if CustomJson property is set
internal bool IsSetCustomJson()
{
return this._customJson != null;
}
///
/// Gets and sets the property DefaultAvailabilityZone.
///
/// The stack's default Availability Zone, which must be in the stack's region. For more
/// information, see Regions
/// and Endpoints. If you also specify a value for DefaultSubnetId
, the
/// subnet must be in the same zone. For more information, see CreateStack.
///
///
public string DefaultAvailabilityZone
{
get { return this._defaultAvailabilityZone; }
set { this._defaultAvailabilityZone = value; }
}
// Check to see if DefaultAvailabilityZone property is set
internal bool IsSetDefaultAvailabilityZone()
{
return this._defaultAvailabilityZone != null;
}
///
/// Gets and sets the property DefaultInstanceProfileArn.
///
/// The ARN of an IAM profile that is the default profile for all of the stack's EC2 instances.
/// For more information about IAM ARNs, see Using
/// Identifiers.
///
///
public string DefaultInstanceProfileArn
{
get { return this._defaultInstanceProfileArn; }
set { this._defaultInstanceProfileArn = value; }
}
// Check to see if DefaultInstanceProfileArn property is set
internal bool IsSetDefaultInstanceProfileArn()
{
return this._defaultInstanceProfileArn != null;
}
///
/// Gets and sets the property DefaultOs.
///
/// The stack's operating system, which must be set to one of the following:
///
/// -
///
/// A supported Linux operating system: An Amazon Linux version, such as
Amazon
/// Linux 2018.03
, Amazon Linux 2017.09
, Amazon Linux 2017.03
,
/// Amazon Linux 2016.09
, Amazon Linux 2016.03
, Amazon
/// Linux 2015.09
, or Amazon Linux 2015.03
.
///
/// -
///
/// A supported Ubuntu operating system, such as
Ubuntu 16.04 LTS
, Ubuntu
/// 14.04 LTS
, or Ubuntu 12.04 LTS
.
///
/// -
///
///
CentOS Linux 7
///
/// -
///
///
Red Hat Enterprise Linux 7
///
/// -
///
/// A supported Windows operating system, such as
Microsoft Windows Server 2012
/// R2 Base
, Microsoft Windows Server 2012 R2 with SQL Server Express
,
/// Microsoft Windows Server 2012 R2 with SQL Server Standard
, or Microsoft
/// Windows Server 2012 R2 with SQL Server Web
.
///
/// -
///
/// A custom AMI:
Custom
. You specify the custom AMI you want to use when
/// you create instances. For more information about how to use custom AMIs with OpsWorks,
/// see Using
/// Custom AMIs.
///
///
///
/// The default option is the stack's current operating system. For more information about
/// supported operating systems, see AWS
/// OpsWorks Stacks Operating Systems.
///
///
public string DefaultOs
{
get { return this._defaultOs; }
set { this._defaultOs = value; }
}
// Check to see if DefaultOs property is set
internal bool IsSetDefaultOs()
{
return this._defaultOs != null;
}
///
/// Gets and sets the property DefaultRootDeviceType.
///
/// The default root device type. This value is used by default for all instances in the
/// stack, but you can override it when you create an instance. For more information,
/// see Storage
/// for the Root Device.
///
///
public RootDeviceType DefaultRootDeviceType
{
get { return this._defaultRootDeviceType; }
set { this._defaultRootDeviceType = value; }
}
// Check to see if DefaultRootDeviceType property is set
internal bool IsSetDefaultRootDeviceType()
{
return this._defaultRootDeviceType != null;
}
///
/// Gets and sets the property DefaultSshKeyName.
///
/// A default Amazon EC2 key-pair name. The default value is none
. If you
/// specify a key-pair name, AWS OpsWorks Stacks installs the public key on the instance
/// and you can use the private key with an SSH client to log in to the instance. For
/// more information, see
/// Using SSH to Communicate with an Instance and
/// Managing SSH Access. You can override this setting by specifying a different key
/// pair, or no key pair, when you
/// create an instance.
///
///
public string DefaultSshKeyName
{
get { return this._defaultSshKeyName; }
set { this._defaultSshKeyName = value; }
}
// Check to see if DefaultSshKeyName property is set
internal bool IsSetDefaultSshKeyName()
{
return this._defaultSshKeyName != null;
}
///
/// Gets and sets the property DefaultSubnetId.
///
/// The stack's default VPC subnet ID. This parameter is required if you specify a value
/// for the VpcId
parameter. All instances are launched into this subnet
/// unless you specify otherwise when you create the instance. If you also specify a value
/// for DefaultAvailabilityZone
, the subnet must be in that zone. For information
/// on default values and when this parameter is required, see the VpcId
/// parameter description.
///
///
public string DefaultSubnetId
{
get { return this._defaultSubnetId; }
set { this._defaultSubnetId = value; }
}
// Check to see if DefaultSubnetId property is set
internal bool IsSetDefaultSubnetId()
{
return this._defaultSubnetId != null;
}
///
/// Gets and sets the property HostnameTheme.
///
/// The stack's new host name theme, with spaces replaced by underscores. The theme is
/// used to generate host names for the stack's instances. By default, HostnameTheme
/// is set to Layer_Dependent
, which creates host names by appending integers
/// to the layer's short name. The other themes are:
///
/// -
///
///
Baked_Goods
///
/// -
///
///
Clouds
///
/// -
///
///
Europe_Cities
///
/// -
///
///
Fruits
///
/// -
///
///
Greek_Deities_and_Titans
///
/// -
///
///
Legendary_creatures_from_Japan
///
/// -
///
///
Planets_and_Moons
///
/// -
///
///
Roman_Deities
///
/// -
///
///
Scottish_Islands
///
/// -
///
///
US_Cities
///
/// -
///
///
Wild_Cats
///
///
///
/// To obtain a generated host name, call GetHostNameSuggestion
, which returns
/// a host name based on the current theme.
///
///
public string HostnameTheme
{
get { return this._hostnameTheme; }
set { this._hostnameTheme = value; }
}
// Check to see if HostnameTheme property is set
internal bool IsSetHostnameTheme()
{
return this._hostnameTheme != null;
}
///
/// Gets and sets the property Name.
///
/// The stack's new name.
///
///
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 ServiceRoleArn.
///
/// Do not use this parameter. You cannot update a stack's service role.
///
///
public string ServiceRoleArn
{
get { return this._serviceRoleArn; }
set { this._serviceRoleArn = value; }
}
// Check to see if ServiceRoleArn property is set
internal bool IsSetServiceRoleArn()
{
return this._serviceRoleArn != null;
}
///
/// Gets and sets the property StackId.
///
/// The stack ID.
///
///
[AWSProperty(Required=true)]
public string StackId
{
get { return this._stackId; }
set { this._stackId = value; }
}
// Check to see if StackId property is set
internal bool IsSetStackId()
{
return this._stackId != null;
}
///
/// Gets and sets the property UseCustomCookbooks.
///
/// Whether the stack uses custom cookbooks.
///
///
public bool UseCustomCookbooks
{
get { return this._useCustomCookbooks.GetValueOrDefault(); }
set { this._useCustomCookbooks = value; }
}
// Check to see if UseCustomCookbooks property is set
internal bool IsSetUseCustomCookbooks()
{
return this._useCustomCookbooks.HasValue;
}
///
/// Gets and sets the property UseOpsworksSecurityGroups.
///
/// Whether to associate the AWS OpsWorks Stacks built-in security groups with the stack's
/// layers.
///
///
///
/// AWS OpsWorks Stacks provides a standard set of built-in security groups, one for each
/// layer, which are associated with layers by default. UseOpsworksSecurityGroups
/// allows you to provide your own custom security groups instead of using the built-in
/// groups. UseOpsworksSecurityGroups
has the following settings:
///
/// -
///
/// True - AWS OpsWorks Stacks automatically associates the appropriate built-in security
/// group with each layer (default setting). You can associate additional security groups
/// with a layer after you create it, but you cannot delete the built-in security group.
///
///
-
///
/// False - AWS OpsWorks Stacks does not associate built-in security groups with layers.
/// You must create appropriate EC2 security groups and associate a security group with
/// each layer that you create. However, you can still manually associate a built-in security
/// group with a layer on. Custom security groups are required only for those layers that
/// need custom settings.
///
///
///
/// For more information, see Create
/// a New Stack.
///
///
public bool UseOpsworksSecurityGroups
{
get { return this._useOpsworksSecurityGroups.GetValueOrDefault(); }
set { this._useOpsworksSecurityGroups = value; }
}
// Check to see if UseOpsworksSecurityGroups property is set
internal bool IsSetUseOpsworksSecurityGroups()
{
return this._useOpsworksSecurityGroups.HasValue;
}
}
}