/*
* 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 CreateApp operation.
/// Creates an app for a specified stack. For more information, see Creating
/// Apps.
///
///
///
/// 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 CreateAppRequest : AmazonOpsWorksRequest
{
private Source _appSource;
private Dictionary _attributes = new Dictionary();
private List _dataSources = new List();
private string _description;
private List _domains = new List();
private bool? _enableSsl;
private List _environment = new List();
private string _name;
private string _shortname;
private SslConfiguration _sslConfiguration;
private string _stackId;
private AppType _type;
///
/// Gets and sets the property AppSource.
///
/// A Source
object that specifies the app repository.
///
///
public Source AppSource
{
get { return this._appSource; }
set { this._appSource = value; }
}
// Check to see if AppSource property is set
internal bool IsSetAppSource()
{
return this._appSource != 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 DataSources.
///
/// The app's data source.
///
///
public List DataSources
{
get { return this._dataSources; }
set { this._dataSources = value; }
}
// Check to see if DataSources property is set
internal bool IsSetDataSources()
{
return this._dataSources != null && this._dataSources.Count > 0;
}
///
/// Gets and sets the property Description.
///
/// A description of the app.
///
///
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 Domains.
///
/// The app virtual host settings, with multiple domains separated by commas. For example:
/// 'www.example.com, example.com'
///
///
public List Domains
{
get { return this._domains; }
set { this._domains = value; }
}
// Check to see if Domains property is set
internal bool IsSetDomains()
{
return this._domains != null && this._domains.Count > 0;
}
///
/// Gets and sets the property EnableSsl.
///
/// Whether to enable SSL for the app.
///
///
public bool EnableSsl
{
get { return this._enableSsl.GetValueOrDefault(); }
set { this._enableSsl = value; }
}
// Check to see if EnableSsl property is set
internal bool IsSetEnableSsl()
{
return this._enableSsl.HasValue;
}
///
/// Gets and sets the property Environment.
///
/// An array of EnvironmentVariable
objects that specify environment variables
/// to be associated with the app. After you deploy the app, these variables are defined
/// on the associated app server instance. For more information, see
/// Environment Variables.
///
///
///
/// There is no specific limit on the number of environment variables. However, the size
/// of the associated data structure - which includes the variables' names, values, and
/// protected flag values - cannot exceed 20 KB. This limit should accommodate most if
/// not all use cases. Exceeding it will cause an exception with the message, "Environment:
/// is too large (maximum is 20KB)."
///
///
///
/// If you have specified one or more environment variables, you cannot modify the stack's
/// Chef version.
///
///
///
public List Environment
{
get { return this._environment; }
set { this._environment = value; }
}
// Check to see if Environment property is set
internal bool IsSetEnvironment()
{
return this._environment != null && this._environment.Count > 0;
}
///
/// Gets and sets the property Name.
///
/// The app name.
///
///
[AWSProperty(Required=true)]
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 Shortname.
///
/// The app's short name.
///
///
public string Shortname
{
get { return this._shortname; }
set { this._shortname = value; }
}
// Check to see if Shortname property is set
internal bool IsSetShortname()
{
return this._shortname != null;
}
///
/// Gets and sets the property SslConfiguration.
///
/// An SslConfiguration
object with the SSL configuration.
///
///
public SslConfiguration SslConfiguration
{
get { return this._sslConfiguration; }
set { this._sslConfiguration = value; }
}
// Check to see if SslConfiguration property is set
internal bool IsSetSslConfiguration()
{
return this._sslConfiguration != 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 Type.
///
/// The app type. Each supported type is associated with a particular layer. For example,
/// PHP applications are associated with a PHP layer. AWS OpsWorks Stacks deploys an application
/// to those instances that are members of the corresponding layer. If your app isn't
/// one of the standard types, or you prefer to implement your own Deploy recipes, specify
/// other
.
///
///
[AWSProperty(Required=true)]
public AppType Type
{
get { return this._type; }
set { this._type = value; }
}
// Check to see if Type property is set
internal bool IsSetType()
{
return this._type != null;
}
}
}