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, ECRScanResourceChangeEvent

ECR 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 account: str [Required]

The AWS account ID where the event occurred

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 id: str [Required]

The unique identifier for this event instance

field region: str [Required]

The AWS region where the event occurred

field resources: list[str] [Required]

The AWS resources involved in this event, typically repository ARNs

field source: str [Required]

The source of the event (typically “aws.ecr”)

field time: datetime [Required]

The timestamp when the event was generated, in UTC

field version: str [Required]

The version of the event schema format

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 repositories: list[Repository] | None

Return the ECR image object named by the event.

session: Any | None = FieldInfo(annotation=Union[Any, NoneType], required=False, default=None, exclude=True)

Raw Event Models from AWS Schema

pydantic model botocraft.eventbridge.raw.ecr.scan_resource_change.ECRScanResourceChangeEvent[source]

Bases: BaseModel

Represents 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 account: str [Required]

The AWS account ID where the event occurred

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 id: str [Required]

The unique identifier for this event instance

field region: str [Required]

The AWS region where the event occurred

field resources: list[str] [Required]

The AWS resources involved in this event, typically repository ARNs

field source: str [Required]

The source of the event (typically “aws.ecr”)

field time: datetime [Required]

The timestamp when the event was generated, in UTC

field version: str [Required]

The version of the event schema format

pydantic model botocraft.eventbridge.raw.ecr.scan_resource_change.Repository[source]

Bases: BaseModel

Represents 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 repository_name: str [Required] (alias 'repository-name')

The 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: Enum

Enumeration 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: BaseModel

Represents 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

field resource_type: str [Required] (alias 'resource-type')

The type of resource affected by the scan change (typically “REPOSITORY”)

field scan_type: ScanType [Required] (alias 'scan-type')

The type of scan configured (ENHANCED or BASIC)

class botocraft.eventbridge.raw.ecr.scan_resource_change.ScanType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: Enum

Enumeration 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