/*
* 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 securityhub-2018-10-26.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.SecurityHub.Model
{
///
/// Provides details about a service within an ECS cluster.
///
public partial class AwsEcsServiceDetails
{
private List _capacityProviderStrategy = new List();
private string _cluster;
private AwsEcsServiceDeploymentConfigurationDetails _deploymentConfiguration;
private AwsEcsServiceDeploymentControllerDetails _deploymentController;
private int? _desiredCount;
private bool? _enableEcsManagedTags;
private bool? _enableExecuteCommand;
private int? _healthCheckGracePeriodSeconds;
private string _launchType;
private List _loadBalancers = new List();
private string _name;
private AwsEcsServiceNetworkConfigurationDetails _networkConfiguration;
private List _placementConstraints = new List();
private List _placementStrategies = new List();
private string _platformVersion;
private string _propagateTags;
private string _role;
private string _schedulingStrategy;
private string _serviceArn;
private string _serviceName;
private List _serviceRegistries = new List();
private string _taskDefinition;
///
/// Gets and sets the property CapacityProviderStrategy.
///
/// The capacity provider strategy that the service uses.
///
///
public List CapacityProviderStrategy
{
get { return this._capacityProviderStrategy; }
set { this._capacityProviderStrategy = value; }
}
// Check to see if CapacityProviderStrategy property is set
internal bool IsSetCapacityProviderStrategy()
{
return this._capacityProviderStrategy != null && this._capacityProviderStrategy.Count > 0;
}
///
/// Gets and sets the property Cluster.
///
/// The ARN of the cluster that hosts the service.
///
///
public string Cluster
{
get { return this._cluster; }
set { this._cluster = value; }
}
// Check to see if Cluster property is set
internal bool IsSetCluster()
{
return this._cluster != null;
}
///
/// Gets and sets the property DeploymentConfiguration.
///
/// Deployment parameters for the service. Includes the number of tasks that run and the
/// order in which to start and stop tasks.
///
///
public AwsEcsServiceDeploymentConfigurationDetails DeploymentConfiguration
{
get { return this._deploymentConfiguration; }
set { this._deploymentConfiguration = value; }
}
// Check to see if DeploymentConfiguration property is set
internal bool IsSetDeploymentConfiguration()
{
return this._deploymentConfiguration != null;
}
///
/// Gets and sets the property DeploymentController.
///
/// Contains the deployment controller type that the service uses.
///
///
public AwsEcsServiceDeploymentControllerDetails DeploymentController
{
get { return this._deploymentController; }
set { this._deploymentController = value; }
}
// Check to see if DeploymentController property is set
internal bool IsSetDeploymentController()
{
return this._deploymentController != null;
}
///
/// Gets and sets the property DesiredCount.
///
/// The number of instantiations of the task definition to run on the service.
///
///
public int DesiredCount
{
get { return this._desiredCount.GetValueOrDefault(); }
set { this._desiredCount = value; }
}
// Check to see if DesiredCount property is set
internal bool IsSetDesiredCount()
{
return this._desiredCount.HasValue;
}
///
/// Gets and sets the property EnableEcsManagedTags.
///
/// Whether to enable Amazon ECS managed tags for the tasks in the service.
///
///
public bool EnableEcsManagedTags
{
get { return this._enableEcsManagedTags.GetValueOrDefault(); }
set { this._enableEcsManagedTags = value; }
}
// Check to see if EnableEcsManagedTags property is set
internal bool IsSetEnableEcsManagedTags()
{
return this._enableEcsManagedTags.HasValue;
}
///
/// Gets and sets the property EnableExecuteCommand.
///
/// Whether the execute command functionality is enabled for the service.
///
///
public bool EnableExecuteCommand
{
get { return this._enableExecuteCommand.GetValueOrDefault(); }
set { this._enableExecuteCommand = value; }
}
// Check to see if EnableExecuteCommand property is set
internal bool IsSetEnableExecuteCommand()
{
return this._enableExecuteCommand.HasValue;
}
///
/// Gets and sets the property HealthCheckGracePeriodSeconds.
///
/// After a task starts, the amount of time in seconds that the Amazon ECS service scheduler
/// ignores unhealthy Elastic Load Balancing target health checks.
///
///
public int HealthCheckGracePeriodSeconds
{
get { return this._healthCheckGracePeriodSeconds.GetValueOrDefault(); }
set { this._healthCheckGracePeriodSeconds = value; }
}
// Check to see if HealthCheckGracePeriodSeconds property is set
internal bool IsSetHealthCheckGracePeriodSeconds()
{
return this._healthCheckGracePeriodSeconds.HasValue;
}
///
/// Gets and sets the property LaunchType.
///
/// The launch type that the service uses.
///
///
///
/// Valid values: EC2
| FARGATE
| EXTERNAL
///
///
public string LaunchType
{
get { return this._launchType; }
set { this._launchType = value; }
}
// Check to see if LaunchType property is set
internal bool IsSetLaunchType()
{
return this._launchType != null;
}
///
/// Gets and sets the property LoadBalancers.
///
/// Information about the load balancers that the service uses.
///
///
public List LoadBalancers
{
get { return this._loadBalancers; }
set { this._loadBalancers = value; }
}
// Check to see if LoadBalancers property is set
internal bool IsSetLoadBalancers()
{
return this._loadBalancers != null && this._loadBalancers.Count > 0;
}
///
/// Gets and sets the property Name.
///
/// The name of the service.
///
///
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 NetworkConfiguration.
///
/// For tasks that use the awsvpc
networking mode, the VPC subnet and security
/// group configuration.
///
///
public AwsEcsServiceNetworkConfigurationDetails NetworkConfiguration
{
get { return this._networkConfiguration; }
set { this._networkConfiguration = value; }
}
// Check to see if NetworkConfiguration property is set
internal bool IsSetNetworkConfiguration()
{
return this._networkConfiguration != null;
}
///
/// Gets and sets the property PlacementConstraints.
///
/// The placement constraints for the tasks in the service.
///
///
public List PlacementConstraints
{
get { return this._placementConstraints; }
set { this._placementConstraints = value; }
}
// Check to see if PlacementConstraints property is set
internal bool IsSetPlacementConstraints()
{
return this._placementConstraints != null && this._placementConstraints.Count > 0;
}
///
/// Gets and sets the property PlacementStrategies.
///
/// Information about how tasks for the service are placed.
///
///
public List PlacementStrategies
{
get { return this._placementStrategies; }
set { this._placementStrategies = value; }
}
// Check to see if PlacementStrategies property is set
internal bool IsSetPlacementStrategies()
{
return this._placementStrategies != null && this._placementStrategies.Count > 0;
}
///
/// Gets and sets the property PlatformVersion.
///
/// The platform version on which to run the service. Only specified for tasks that are
/// hosted on Fargate. If a platform version is not specified, the LATEST
/// platform version is used by default.
///
///
public string PlatformVersion
{
get { return this._platformVersion; }
set { this._platformVersion = value; }
}
// Check to see if PlatformVersion property is set
internal bool IsSetPlatformVersion()
{
return this._platformVersion != null;
}
///
/// Gets and sets the property PropagateTags.
///
/// Indicates whether to propagate the tags from the task definition to the task or from
/// the service to the task. If no value is provided, then tags are not propagated.
///
///
///
/// Valid values: TASK_DEFINITION
| SERVICE
///
///
public string PropagateTags
{
get { return this._propagateTags; }
set { this._propagateTags = value; }
}
// Check to see if PropagateTags property is set
internal bool IsSetPropagateTags()
{
return this._propagateTags != null;
}
///
/// Gets and sets the property Role.
///
/// The ARN of the IAM role that is associated with the service. The role allows the Amazon
/// ECS container agent to register container instances with an Elastic Load Balancing
/// load balancer.
///
///
public string Role
{
get { return this._role; }
set { this._role = value; }
}
// Check to see if Role property is set
internal bool IsSetRole()
{
return this._role != null;
}
///
/// Gets and sets the property SchedulingStrategy.
///
/// The scheduling strategy to use for the service.
///
///
///
/// The REPLICA
scheduling strategy places and maintains the desired number
/// of tasks across the cluster. By default, the service scheduler spreads tasks across
/// Availability Zones. Task placement strategies and constraints are used to customize
/// task placement decisions.
///
///
///
/// The DAEMON
scheduling strategy deploys exactly one task on each active
/// container instance that meets all of the task placement constraints that are specified
/// in the cluster. The service scheduler also evaluates the task placement constraints
/// for running tasks and stops tasks that do not meet the placement constraints.
///
///
///
/// Valid values: REPLICA
| DAEMON
///
///
public string SchedulingStrategy
{
get { return this._schedulingStrategy; }
set { this._schedulingStrategy = value; }
}
// Check to see if SchedulingStrategy property is set
internal bool IsSetSchedulingStrategy()
{
return this._schedulingStrategy != null;
}
///
/// Gets and sets the property ServiceArn.
///
/// The ARN of the service.
///
///
public string ServiceArn
{
get { return this._serviceArn; }
set { this._serviceArn = value; }
}
// Check to see if ServiceArn property is set
internal bool IsSetServiceArn()
{
return this._serviceArn != null;
}
///
/// Gets and sets the property ServiceName.
///
/// The name of the service.
///
///
///
/// The name can contain up to 255 characters. It can use letters, numbers, underscores,
/// and hyphens.
///
///
public string ServiceName
{
get { return this._serviceName; }
set { this._serviceName = value; }
}
// Check to see if ServiceName property is set
internal bool IsSetServiceName()
{
return this._serviceName != null;
}
///
/// Gets and sets the property ServiceRegistries.
///
/// Information about the service discovery registries to assign to the service.
///
///
public List ServiceRegistries
{
get { return this._serviceRegistries; }
set { this._serviceRegistries = value; }
}
// Check to see if ServiceRegistries property is set
internal bool IsSetServiceRegistries()
{
return this._serviceRegistries != null && this._serviceRegistries.Count > 0;
}
///
/// Gets and sets the property TaskDefinition.
///
/// The task definition to use for tasks in the service.
///
///
public string TaskDefinition
{
get { return this._taskDefinition; }
set { this._taskDefinition = value; }
}
// Check to see if TaskDefinition property is set
internal bool IsSetTaskDefinition()
{
return this._taskDefinition != null;
}
}
}