ECR Scan Resource Change
This is emitted when an ECR image scan resource change occurs. See AWS documentation for more information on when this might be emitted.
Primary Model
- pydantic model botocraft.eventbridge.ecr.ECRScanResourceChangeEvent[source]
Bases:
EventBridgeEvent,ECRScanResourceChangeEventECR Scan Resource Change Event class.
This event is triggered when the scan status of an image in an ECR repository changes. It contains details about the image and the new scan status.
Show JSON schema
{ "title": "ECRScanResourceChangeEvent", "description": "ECR Scan Resource Change Event class.\n\nThis event is triggered when the scan status of an image in an ECR repository\nchanges. It contains details about the image and the new scan status.", "type": "object", "properties": { "detail": { "$ref": "#/$defs/ScanResourceChange" }, "version": { "title": "Version", "type": "string" }, "id": { "title": "Id", "type": "string" }, "detail-type": { "title": "Detail-Type", "type": "string" }, "source": { "title": "Source", "type": "string" }, "account": { "title": "Account", "type": "string" }, "time": { "format": "date-time", "title": "Time", "type": "string" }, "region": { "title": "Region", "type": "string" }, "resources": { "items": { "type": "string" }, "title": "Resources", "type": "array" }, "session": { "anyOf": [ {}, { "type": "null" } ], "default": null, "title": "Session" } }, "$defs": { "Repository": { "description": "Represents an ECR repository affected by a scan resource change. Contains\ndetails about the repository and how its scan configuration has changed.", "properties": { "repository-name": { "title": "Repository-Name", "type": "string" }, "repository-arn": { "title": "Repository-Arn", "type": "string" }, "scan-frequency": { "$ref": "#/$defs/ScanFrequency" }, "previous-scan-frequency": { "$ref": "#/$defs/ScanFrequency" } }, "required": [ "repository-name", "repository-arn", "scan-frequency", "previous-scan-frequency" ], "title": "Repository", "type": "object" }, "ScanFrequency": { "description": "Enumeration of possible ECR image scan frequency settings.\nDefines how often AWS ECR will scan container images for vulnerabilities.", "enum": [ "SCAN_ON_PUSH", "CONTINUOUS_SCAN", "MANUAL" ], "title": "ScanFrequency", "type": "string" }, "ScanResourceChange": { "description": "Represents details about a change to ECR scan resource configuration.\nContains information about what type of change occurred and which\nrepositories were affected.", "properties": { "action-type": { "title": "Action-Type", "type": "string" }, "repositories": { "items": { "$ref": "#/$defs/Repository" }, "title": "Repositories", "type": "array" }, "resource-type": { "title": "Resource-Type", "type": "string" }, "scan-type": { "$ref": "#/$defs/ScanType" } }, "required": [ "action-type", "resource-type", "scan-type" ], "title": "ScanResourceChange", "type": "object" }, "ScanType": { "description": "Enumeration of ECR scan types.\nDefines the type of vulnerability scanning being performed on ECR images.", "enum": [ "ENHANCED", "BASIC" ], "title": "ScanType", "type": "string" } }, "required": [ "detail", "version", "id", "detail-type", "source", "account", "time", "region", "resources" ] }
- Fields:
- field detail: ScanResourceChange [Required]
The detailed information about the scan resource change
- field detail_type: str [Required] (alias 'detail-type')
The human-readable type of the event (e.g., “ECR Scan Resource Change”)
- field resources: list[str] [Required]
The AWS resources involved in this event, typically repository ARNs
- field time: datetime [Required]
The timestamp when the event was generated, in UTC
- 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_raw(b: str | bytes, *, content_type: str | None = None, encoding: str = 'utf8', proto: DeprecatedParseProtocol | None = None, allow_pickle: bool = False) Self
- property repositories: list[Repository] | None
Return the ECR image object named by the event.
Raw Event Models from AWS Schema
- pydantic model botocraft.eventbridge.raw.ecr.scan_resource_change.ECRScanResourceChangeEvent[source]
Bases:
BaseModelRepresents a complete ECR Scan Resource Change event from EventBridge. Contains metadata about the event and the actual scan resource change details.
Show JSON schema
{ "title": "ECRScanResourceChangeEvent", "description": "Represents a complete ECR Scan Resource Change event from EventBridge.\nContains metadata about the event and the actual scan resource change details.", "type": "object", "properties": { "detail": { "$ref": "#/$defs/ScanResourceChange" }, "version": { "title": "Version", "type": "string" }, "id": { "title": "Id", "type": "string" }, "detail-type": { "title": "Detail-Type", "type": "string" }, "source": { "title": "Source", "type": "string" }, "account": { "title": "Account", "type": "string" }, "time": { "format": "date-time", "title": "Time", "type": "string" }, "region": { "title": "Region", "type": "string" }, "resources": { "items": { "type": "string" }, "title": "Resources", "type": "array" } }, "$defs": { "Repository": { "description": "Represents an ECR repository affected by a scan resource change. Contains\ndetails about the repository and how its scan configuration has changed.", "properties": { "repository-name": { "title": "Repository-Name", "type": "string" }, "repository-arn": { "title": "Repository-Arn", "type": "string" }, "scan-frequency": { "$ref": "#/$defs/ScanFrequency" }, "previous-scan-frequency": { "$ref": "#/$defs/ScanFrequency" } }, "required": [ "repository-name", "repository-arn", "scan-frequency", "previous-scan-frequency" ], "title": "Repository", "type": "object" }, "ScanFrequency": { "description": "Enumeration of possible ECR image scan frequency settings.\nDefines how often AWS ECR will scan container images for vulnerabilities.", "enum": [ "SCAN_ON_PUSH", "CONTINUOUS_SCAN", "MANUAL" ], "title": "ScanFrequency", "type": "string" }, "ScanResourceChange": { "description": "Represents details about a change to ECR scan resource configuration.\nContains information about what type of change occurred and which\nrepositories were affected.", "properties": { "action-type": { "title": "Action-Type", "type": "string" }, "repositories": { "items": { "$ref": "#/$defs/Repository" }, "title": "Repositories", "type": "array" }, "resource-type": { "title": "Resource-Type", "type": "string" }, "scan-type": { "$ref": "#/$defs/ScanType" } }, "required": [ "action-type", "resource-type", "scan-type" ], "title": "ScanResourceChange", "type": "object" }, "ScanType": { "description": "Enumeration of ECR scan types.\nDefines the type of vulnerability scanning being performed on ECR images.", "enum": [ "ENHANCED", "BASIC" ], "title": "ScanType", "type": "string" } }, "required": [ "detail", "version", "id", "detail-type", "source", "account", "time", "region", "resources" ] }
- Fields:
- field detail: ScanResourceChange [Required]
The detailed information about the scan resource change
- field detail_type: str [Required] (alias 'detail-type')
The human-readable type of the event (e.g., “ECR Scan Resource Change”)
- field resources: list[str] [Required]
The AWS resources involved in this event, typically repository ARNs
- field time: datetime [Required]
The timestamp when the event was generated, in UTC
- pydantic model botocraft.eventbridge.raw.ecr.scan_resource_change.Repository[source]
Bases:
BaseModelRepresents an ECR repository affected by a scan resource change. Contains details about the repository and how its scan configuration has changed.
Show JSON schema
{ "title": "Repository", "description": "Represents an ECR repository affected by a scan resource change. Contains\ndetails about the repository and how its scan configuration has changed.", "type": "object", "properties": { "repository-name": { "title": "Repository-Name", "type": "string" }, "repository-arn": { "title": "Repository-Arn", "type": "string" }, "scan-frequency": { "$ref": "#/$defs/ScanFrequency" }, "previous-scan-frequency": { "$ref": "#/$defs/ScanFrequency" } }, "$defs": { "ScanFrequency": { "description": "Enumeration of possible ECR image scan frequency settings.\nDefines how often AWS ECR will scan container images for vulnerabilities.", "enum": [ "SCAN_ON_PUSH", "CONTINUOUS_SCAN", "MANUAL" ], "title": "ScanFrequency", "type": "string" } }, "required": [ "repository-name", "repository-arn", "scan-frequency", "previous-scan-frequency" ] }
- Fields:
- field previous_scan_frequency: ScanFrequency [Required] (alias 'previous-scan-frequency')
The previous scan frequency setting before this change
- field repository_arn: str [Required] (alias 'repository-arn')
The ARN (Amazon Resource Name) of the ECR repository
- field scan_frequency: ScanFrequency [Required] (alias 'scan-frequency')
The new scan frequency setting for the repository
- class botocraft.eventbridge.raw.ecr.scan_resource_change.ScanFrequency(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]
Bases:
EnumEnumeration of possible ECR image scan frequency settings. Defines how often AWS ECR will scan container images for vulnerabilities.
- CONTINUOUS_SCAN = 'CONTINUOUS_SCAN'
Continuously scan images in the repository
- MANUAL = 'MANUAL'
Only scan images when manually requested
- SCAN_ON_PUSH = 'SCAN_ON_PUSH'
Scan images only when they are first pushed to the repository
- pydantic model botocraft.eventbridge.raw.ecr.scan_resource_change.ScanResourceChange[source]
Bases:
BaseModelRepresents details about a change to ECR scan resource configuration. Contains information about what type of change occurred and which repositories were affected.
Show JSON schema
{ "title": "ScanResourceChange", "description": "Represents details about a change to ECR scan resource configuration.\nContains information about what type of change occurred and which\nrepositories were affected.", "type": "object", "properties": { "action-type": { "title": "Action-Type", "type": "string" }, "repositories": { "items": { "$ref": "#/$defs/Repository" }, "title": "Repositories", "type": "array" }, "resource-type": { "title": "Resource-Type", "type": "string" }, "scan-type": { "$ref": "#/$defs/ScanType" } }, "$defs": { "Repository": { "description": "Represents an ECR repository affected by a scan resource change. Contains\ndetails about the repository and how its scan configuration has changed.", "properties": { "repository-name": { "title": "Repository-Name", "type": "string" }, "repository-arn": { "title": "Repository-Arn", "type": "string" }, "scan-frequency": { "$ref": "#/$defs/ScanFrequency" }, "previous-scan-frequency": { "$ref": "#/$defs/ScanFrequency" } }, "required": [ "repository-name", "repository-arn", "scan-frequency", "previous-scan-frequency" ], "title": "Repository", "type": "object" }, "ScanFrequency": { "description": "Enumeration of possible ECR image scan frequency settings.\nDefines how often AWS ECR will scan container images for vulnerabilities.", "enum": [ "SCAN_ON_PUSH", "CONTINUOUS_SCAN", "MANUAL" ], "title": "ScanFrequency", "type": "string" }, "ScanType": { "description": "Enumeration of ECR scan types.\nDefines the type of vulnerability scanning being performed on ECR images.", "enum": [ "ENHANCED", "BASIC" ], "title": "ScanType", "type": "string" } }, "required": [ "action-type", "resource-type", "scan-type" ] }
- Fields:
- field action_type: str [Required] (alias 'action-type')
The type of scan resource change action (e.g., “SCAN_FREQUENCY_CHANGE”)
- field repositories: list[Repository] [Optional]
List of repositories affected by the scan resource change
- class botocraft.eventbridge.raw.ecr.scan_resource_change.ScanType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]
Bases:
EnumEnumeration of ECR scan types. Defines the type of vulnerability scanning being performed on ECR images.
- BASIC = 'BASIC'
Basic scanning provides fundamental vulnerability detection
- ENHANCED = 'ENHANCED'
Enhanced scanning uses Amazon Inspector and provides more comprehensive results