/*
* 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 lightsail-2016-11-28.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.Lightsail.Model
{
///
/// Describes an Amazon Lightsail container service.
///
public partial class ContainerService
{
private string _arn;
private string _containerServiceName;
private DateTime? _createdAt;
private ContainerServiceDeployment _currentDeployment;
private bool? _isDisabled;
private ResourceLocation _location;
private ContainerServiceDeployment _nextDeployment;
private ContainerServicePowerName _power;
private string _powerId;
private string _principalArn;
private string _privateDomainName;
private PrivateRegistryAccess _privateRegistryAccess;
private Dictionary> _publicDomainNames = new Dictionary>();
private ResourceType _resourceType;
private int? _scale;
private ContainerServiceState _state;
private ContainerServiceStateDetail _stateDetail;
private List _tags = new List();
private string _url;
///
/// Gets and sets the property Arn.
///
/// The Amazon Resource Name (ARN) of the container service.
///
///
public string Arn
{
get { return this._arn; }
set { this._arn = value; }
}
// Check to see if Arn property is set
internal bool IsSetArn()
{
return this._arn != null;
}
///
/// Gets and sets the property ContainerServiceName.
///
/// The name of the container service.
///
///
[AWSProperty(Min=1, Max=63)]
public string ContainerServiceName
{
get { return this._containerServiceName; }
set { this._containerServiceName = value; }
}
// Check to see if ContainerServiceName property is set
internal bool IsSetContainerServiceName()
{
return this._containerServiceName != null;
}
///
/// Gets and sets the property CreatedAt.
///
/// The timestamp when the container service was created.
///
///
public DateTime CreatedAt
{
get { return this._createdAt.GetValueOrDefault(); }
set { this._createdAt = value; }
}
// Check to see if CreatedAt property is set
internal bool IsSetCreatedAt()
{
return this._createdAt.HasValue;
}
///
/// Gets and sets the property CurrentDeployment.
///
/// An object that describes the current container deployment of the container service.
///
///
public ContainerServiceDeployment CurrentDeployment
{
get { return this._currentDeployment; }
set { this._currentDeployment = value; }
}
// Check to see if CurrentDeployment property is set
internal bool IsSetCurrentDeployment()
{
return this._currentDeployment != null;
}
///
/// Gets and sets the property IsDisabled.
///
/// A Boolean value indicating whether the container service is disabled.
///
///
public bool IsDisabled
{
get { return this._isDisabled.GetValueOrDefault(); }
set { this._isDisabled = value; }
}
// Check to see if IsDisabled property is set
internal bool IsSetIsDisabled()
{
return this._isDisabled.HasValue;
}
///
/// Gets and sets the property Location.
///
/// An object that describes the location of the container service, such as the Amazon
/// Web Services Region and Availability Zone.
///
///
public ResourceLocation Location
{
get { return this._location; }
set { this._location = value; }
}
// Check to see if Location property is set
internal bool IsSetLocation()
{
return this._location != null;
}
///
/// Gets and sets the property NextDeployment.
///
/// An object that describes the next deployment of the container service.
///
///
///
/// This value is null
when there is no deployment in a pending
/// state.
///
///
public ContainerServiceDeployment NextDeployment
{
get { return this._nextDeployment; }
set { this._nextDeployment = value; }
}
// Check to see if NextDeployment property is set
internal bool IsSetNextDeployment()
{
return this._nextDeployment != null;
}
///
/// Gets and sets the property Power.
///
/// The power specification of the container service.
///
///
///
/// The power specifies the amount of RAM, the number of vCPUs, and the base price of
/// the container service.
///
///
public ContainerServicePowerName Power
{
get { return this._power; }
set { this._power = value; }
}
// Check to see if Power property is set
internal bool IsSetPower()
{
return this._power != null;
}
///
/// Gets and sets the property PowerId.
///
/// The ID of the power of the container service.
///
///
public string PowerId
{
get { return this._powerId; }
set { this._powerId = value; }
}
// Check to see if PowerId property is set
internal bool IsSetPowerId()
{
return this._powerId != null;
}
///
/// Gets and sets the property PrincipalArn.
///
/// The principal ARN of the container service.
///
///
///
/// The principal ARN can be used to create a trust relationship between your standard
/// Amazon Web Services account and your Lightsail container service. This allows you
/// to give your service permission to access resources in your standard Amazon Web Services
/// account.
///
///
public string PrincipalArn
{
get { return this._principalArn; }
set { this._principalArn = value; }
}
// Check to see if PrincipalArn property is set
internal bool IsSetPrincipalArn()
{
return this._principalArn != null;
}
///
/// Gets and sets the property PrivateDomainName.
///
/// The private domain name of the container service.
///
///
///
/// The private domain name is accessible only by other resources within the default virtual
/// private cloud (VPC) of your Lightsail account.
///
///
public string PrivateDomainName
{
get { return this._privateDomainName; }
set { this._privateDomainName = value; }
}
// Check to see if PrivateDomainName property is set
internal bool IsSetPrivateDomainName()
{
return this._privateDomainName != null;
}
///
/// Gets and sets the property PrivateRegistryAccess.
///
/// An object that describes the configuration for the container service to access private
/// container image repositories, such as Amazon Elastic Container Registry (Amazon ECR)
/// private repositories.
///
///
///
/// For more information, see Configuring
/// access to an Amazon ECR private repository for an Amazon Lightsail container service
/// in the Amazon Lightsail Developer Guide.
///
///
public PrivateRegistryAccess PrivateRegistryAccess
{
get { return this._privateRegistryAccess; }
set { this._privateRegistryAccess = value; }
}
// Check to see if PrivateRegistryAccess property is set
internal bool IsSetPrivateRegistryAccess()
{
return this._privateRegistryAccess != null;
}
///
/// Gets and sets the property PublicDomainNames.
///
/// The public domain name of the container service, such as example.com
/// and www.example.com
.
///
///
///
/// You can specify up to four public domain names for a container service. The domain
/// names that you specify are used when you create a deployment with a container configured
/// as the public endpoint of your container service.
///
///
///
/// If you don't specify public domain names, then you can use the default domain of the
/// container service.
///
///
///
/// You must create and validate an SSL/TLS certificate before you can use public domain
/// names with your container service. Use the CreateCertificate
action to
/// create a certificate for the public domain names you want to use with your container
/// service.
///
///
///
/// See CreateContainerService
or UpdateContainerService
for
/// information about how to specify public domain names for your Lightsail container
/// service.
///
///
public Dictionary> PublicDomainNames
{
get { return this._publicDomainNames; }
set { this._publicDomainNames = value; }
}
// Check to see if PublicDomainNames property is set
internal bool IsSetPublicDomainNames()
{
return this._publicDomainNames != null && this._publicDomainNames.Count > 0;
}
///
/// Gets and sets the property ResourceType.
///
/// The Lightsail resource type of the container service (i.e., ContainerService
).
///
///
public ResourceType ResourceType
{
get { return this._resourceType; }
set { this._resourceType = value; }
}
// Check to see if ResourceType property is set
internal bool IsSetResourceType()
{
return this._resourceType != null;
}
///
/// Gets and sets the property Scale.
///
/// The scale specification of the container service.
///
///
///
/// The scale specifies the allocated compute nodes of the container service.
///
///
[AWSProperty(Min=1, Max=20)]
public int Scale
{
get { return this._scale.GetValueOrDefault(); }
set { this._scale = value; }
}
// Check to see if Scale property is set
internal bool IsSetScale()
{
return this._scale.HasValue;
}
///
/// Gets and sets the property State.
///
/// The current state of the container service.
///
///
///
/// The following container service states are possible:
///
/// -
///
///
PENDING
- The container service is being created.
///
/// -
///
///
READY
- The container service is running but it does not have an active
/// container deployment.
///
/// -
///
///
DEPLOYING
- The container service is launching a container deployment.
///
/// -
///
///
RUNNING
- The container service is running and it has an active container
/// deployment.
///
/// -
///
///
UPDATING
- The container service capacity or its custom domains are
/// being updated.
///
/// -
///
///
DELETING
- The container service is being deleted.
///
/// -
///
///
DISABLED
- The container service is disabled, and its active deployment
/// and containers, if any, are shut down.
///
///
///
public ContainerServiceState State
{
get { return this._state; }
set { this._state = value; }
}
// Check to see if State property is set
internal bool IsSetState()
{
return this._state != null;
}
///
/// Gets and sets the property StateDetail.
///
/// An object that describes the current state of the container service.
///
///
///
/// The state detail is populated only when a container service is in a PENDING
,
/// DEPLOYING
, or UPDATING
state.
///
///
///
public ContainerServiceStateDetail StateDetail
{
get { return this._stateDetail; }
set { this._stateDetail = value; }
}
// Check to see if StateDetail property is set
internal bool IsSetStateDetail()
{
return this._stateDetail != null;
}
///
/// Gets and sets the property Tags.
///
/// The tag keys and optional values for the resource. For more information about tags
/// in Lightsail, see the Amazon
/// Lightsail Developer Guide.
///
///
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 Url.
///
/// The publicly accessible URL of the container service.
///
///
///
/// If no public endpoint is specified in the currentDeployment
, this URL
/// returns a 404 response.
///
///
public string Url
{
get { return this._url; }
set { this._url = value; }
}
// Check to see if Url property is set
internal bool IsSetUrl()
{
return this._url != null;
}
}
}