ECR Image Pull Through Cache Action

This is emitted when an ECR image pull through cache action occurs. See AWS documentation for more information on when this might be emitted.

Primary Model

pydantic model botocraft.eventbridge.ecr.ECRPullThroughCacheActionEvent[source]

Bases: EventBridgeEvent, ECRPullThroughCacheActionEvent

ECR Pull Through Cache Action Event class.

This event is triggered when a pull through cache is synchronized with an upstream registry. It contains details about the synchronization status, repository details, and any failure information if the operation was unsuccessful.

Show JSON schema
{
   "title": "ECRPullThroughCacheActionEvent",
   "description": "ECR Pull Through Cache Action Event class.\n\nThis event is triggered when a pull through cache is synchronized with an\nupstream registry. It contains details about the synchronization status,\nrepository details, and any failure information if the operation was\nunsuccessful.",
   "type": "object",
   "properties": {
      "detail": {
         "$ref": "#/$defs/ECRPullThroughCacheAction"
      },
      "account": {
         "title": "Account",
         "type": "string"
      },
      "detail-type": {
         "title": "Detail-Type",
         "type": "string"
      },
      "id": {
         "title": "Id",
         "type": "string"
      },
      "region": {
         "title": "Region",
         "type": "string"
      },
      "resources": {
         "items": {
            "type": "string"
         },
         "title": "Resources",
         "type": "array"
      },
      "source": {
         "title": "Source",
         "type": "string"
      },
      "time": {
         "format": "date-time",
         "title": "Time",
         "type": "string"
      },
      "version": {
         "title": "Version",
         "type": "string"
      },
      "session": {
         "anyOf": [
            {},
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Session"
      }
   },
   "$defs": {
      "ECRPullThroughCacheAction": {
         "description": "Represents details about an ECR pull-through cache action.  Contains\ninformation about the pull-through cache operation, including status,\nrepository details, and any failure information if the operation was\nunsuccessful.",
         "properties": {
            "sync-status": {
               "title": "Sync-Status",
               "type": "string"
            },
            "ecr-repository-prefix": {
               "title": "Ecr-Repository-Prefix",
               "type": "string"
            },
            "repository-name": {
               "title": "Repository-Name",
               "type": "string"
            },
            "upstream-registry-url": {
               "title": "Upstream-Registry-Url",
               "type": "string"
            },
            "image-tag": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Image-Tag"
            },
            "image-digest": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Image-Digest"
            },
            "failure-code": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Failure-Code"
            },
            "failure-reason": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Failure-Reason"
            }
         },
         "required": [
            "sync-status",
            "ecr-repository-prefix",
            "repository-name",
            "upstream-registry-url"
         ],
         "title": "ECRPullThroughCacheAction",
         "type": "object"
      }
   },
   "required": [
      "detail",
      "account",
      "detail-type",
      "id",
      "region",
      "resources",
      "source",
      "time",
      "version"
   ]
}

Fields:
field account: str [Required]

The AWS account ID where the event occurred

field detail: ECRPullThroughCacheAction [Required]

The detailed information about the ECR pull-through cache action

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

The human-readable type of the event (e.g., “ECR Pull Through Cache Action”)

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 the repository ARN

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 image: ECRImage | None

Return the ECR image object named by the event.

property repository: Repository | None

Return the ECR repository 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.pull_through_cache_action.ECRPullThroughCacheAction[source]

Bases: BaseModel

Represents details about an ECR pull-through cache action. Contains information about the pull-through cache operation, including status, repository details, and any failure information if the operation was unsuccessful.

Show JSON schema
{
   "title": "ECRPullThroughCacheAction",
   "description": "Represents details about an ECR pull-through cache action.  Contains\ninformation about the pull-through cache operation, including status,\nrepository details, and any failure information if the operation was\nunsuccessful.",
   "type": "object",
   "properties": {
      "sync-status": {
         "title": "Sync-Status",
         "type": "string"
      },
      "ecr-repository-prefix": {
         "title": "Ecr-Repository-Prefix",
         "type": "string"
      },
      "repository-name": {
         "title": "Repository-Name",
         "type": "string"
      },
      "upstream-registry-url": {
         "title": "Upstream-Registry-Url",
         "type": "string"
      },
      "image-tag": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Image-Tag"
      },
      "image-digest": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Image-Digest"
      },
      "failure-code": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Failure-Code"
      },
      "failure-reason": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Failure-Reason"
      }
   },
   "required": [
      "sync-status",
      "ecr-repository-prefix",
      "repository-name",
      "upstream-registry-url"
   ]
}

Fields:
field ecr_repository_prefix: str [Required] (alias 'ecr-repository-prefix')

The ECR repository prefix used for the pull-through cache configuration

field failure_code: str | None = None (alias 'failure-code')

A code indicating the reason for failure, if the operation failed

field failure_reason: str | None = None (alias 'failure-reason')

A human-readable description of why the operation failed, if applicable

field image_digest: str | None = None (alias 'image-digest')

The SHA256 digest of the image being pulled through the cache, if applicable

field image_tag: str | None = None (alias 'image-tag')

The tag of the image being pulled through the cache, if applicable

field repository_name: str [Required] (alias 'repository-name')

The name of the repository being cached

field sync_status: str [Required] (alias 'sync-status')

The status of the cache synchronization operation (e.g., “SUCCESS”, “FAILURE”)

field upstream_registry_url: str [Required] (alias 'upstream-registry-url')

The URL of the upstream registry from which images are being pulled

pydantic model botocraft.eventbridge.raw.ecr.pull_through_cache_action.ECRPullThroughCacheActionEvent[source]

Bases: BaseModel

Represents a complete ECR Pull Through Cache Action event from EventBridge. Contains metadata about the event and the actual pull-through cache action details.

Show JSON schema
{
   "title": "ECRPullThroughCacheActionEvent",
   "description": "Represents a complete ECR Pull Through Cache Action event from EventBridge.\nContains metadata about the event and the actual pull-through cache action\ndetails.",
   "type": "object",
   "properties": {
      "detail": {
         "$ref": "#/$defs/ECRPullThroughCacheAction"
      },
      "account": {
         "title": "Account",
         "type": "string"
      },
      "detail-type": {
         "title": "Detail-Type",
         "type": "string"
      },
      "id": {
         "title": "Id",
         "type": "string"
      },
      "region": {
         "title": "Region",
         "type": "string"
      },
      "resources": {
         "items": {
            "type": "string"
         },
         "title": "Resources",
         "type": "array"
      },
      "source": {
         "title": "Source",
         "type": "string"
      },
      "time": {
         "format": "date-time",
         "title": "Time",
         "type": "string"
      },
      "version": {
         "title": "Version",
         "type": "string"
      }
   },
   "$defs": {
      "ECRPullThroughCacheAction": {
         "description": "Represents details about an ECR pull-through cache action.  Contains\ninformation about the pull-through cache operation, including status,\nrepository details, and any failure information if the operation was\nunsuccessful.",
         "properties": {
            "sync-status": {
               "title": "Sync-Status",
               "type": "string"
            },
            "ecr-repository-prefix": {
               "title": "Ecr-Repository-Prefix",
               "type": "string"
            },
            "repository-name": {
               "title": "Repository-Name",
               "type": "string"
            },
            "upstream-registry-url": {
               "title": "Upstream-Registry-Url",
               "type": "string"
            },
            "image-tag": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Image-Tag"
            },
            "image-digest": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Image-Digest"
            },
            "failure-code": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Failure-Code"
            },
            "failure-reason": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Failure-Reason"
            }
         },
         "required": [
            "sync-status",
            "ecr-repository-prefix",
            "repository-name",
            "upstream-registry-url"
         ],
         "title": "ECRPullThroughCacheAction",
         "type": "object"
      }
   },
   "required": [
      "detail",
      "account",
      "detail-type",
      "id",
      "region",
      "resources",
      "source",
      "time",
      "version"
   ]
}

Fields:
field account: str [Required]

The AWS account ID where the event occurred

field detail: ECRPullThroughCacheAction [Required]

The detailed information about the ECR pull-through cache action

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

The human-readable type of the event (e.g., “ECR Pull Through Cache Action”)

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 the repository ARN

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