using System; using System.Collections.Generic; namespace Amazon.Lambda.CloudWatchEvents.ECSEvents { /// /// An EC2 instance that is running the Amazon ECS agent and has been registered with a cluster. /// https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerInstance.html /// public class ContainerInstance { /// /// This parameter returns true if the agent is connected to Amazon ECS. /// Registered instances with an agent that may be unhealthy or stopped return false. Instances without /// a connected agent can't accept placement requests. /// public bool AgentConnected { get; set; } /// /// The status of the most recent agent update. If an update has never been requested, this value is NULL. /// public string AgentUpdateStatus { get; set; } /// /// The elastic network interfaces associated with the container instance. /// public List Attachments { get; set; } /// /// The attributes set for the container instance, either by the Amazon ECS container agent at instance /// registration or manually with the PutAttributes operation. /// public List Attributes { get; set; } /// /// The capacity provider associated with the container instance. /// public string CapacityProviderName { get; set; } /// /// The Amazon Resource Name (ARN) of the container instance. /// The ARN contains the arn:aws:ecs namespace, followed by the region of the container instance, /// the AWS account ID of the container instance owner, the container-instance namespace, /// and then the container instance ID. /// public string ContainerInstanceArn { get; set; } /// /// The EC2 instance ID of the container instance. /// public string Ec2InstanceId { get; set; } /// /// The number of tasks on the container instance that are in the PENDING status. /// public int PendingTasksCount { get; set; } /// /// The Unix time stamp for when the container instance was registered. /// public DateTime RegisteredAt { get; set; } /// /// For CPU and memory resource types, this parameter describes the amount of each resource that was available /// on the container instance when the container agent registered it with Amazon ECS; this value represents /// the total amount of CPU and memory that can be allocated on this container instance to tasks. /// For port resource types, this parameter describes the ports that were reserved by the Amazon ECS container /// agent when it registered the container instance with Amazon ECS. /// public List RegisteredResources { get; set; } /// /// For CPU and memory resource types, this parameter describes the remaining CPU and memory that has not /// already been allocated to tasks and is therefore available for new tasks. /// For port resource types, this parameter describes the ports that were reserved by the Amazon ECS /// container agent (at instance registration time) and any task containers that have reserved port mappings /// on the host (with the host or bridge network mode). /// Any port that is not specified here is available for new tasks. /// public List RemainingResources { get; set; } /// /// The number of tasks on the container instance that are in the RUNNING status. /// public int RunningTasksCount { get; set; } /// /// The status of the container instance. /// The valid values are ACTIVE, INACTIVE, or DRAINING. ACTIVE indicates that the container instance /// can accept tasks. /// DRAINING indicates that new tasks are not placed on the container instance and any service tasks /// running on the container instance are removed if possible. /// public string Status { get; set; } /// /// The reason that the container instance reached its current status. /// public string StatusReason { get; set; } /// /// The metadata that you apply to the container instance to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. /// public List> Tags { get; set; } /// /// The version counter for the container instance. /// Every time a container instance experiences a change that triggers a CloudWatch event, /// the version counter is incremented. If you are replicating your Amazon ECS container instance /// state with CloudWatch Events, you can compare the version of a container instance reported by /// the Amazon ECS APIs with the version reported in CloudWatch Events for the container instance /// (inside the detail object) to verify that the version in your event stream is current. /// public long Version { get; set; } /// /// The version information for the Amazon ECS container agent and Docker daemon running on the container instance. /// public VersionInfo VersionInfo { get; set; } // NOTE: The following properties are not present in the ContainerInstance object documentation but have // been added here for convenience. /// /// The Amazon Resource Name (ARN) of the cluster that hosts the service. /// public string ClusterArn { get; set; } /// /// The Unix time stamp for when the service was last updated. /// public DateTime UpdatedAt { get; set; } } }