ECS Container Instance Change

This is emitted when an ECS container instance changes state. See AWS documentation for more information on when this might be emitted.

Primary Model

pydantic model botocraft.eventbridge.ecs.ECSContainerInstanceStateChangeEvent[source]

Bases: EventBridgeEvent, ECSContainerInstanceStateChangeEvent

EventBridge event for ECS container instance state change.

Show JSON schema
{
   "title": "ECSContainerInstanceStateChangeEvent",
   "description": "EventBridge event for ECS container instance state change.",
   "type": "object",
   "properties": {
      "detail": {
         "$ref": "#/$defs/ECSContainerInstanceStateChange"
      },
      "detail-type": {
         "title": "Detail-Type",
         "type": "string"
      },
      "resources": {
         "items": {
            "type": "string"
         },
         "title": "Resources",
         "type": "array"
      },
      "id": {
         "title": "Id",
         "type": "string"
      },
      "source": {
         "title": "Source",
         "type": "string"
      },
      "time": {
         "format": "date-time",
         "title": "Time",
         "type": "string"
      },
      "region": {
         "title": "Region",
         "type": "string"
      },
      "version": {
         "title": "Version",
         "type": "string"
      },
      "account": {
         "title": "Account",
         "type": "string"
      },
      "session": {
         "anyOf": [
            {},
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Session"
      }
   },
   "$defs": {
      "AttachmentDetails": {
         "description": "Details of an attachment, used to represent the details of an attachment in\nthe context of an ECS container instance state change event.",
         "properties": {
            "id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            },
            "type": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Type"
            },
            "status": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Status"
            },
            "details": {
               "anyOf": [
                  {
                     "items": {
                        "$ref": "#/$defs/Detail"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Details"
            }
         },
         "title": "AttachmentDetails",
         "type": "object"
      },
      "AttributesDetails": {
         "description": "Details of an attribute.",
         "properties": {
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Name"
            },
            "value": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Value"
            }
         },
         "title": "AttributesDetails",
         "type": "object"
      },
      "Detail": {
         "description": "A detail of an :py:class:`AttachmentDetails` object.",
         "properties": {
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Name"
            },
            "value": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Value"
            }
         },
         "title": "Detail",
         "type": "object"
      },
      "ECSContainerInstanceStateChange": {
         "description": "That main body of the ECS Container Instance State Change event.",
         "properties": {
            "versionInfo": {
               "$ref": "#/$defs/VersionInfo"
            },
            "ec2InstanceId": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Ec2Instanceid"
            },
            "attachments": {
               "anyOf": [
                  {
                     "items": {
                        "$ref": "#/$defs/AttachmentDetails"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Attachments"
            },
            "registeredResources": {
               "items": {
                  "$ref": "#/$defs/ResourceDetails"
               },
               "title": "Registeredresources",
               "type": "array"
            },
            "remainingResources": {
               "items": {
                  "$ref": "#/$defs/ResourceDetails"
               },
               "title": "Remainingresources",
               "type": "array"
            },
            "runningTasksCount": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Runningtaskscount"
            },
            "registeredAt": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Registeredat"
            },
            "agentConnected": {
               "title": "Agentconnected",
               "type": "boolean"
            },
            "agentUpdateStatus": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Agentupdatestatus"
            },
            "version": {
               "title": "Version",
               "type": "number"
            },
            "pendingTasksCount": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Pendingtaskscount"
            },
            "clusterArn": {
               "title": "Clusterarn",
               "type": "string"
            },
            "attributes": {
               "anyOf": [
                  {
                     "items": {
                        "$ref": "#/$defs/AttributesDetails"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Attributes"
            },
            "containerInstanceArn": {
               "title": "Containerinstancearn",
               "type": "string"
            },
            "status": {
               "title": "Status",
               "type": "string"
            },
            "statusReason": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Statusreason"
            },
            "updatedAt": {
               "format": "date-time",
               "title": "Updatedat",
               "type": "string"
            },
            "accountType": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Accounttype"
            }
         },
         "required": [
            "versionInfo",
            "registeredResources",
            "remainingResources",
            "agentConnected",
            "version",
            "clusterArn",
            "containerInstanceArn",
            "status",
            "updatedAt"
         ],
         "title": "ECSContainerInstanceStateChange",
         "type": "object"
      },
      "ResourceDetails": {
         "description": "Details of a resource (CPU, Memory, etc).\n\n.. note::\n\n    Only one of the following values will be set, depending on the type of\n    resource.  The type of resource is specified in the `type` field.\n    The type of resource is one of the following:\n    - `INTEGER`: :py:attr:`integerValue`\n    - `LONG`: :py:attr:`longValue`\n    - `DOUBLE`: :py:attr:`doubleValue`\n    - `STRING`: :py:attr:`stringSetValue`",
         "properties": {
            "integerValue": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Integervalue"
            },
            "longValue": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Longvalue"
            },
            "doubleValue": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Doublevalue"
            },
            "name": {
               "title": "Name",
               "type": "string"
            },
            "stringSetValue": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Stringsetvalue"
            },
            "type": {
               "title": "Type",
               "type": "string"
            }
         },
         "required": [
            "name",
            "type"
         ],
         "title": "ResourceDetails",
         "type": "object"
      },
      "VersionInfo": {
         "description": "Version information about the ECS agent and docker.",
         "properties": {
            "dockerVersion": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Dockerversion"
            },
            "agentHash": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Agenthash"
            },
            "agentVersion": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Agentversion"
            }
         },
         "title": "VersionInfo",
         "type": "object"
      }
   },
   "required": [
      "detail",
      "detail-type",
      "resources",
      "id",
      "source",
      "time",
      "region",
      "version",
      "account"
   ]
}

Fields:
field account: str [Required]

The account the event was generated in

field detail: ECSContainerInstanceStateChange [Required]

Where the meat of the event is

field detail_type: str [Required] (alias 'detail-type')

The human readable name of the event

field id: str [Required]

The ID of the event

field region: str [Required]

The region the event was generated in

field resources: list[str] [Required]

The resources the event applies to. This will be a list of ARNs

field source: str [Required]

The source of the event, e.g. “aws.ecs”

field time: datetime [Required]

The time the event was generated, in UTC

field version: str [Required]

The version of the schema for the event

classmethod construct(_fields_set: set[str] | None = None, **values: Any) Self
classmethod model_construct(_fields_set: set[str] | None = None, **values: Any) Self

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == ‘allow’, then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == ‘ignore’ (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == ‘forbid’ does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set – A set of field names that were originally explicitly set during instantiation. If provided, this is directly used for the [model_fields_set][pydantic.BaseModel.model_fields_set] attribute. Otherwise, the field names from the values argument will be used.

  • values – Trusted or pre-validated data dictionary.

Returns:

A new instance of the Model class with validated data.

model_copy(*, update: Mapping[str, Any] | None = None, deep: bool = False) Self
!!! abstract “Usage Documentation”

[model_copy](../concepts/serialization.md#model_copy)

Returns a copy of the model.

!!! note

The underlying instance’s [__dict__][object.__dict__] attribute is copied. This might have unexpected side effects if you store anything in it, on top of the model fields (e.g. the value of [cached properties][functools.cached_property]).

Parameters:
  • update – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep – Set to True to make a deep copy of the model.

Returns:

New model instance.

model_dump_json(*, indent: int | None = None, include: set[int] | set[str] | Mapping[int, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, exclude: set[int] | set[str] | Mapping[int, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, set[int] | set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, context: Any | None = None, by_alias: bool | None = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, round_trip: bool = False, warnings: bool | Literal['none', 'warn', 'error'] = True, fallback: Callable[[Any], Any] | None = None, serialize_as_any: bool = False) str
!!! abstract “Usage Documentation”

[model_dump_json](../concepts/serialization.md#modelmodel_dump_json)

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include – Field(s) to include in the JSON output.

  • exclude – Field(s) to exclude from the JSON output.

  • context – Additional context to pass to the serializer.

  • by_alias – Whether to serialize using field aliases.

  • exclude_unset – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults – Whether to exclude fields that are set to their default value.

  • exclude_none – Whether to exclude fields that have a value of None.

  • round_trip – If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • fallback – A function to call when an unknown value is encountered. If not provided, a [PydanticSerializationError][pydantic_core.PydanticSerializationError] error is raised.

  • serialize_as_any – Whether to serialize fields with duck-typing serialization behavior.

Returns:

A JSON string representation of the model.

classmethod model_validate(obj: Any, *, strict: bool | None = None, from_attributes: bool | None = None, context: Any | None = None, by_alias: bool | None = None, by_name: bool | None = None) Self

Validate a pydantic model instance.

Parameters:
  • obj – The object to validate.

  • strict – Whether to enforce types strictly.

  • from_attributes – Whether to extract data from object attributes.

  • context – Additional context to pass to the validator.

  • by_alias – Whether to use the field’s alias when validating against the provided input data.

  • by_name – Whether to use the field’s name when validating against the provided input data.

Raises:

ValidationError – If the object could not be validated.

Returns:

The validated model instance.

classmethod model_validate_json(json_data: str | bytes | bytearray, *, strict: bool | None = None, context: Any | None = None, by_alias: bool | None = None, by_name: bool | None = None) Self
!!! abstract “Usage Documentation”

[JSON Parsing](../concepts/json.md#json-parsing)

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data – The JSON data to validate.

  • strict – Whether to enforce types strictly.

  • context – Extra variables to pass to the validator.

  • by_alias – Whether to use the field’s alias when validating against the provided input data.

  • by_name – Whether to use the field’s name when validating against the provided input data.

Returns:

The validated Pydantic model.

Raises:

ValidationError – If json_data is not a JSON string or the object could not be validated.

classmethod model_validate_strings(obj: Any, *, strict: bool | None = None, context: Any | None = None, by_alias: bool | None = None, by_name: bool | None = None) Self

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj – The object containing string data to validate.

  • strict – Whether to enforce types strictly.

  • context – Extra variables to pass to the validator.

  • by_alias – Whether to use the field’s alias when validating against the provided input data.

  • by_name – Whether to use the field’s name when validating against the provided input data.

Returns:

The validated Pydantic model.

classmethod parse_file(path: str | Path, *, content_type: str | None = None, encoding: str = 'utf8', proto: DeprecatedParseProtocol | None = None, allow_pickle: bool = False) Self
classmethod parse_obj(obj: Any) Self
classmethod parse_raw(b: str | bytes, *, content_type: str | None = None, encoding: str = 'utf8', proto: DeprecatedParseProtocol | None = None, allow_pickle: bool = False) Self
property cluster: Cluster

Get the cluster name from the event.

property container_instance: ContainerInstance

Get the container instance ARN from the event.

property registeredResources: SystemResources

Return the full system resources (CPU and memory) of the container instance.

property remainingResources: SystemResources

Return the remaining resources (CPU and memory) on the container instance.

session: Any | None = FieldInfo(annotation=Union[Any, NoneType], required=False, default=None, exclude=True)
class botocraft.eventbridge.ecs.SystemResources(cpu: float | None = None, memory: float | None = None)[source]

Bases: object

A dataclass that represents the system resources of a container instance, container or task.

cpu: float | None = None

The CPU units available on the container instance, container or task.

memory: float | None = None

The memory available on the container instance, container or task.

Raw Event Models from AWS Schema

pydantic model botocraft.eventbridge.raw.ecs.container_instance_change.AttachmentDetails[source]

Bases: BaseModel

Details of an attachment, used to represent the details of an attachment in the context of an ECS container instance state change event.

Show JSON schema
{
   "title": "AttachmentDetails",
   "description": "Details of an attachment, used to represent the details of an attachment in\nthe context of an ECS container instance state change event.",
   "type": "object",
   "properties": {
      "id": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Id"
      },
      "type": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Type"
      },
      "status": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Status"
      },
      "details": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/Detail"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Details"
      }
   },
   "$defs": {
      "Detail": {
         "description": "A detail of an :py:class:`AttachmentDetails` object.",
         "properties": {
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Name"
            },
            "value": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Value"
            }
         },
         "title": "Detail",
         "type": "object"
      }
   }
}

Fields:
field details: list[Detail] | None = None

The details of the attachment

field id: str | None = None

The attachment ID

field status: str | None = None

The status of the attachment

field type: str | None = None

The type of the attachment

pydantic model botocraft.eventbridge.raw.ecs.container_instance_change.AttributesDetails[source]

Bases: BaseModel

Details of an attribute.

Show JSON schema
{
   "title": "AttributesDetails",
   "description": "Details of an attribute.",
   "type": "object",
   "properties": {
      "name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Name"
      },
      "value": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Value"
      }
   }
}

Fields:
field name: str | None = None

The name of the attribute

field value: str | None = None

The value of the attribute

pydantic model botocraft.eventbridge.raw.ecs.container_instance_change.Detail[source]

Bases: BaseModel

A detail of an AttachmentDetails object.

Show JSON schema
{
   "title": "Detail",
   "description": "A detail of an :py:class:`AttachmentDetails` object.",
   "type": "object",
   "properties": {
      "name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Name"
      },
      "value": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Value"
      }
   }
}

Fields:
field name: str | None = None

The name of the detail

field value: str | None = None

The value of the detail

pydantic model botocraft.eventbridge.raw.ecs.container_instance_change.ECSContainerInstanceStateChange[source]

Bases: BaseModel

That main body of the ECS Container Instance State Change event.

Show JSON schema
{
   "title": "ECSContainerInstanceStateChange",
   "description": "That main body of the ECS Container Instance State Change event.",
   "type": "object",
   "properties": {
      "versionInfo": {
         "$ref": "#/$defs/VersionInfo"
      },
      "ec2InstanceId": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Ec2Instanceid"
      },
      "attachments": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/AttachmentDetails"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Attachments"
      },
      "registeredResources": {
         "items": {
            "$ref": "#/$defs/ResourceDetails"
         },
         "title": "Registeredresources",
         "type": "array"
      },
      "remainingResources": {
         "items": {
            "$ref": "#/$defs/ResourceDetails"
         },
         "title": "Remainingresources",
         "type": "array"
      },
      "runningTasksCount": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Runningtaskscount"
      },
      "registeredAt": {
         "anyOf": [
            {
               "format": "date-time",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Registeredat"
      },
      "agentConnected": {
         "title": "Agentconnected",
         "type": "boolean"
      },
      "agentUpdateStatus": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Agentupdatestatus"
      },
      "version": {
         "title": "Version",
         "type": "number"
      },
      "pendingTasksCount": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Pendingtaskscount"
      },
      "clusterArn": {
         "title": "Clusterarn",
         "type": "string"
      },
      "attributes": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/AttributesDetails"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Attributes"
      },
      "containerInstanceArn": {
         "title": "Containerinstancearn",
         "type": "string"
      },
      "status": {
         "title": "Status",
         "type": "string"
      },
      "statusReason": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Statusreason"
      },
      "updatedAt": {
         "format": "date-time",
         "title": "Updatedat",
         "type": "string"
      },
      "accountType": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Accounttype"
      }
   },
   "$defs": {
      "AttachmentDetails": {
         "description": "Details of an attachment, used to represent the details of an attachment in\nthe context of an ECS container instance state change event.",
         "properties": {
            "id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            },
            "type": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Type"
            },
            "status": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Status"
            },
            "details": {
               "anyOf": [
                  {
                     "items": {
                        "$ref": "#/$defs/Detail"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Details"
            }
         },
         "title": "AttachmentDetails",
         "type": "object"
      },
      "AttributesDetails": {
         "description": "Details of an attribute.",
         "properties": {
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Name"
            },
            "value": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Value"
            }
         },
         "title": "AttributesDetails",
         "type": "object"
      },
      "Detail": {
         "description": "A detail of an :py:class:`AttachmentDetails` object.",
         "properties": {
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Name"
            },
            "value": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Value"
            }
         },
         "title": "Detail",
         "type": "object"
      },
      "ResourceDetails": {
         "description": "Details of a resource (CPU, Memory, etc).\n\n.. note::\n\n    Only one of the following values will be set, depending on the type of\n    resource.  The type of resource is specified in the `type` field.\n    The type of resource is one of the following:\n    - `INTEGER`: :py:attr:`integerValue`\n    - `LONG`: :py:attr:`longValue`\n    - `DOUBLE`: :py:attr:`doubleValue`\n    - `STRING`: :py:attr:`stringSetValue`",
         "properties": {
            "integerValue": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Integervalue"
            },
            "longValue": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Longvalue"
            },
            "doubleValue": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Doublevalue"
            },
            "name": {
               "title": "Name",
               "type": "string"
            },
            "stringSetValue": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Stringsetvalue"
            },
            "type": {
               "title": "Type",
               "type": "string"
            }
         },
         "required": [
            "name",
            "type"
         ],
         "title": "ResourceDetails",
         "type": "object"
      },
      "VersionInfo": {
         "description": "Version information about the ECS agent and docker.",
         "properties": {
            "dockerVersion": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Dockerversion"
            },
            "agentHash": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Agenthash"
            },
            "agentVersion": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Agentversion"
            }
         },
         "title": "VersionInfo",
         "type": "object"
      }
   },
   "required": [
      "versionInfo",
      "registeredResources",
      "remainingResources",
      "agentConnected",
      "version",
      "clusterArn",
      "containerInstanceArn",
      "status",
      "updatedAt"
   ]
}

Fields:
field accountType: str | None = None

not sure what this is

field agentConnected: bool [Required]

Whether the container instance is connected to the ECS agent

field agentUpdateStatus: str | None = None

Whether the ECS agent needs to be updated

field attachments: list[AttachmentDetails] | None = None

Any attachments associated with the container instance

field attributes: list[AttributesDetails] | None = None

The attributes associated with the container instance

field clusterArn: str [Required]

The ARN of the ECS cluster the container instance is registered to

field containerInstanceArn: str [Required]

The ARN of the container instance

field ec2InstanceId: str | None = None

The ID of the EC2 instance

field pendingTasksCount: float | None = None

The number of tasks that are pending on the container instance

field registeredAt: datetime | None = None

The time the container instance was registered

field registeredResources: list[ResourceDetails] [Required]

The list of registered resources associated with the container instance e.g. CPU, memory, etc.

field remainingResources: list[ResourceDetails] [Required]

The list of remaining resources associated with the container instance e.g. CPU, memory, etc.

field runningTasksCount: float | None = None

How many tasks are running on the container instance

field status: str [Required]

The status of the container instance

field statusReason: str | None = None

A reason for the status of the container instance

field updatedAt: datetime [Required]

The time the container instance was updated

field version: float [Required]

not sure what this is

field versionInfo: VersionInfo [Required]

Info about docker and the ECS agent

pydantic model botocraft.eventbridge.raw.ecs.container_instance_change.ECSContainerInstanceStateChangeEvent[source]

Bases: BaseModel

Show JSON schema
{
   "title": "ECSContainerInstanceStateChangeEvent",
   "type": "object",
   "properties": {
      "detail": {
         "$ref": "#/$defs/ECSContainerInstanceStateChange"
      },
      "detail-type": {
         "title": "Detail-Type",
         "type": "string"
      },
      "resources": {
         "items": {
            "type": "string"
         },
         "title": "Resources",
         "type": "array"
      },
      "id": {
         "title": "Id",
         "type": "string"
      },
      "source": {
         "title": "Source",
         "type": "string"
      },
      "time": {
         "format": "date-time",
         "title": "Time",
         "type": "string"
      },
      "region": {
         "title": "Region",
         "type": "string"
      },
      "version": {
         "title": "Version",
         "type": "string"
      },
      "account": {
         "title": "Account",
         "type": "string"
      }
   },
   "$defs": {
      "AttachmentDetails": {
         "description": "Details of an attachment, used to represent the details of an attachment in\nthe context of an ECS container instance state change event.",
         "properties": {
            "id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Id"
            },
            "type": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Type"
            },
            "status": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Status"
            },
            "details": {
               "anyOf": [
                  {
                     "items": {
                        "$ref": "#/$defs/Detail"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Details"
            }
         },
         "title": "AttachmentDetails",
         "type": "object"
      },
      "AttributesDetails": {
         "description": "Details of an attribute.",
         "properties": {
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Name"
            },
            "value": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Value"
            }
         },
         "title": "AttributesDetails",
         "type": "object"
      },
      "Detail": {
         "description": "A detail of an :py:class:`AttachmentDetails` object.",
         "properties": {
            "name": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Name"
            },
            "value": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Value"
            }
         },
         "title": "Detail",
         "type": "object"
      },
      "ECSContainerInstanceStateChange": {
         "description": "That main body of the ECS Container Instance State Change event.",
         "properties": {
            "versionInfo": {
               "$ref": "#/$defs/VersionInfo"
            },
            "ec2InstanceId": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Ec2Instanceid"
            },
            "attachments": {
               "anyOf": [
                  {
                     "items": {
                        "$ref": "#/$defs/AttachmentDetails"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Attachments"
            },
            "registeredResources": {
               "items": {
                  "$ref": "#/$defs/ResourceDetails"
               },
               "title": "Registeredresources",
               "type": "array"
            },
            "remainingResources": {
               "items": {
                  "$ref": "#/$defs/ResourceDetails"
               },
               "title": "Remainingresources",
               "type": "array"
            },
            "runningTasksCount": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Runningtaskscount"
            },
            "registeredAt": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Registeredat"
            },
            "agentConnected": {
               "title": "Agentconnected",
               "type": "boolean"
            },
            "agentUpdateStatus": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Agentupdatestatus"
            },
            "version": {
               "title": "Version",
               "type": "number"
            },
            "pendingTasksCount": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Pendingtaskscount"
            },
            "clusterArn": {
               "title": "Clusterarn",
               "type": "string"
            },
            "attributes": {
               "anyOf": [
                  {
                     "items": {
                        "$ref": "#/$defs/AttributesDetails"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Attributes"
            },
            "containerInstanceArn": {
               "title": "Containerinstancearn",
               "type": "string"
            },
            "status": {
               "title": "Status",
               "type": "string"
            },
            "statusReason": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Statusreason"
            },
            "updatedAt": {
               "format": "date-time",
               "title": "Updatedat",
               "type": "string"
            },
            "accountType": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Accounttype"
            }
         },
         "required": [
            "versionInfo",
            "registeredResources",
            "remainingResources",
            "agentConnected",
            "version",
            "clusterArn",
            "containerInstanceArn",
            "status",
            "updatedAt"
         ],
         "title": "ECSContainerInstanceStateChange",
         "type": "object"
      },
      "ResourceDetails": {
         "description": "Details of a resource (CPU, Memory, etc).\n\n.. note::\n\n    Only one of the following values will be set, depending on the type of\n    resource.  The type of resource is specified in the `type` field.\n    The type of resource is one of the following:\n    - `INTEGER`: :py:attr:`integerValue`\n    - `LONG`: :py:attr:`longValue`\n    - `DOUBLE`: :py:attr:`doubleValue`\n    - `STRING`: :py:attr:`stringSetValue`",
         "properties": {
            "integerValue": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Integervalue"
            },
            "longValue": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Longvalue"
            },
            "doubleValue": {
               "anyOf": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Doublevalue"
            },
            "name": {
               "title": "Name",
               "type": "string"
            },
            "stringSetValue": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Stringsetvalue"
            },
            "type": {
               "title": "Type",
               "type": "string"
            }
         },
         "required": [
            "name",
            "type"
         ],
         "title": "ResourceDetails",
         "type": "object"
      },
      "VersionInfo": {
         "description": "Version information about the ECS agent and docker.",
         "properties": {
            "dockerVersion": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Dockerversion"
            },
            "agentHash": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Agenthash"
            },
            "agentVersion": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Agentversion"
            }
         },
         "title": "VersionInfo",
         "type": "object"
      }
   },
   "required": [
      "detail",
      "detail-type",
      "resources",
      "id",
      "source",
      "time",
      "region",
      "version",
      "account"
   ]
}

Fields:
field account: str [Required]

The account the event was generated in

field detail: ECSContainerInstanceStateChange [Required]

Where the meat of the event is

field detail_type: str [Required] (alias 'detail-type')

The human readable name of the event

field id: str [Required]

The ID of the event

field region: str [Required]

The region the event was generated in

field resources: list[str] [Required]

The resources the event applies to. This will be a list of ARNs

field source: str [Required]

The source of the event, e.g. “aws.ecs”

field time: datetime [Required]

The time the event was generated, in UTC

field version: str [Required]

The version of the schema for the event

pydantic model botocraft.eventbridge.raw.ecs.container_instance_change.ResourceDetails[source]

Bases: BaseModel

Details of a resource (CPU, Memory, etc).

Note

Only one of the following values will be set, depending on the type of resource. The type of resource is specified in the type field. The type of resource is one of the following: - INTEGER: integerValue - LONG: longValue - DOUBLE: doubleValue - STRING: stringSetValue

Show JSON schema
{
   "title": "ResourceDetails",
   "description": "Details of a resource (CPU, Memory, etc).\n\n.. note::\n\n    Only one of the following values will be set, depending on the type of\n    resource.  The type of resource is specified in the `type` field.\n    The type of resource is one of the following:\n    - `INTEGER`: :py:attr:`integerValue`\n    - `LONG`: :py:attr:`longValue`\n    - `DOUBLE`: :py:attr:`doubleValue`\n    - `STRING`: :py:attr:`stringSetValue`",
   "type": "object",
   "properties": {
      "integerValue": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Integervalue"
      },
      "longValue": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Longvalue"
      },
      "doubleValue": {
         "anyOf": [
            {
               "type": "number"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Doublevalue"
      },
      "name": {
         "title": "Name",
         "type": "string"
      },
      "stringSetValue": {
         "anyOf": [
            {
               "items": {
                  "type": "string"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Stringsetvalue"
      },
      "type": {
         "title": "Type",
         "type": "string"
      }
   },
   "required": [
      "name",
      "type"
   ]
}

Fields:
field doubleValue: float | None = None

A double value of the resource

field integerValue: float | None = None

An integer value of the resource

field longValue: float | None = None

A long value of the resource

field name: str [Required]

The name of the resource

field stringSetValue: list[str] | None = None

A string value of the resource

field type: str [Required]

The type of the resource

pydantic model botocraft.eventbridge.raw.ecs.container_instance_change.VersionInfo[source]

Bases: BaseModel

Version information about the ECS agent and docker.

Show JSON schema
{
   "title": "VersionInfo",
   "description": "Version information about the ECS agent and docker.",
   "type": "object",
   "properties": {
      "dockerVersion": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Dockerversion"
      },
      "agentHash": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Agenthash"
      },
      "agentVersion": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Agentversion"
      }
   }
}

Fields:
field agentHash: str | None = None

The hash of the ECS agent image

field agentVersion: str | None = None

The version of the ECS agent

field dockerVersion: str | None = None

The version of docker on this container instance