/*
* 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 serverlessrepo-2017-09-08.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.ServerlessApplicationRepository.Model
{
///
/// Container for the parameters to the CreateCloudFormationChangeSet operation.
/// Creates an AWS CloudFormation change set for the given application.
///
public partial class CreateCloudFormationChangeSetRequest : AmazonServerlessApplicationRepositoryRequest
{
private string _applicationId;
private List _capabilities = new List();
private string _changeSetName;
private string _clientToken;
private string _description;
private List _notificationArns = new List();
private List _parameterOverrides = new List();
private List _resourceTypes = new List();
private RollbackConfiguration _rollbackConfiguration;
private string _semanticVersion;
private string _stackName;
private List _tags = new List();
private string _templateId;
///
/// Gets and sets the property ApplicationId.
///
/// The Amazon Resource Name (ARN) of the application.
///
///
[AWSProperty(Required=true)]
public string ApplicationId
{
get { return this._applicationId; }
set { this._applicationId = value; }
}
// Check to see if ApplicationId property is set
internal bool IsSetApplicationId()
{
return this._applicationId != null;
}
///
/// Gets and sets the property Capabilities.
///
/// A list of values that you must specify before you can deploy certain applications.
/// Some applications might include resources that can affect permissions in your AWS
/// account, for example, by creating new AWS Identity and Access Management (IAM) users.
/// For those applications, you must explicitly acknowledge their capabilities by specifying
/// this parameter.
///
///
///
/// The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_RESOURCE_POLICY,
/// and CAPABILITY_AUTO_EXPAND.
///
///
///
/// The following resources require you to specify CAPABILITY_IAM or CAPABILITY_NAMED_IAM:
/// AWS::IAM::Group,
/// AWS::IAM::InstanceProfile,
/// AWS::IAM::Policy,
/// and AWS::IAM::Role.
/// If the application contains IAM resources, you can specify either CAPABILITY_IAM or
/// CAPABILITY_NAMED_IAM. If the application contains IAM resources with custom names,
/// you must specify CAPABILITY_NAMED_IAM.
///
///
///
/// The following resources require you to specify CAPABILITY_RESOURCE_POLICY: AWS::Lambda::Permission,
/// AWS::IAM:Policy,
/// AWS::ApplicationAutoScaling::ScalingPolicy,
/// AWS::S3::BucketPolicy,
/// AWS::SQS::QueuePolicy,
/// and AWS::SNS:TopicPolicy.
///
///
///
/// Applications that contain one or more nested applications require you to specify CAPABILITY_AUTO_EXPAND.
///
///
///
/// If your application template contains any of the above resources, we recommend that
/// you review all permissions associated with the application before deploying. If you
/// don't specify this parameter for an application that requires capabilities, the call
/// will fail.
///
///
public List Capabilities
{
get { return this._capabilities; }
set { this._capabilities = value; }
}
// Check to see if Capabilities property is set
internal bool IsSetCapabilities()
{
return this._capabilities != null && this._capabilities.Count > 0;
}
///
/// Gets and sets the property ChangeSetName.
///
/// This property corresponds to the parameter of the same name for the AWS CloudFormation
/// CreateChangeSet
/// API.
///
///
public string ChangeSetName
{
get { return this._changeSetName; }
set { this._changeSetName = value; }
}
// Check to see if ChangeSetName property is set
internal bool IsSetChangeSetName()
{
return this._changeSetName != null;
}
///
/// Gets and sets the property ClientToken.
///
/// This property corresponds to the parameter of the same name for the AWS CloudFormation
/// CreateChangeSet
/// API.
///
///
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property Description.
///
/// This property corresponds to the parameter of the same name for the AWS CloudFormation
/// CreateChangeSet
/// API.
///
///
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 NotificationArns.
///
/// This property corresponds to the parameter of the same name for the AWS CloudFormation
/// CreateChangeSet
/// API.
///
///
public List NotificationArns
{
get { return this._notificationArns; }
set { this._notificationArns = value; }
}
// Check to see if NotificationArns property is set
internal bool IsSetNotificationArns()
{
return this._notificationArns != null && this._notificationArns.Count > 0;
}
///
/// Gets and sets the property ParameterOverrides.
///
/// A list of parameter values for the parameters of the application.
///
///
public List ParameterOverrides
{
get { return this._parameterOverrides; }
set { this._parameterOverrides = value; }
}
// Check to see if ParameterOverrides property is set
internal bool IsSetParameterOverrides()
{
return this._parameterOverrides != null && this._parameterOverrides.Count > 0;
}
///
/// Gets and sets the property ResourceTypes.
///
/// This property corresponds to the parameter of the same name for the AWS CloudFormation
/// CreateChangeSet
/// API.
///
///
public List ResourceTypes
{
get { return this._resourceTypes; }
set { this._resourceTypes = value; }
}
// Check to see if ResourceTypes property is set
internal bool IsSetResourceTypes()
{
return this._resourceTypes != null && this._resourceTypes.Count > 0;
}
///
/// Gets and sets the property RollbackConfiguration.
///
/// This property corresponds to the parameter of the same name for the AWS CloudFormation
/// CreateChangeSet
/// API.
///
///
public RollbackConfiguration RollbackConfiguration
{
get { return this._rollbackConfiguration; }
set { this._rollbackConfiguration = value; }
}
// Check to see if RollbackConfiguration property is set
internal bool IsSetRollbackConfiguration()
{
return this._rollbackConfiguration != null;
}
///
/// Gets and sets the property SemanticVersion.
///
/// The semantic version of the application:
///
///
///
/// https://semver.org/
///
///
public string SemanticVersion
{
get { return this._semanticVersion; }
set { this._semanticVersion = value; }
}
// Check to see if SemanticVersion property is set
internal bool IsSetSemanticVersion()
{
return this._semanticVersion != null;
}
///
/// Gets and sets the property StackName.
///
/// This property corresponds to the parameter of the same name for the AWS CloudFormation
/// CreateChangeSet
/// API.
///
///
[AWSProperty(Required=true)]
public string StackName
{
get { return this._stackName; }
set { this._stackName = value; }
}
// Check to see if StackName property is set
internal bool IsSetStackName()
{
return this._stackName != null;
}
///
/// Gets and sets the property Tags.
///
/// This property corresponds to the parameter of the same name for the AWS CloudFormation
/// CreateChangeSet
/// API.
///
///
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property TemplateId.
///
/// The UUID returned by CreateCloudFormationTemplate.
///
///
///
/// Pattern: [0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}
///
///
public string TemplateId
{
get { return this._templateId; }
set { this._templateId = value; }
}
// Check to see if TemplateId property is set
internal bool IsSetTemplateId()
{
return this._templateId != null;
}
}
}