ecr

Implemented features for this service

  • [ ] batch_check_layer_availability

  • [X] batch_delete_image

  • [X] batch_get_image

    The parameter AcceptedMediaTypes has not yet been implemented

  • [X] batch_get_repository_scanning_configuration

  • [ ] complete_layer_upload

  • [ ] create_pull_through_cache_rule

  • [X] create_repository

  • [ ] create_repository_creation_template

  • [X] delete_lifecycle_policy

  • [ ] delete_pull_through_cache_rule

  • [X] delete_registry_policy

  • [X] delete_repository

  • [ ] delete_repository_creation_template

  • [X] delete_repository_policy

  • [ ] describe_image_replication_status

  • [X] describe_image_scan_findings

    This operation will return a static result by default. It is possible to configure a custom result using the Moto API.

    Here is some example code showing how this can be configured:

    # Dict with the exact response that you want to Moto to return
    example_response = {
        "imageScanFindings": {
            "enhancedFindings": [
            ],
            "findingSeverityCounts": {
                "MEDIUM": 1,
                "UNTRIAGED": 1
            }
        },
        "registryId": 000000000000,
        "repositoryName": "reponame",
        "imageId": {
            "imageTag": "latest"
        },
        "imageScanStatus": {
            "status": "COMPLETE",
            "description": "The scan was completed successfully."
        }
    }
    findings = {
        "results": [example_response],
        # Specify a region - us-east-1 by default
        "region": "us-west-1",
    }
    resp = requests.post(
        "http://motoapi.amazonaws.com/moto-api/static/ecr/scan-finding-results",
        json=findings,
    )
    
    ecr = boto3.client("ecr", region_name="us-west-1")
    # Create an image and start a scan
    # ...
    # Return the findings for reponame:latest
    findings = ecr.describe_image_scan_findings(
        repositoryName="reponame", imageId={"imageTag": "latest"}
    )
    findings.pop("ResponseMetadata")
    assert findings == example_response
    

    Note that the repository-name and imageTag/imageDigest should be an exact match. If you call describe_image_scan_findings with a repository/imageTag that is not part of any of the custom results, Moto will return a static default response.

  • [X] describe_images

  • [ ] describe_pull_through_cache_rules

  • [X] describe_registry

  • [X] describe_repositories

    maxResults and nextToken not implemented

  • [ ] describe_repository_creation_templates

  • [ ] get_account_setting

  • [ ] get_authorization_token

  • [ ] get_download_url_for_layer

  • [X] get_lifecycle_policy

  • [ ] get_lifecycle_policy_preview

  • [X] get_registry_policy

  • [X] get_registry_scanning_configuration

  • [X] get_repository_policy

  • [ ] initiate_layer_upload

  • [X] list_images

    maxResults and filtering not implemented

  • [X] list_tags_for_resource

  • [ ] put_account_setting

  • [X] put_image

  • [X] put_image_scanning_configuration

  • [X] put_image_tag_mutability

  • [X] put_lifecycle_policy

  • [X] put_registry_policy

  • [X] put_registry_scanning_configuration

  • [X] put_replication_configuration

  • [X] set_repository_policy

  • [X] start_image_scan

  • [ ] start_lifecycle_policy_preview

  • [X] tag_resource

  • [X] untag_resource

  • [ ] update_pull_through_cache_rule

  • [ ] update_repository_creation_template

  • [ ] upload_layer_part

  • [ ] validate_pull_through_cache_rule