@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon EC2 Container Registry
@version 2015-09-21
@auth AWS SigV4
@endpoints 49
@hint download_for_search
@toc root(49)

@endpoint POST /
@required {repositoryName: str, layerDigests: [str]}
@optional {registryId: str}
@returns(200) {layers: [Layer]?, failures: [LayerFailure]?}

@endpoint POST /
@required {repositoryName: str, imageIds: [ImageIdentifier]}
@optional {registryId: str}
@returns(200) {imageIds: [ImageIdentifier]?, failures: [ImageFailure]?}

@endpoint POST /
@required {repositoryName: str, imageIds: [ImageIdentifier]}
@optional {registryId: str, acceptedMediaTypes: [str]}
@returns(200) {images: [Image]?, failures: [ImageFailure]?}

@endpoint POST /
@required {repositoryNames: [str]}
@returns(200) {scanningConfigurations: [RepositoryScanningConfiguration]?, failures: [RepositoryScanningConfigurationFailure]?}

@endpoint POST /
@required {repositoryName: str, uploadId: str, layerDigests: [str]}
@optional {registryId: str}
@returns(200) {registryId: str?, repositoryName: str?, uploadId: str?, layerDigest: str?}

@endpoint POST /
@required {ecrRepositoryPrefix: str, upstreamRegistryUrl: str}
@optional {registryId: str, upstreamRegistry: str, credentialArn: str}
@returns(200) {ecrRepositoryPrefix: str?, upstreamRegistryUrl: str?, createdAt: str(timestamp)?, registryId: str?, upstreamRegistry: str?, credentialArn: str?}

@endpoint POST /
@required {repositoryName: str}
@optional {registryId: str, tags: [Tag], imageTagMutability: str, imageScanningConfiguration: ImageScanningConfiguration, encryptionConfiguration: EncryptionConfiguration}
@returns(200) {repository: Repository?{repositoryArn: str?, registryId: str?, repositoryName: str?, repositoryUri: str?, createdAt: str(timestamp)?, imageTagMutability: str?, imageScanningConfiguration: ImageScanningConfiguration?{scanOnPush: bool?}, encryptionConfiguration: EncryptionConfiguration?{encryptionType: str, kmsKey: str?}}}

@endpoint POST /
@required {prefix: str, appliedFor: [str]}
@optional {description: str, encryptionConfiguration: EncryptionConfigurationForRepositoryCreationTemplate, resourceTags: [Tag], imageTagMutability: str, repositoryPolicy: str, lifecyclePolicy: str, customRoleArn: str}
@returns(200) {registryId: str?, repositoryCreationTemplate: RepositoryCreationTemplate?{prefix: str?, description: str?, encryptionConfiguration: EncryptionConfigurationForRepositoryCreationTemplate?{encryptionType: str, kmsKey: str?}, resourceTags: [Tag]?, imageTagMutability: str?, repositoryPolicy: str?, lifecyclePolicy: str?, appliedFor: [str]?, customRoleArn: str?, createdAt: str(timestamp)?, updatedAt: str(timestamp)?}}

@endpoint POST /
@required {repositoryName: str}
@optional {registryId: str}
@returns(200) {registryId: str?, repositoryName: str?, lifecyclePolicyText: str?, lastEvaluatedAt: str(timestamp)?}

@endpoint POST /
@required {ecrRepositoryPrefix: str}
@optional {registryId: str}
@returns(200) {ecrRepositoryPrefix: str?, upstreamRegistryUrl: str?, createdAt: str(timestamp)?, registryId: str?, credentialArn: str?}

@endpoint POST /
@returns(200) {registryId: str?, policyText: str?}

@endpoint POST /
@required {repositoryName: str}
@optional {registryId: str, force: bool}
@returns(200) {repository: Repository?{repositoryArn: str?, registryId: str?, repositoryName: str?, repositoryUri: str?, createdAt: str(timestamp)?, imageTagMutability: str?, imageScanningConfiguration: ImageScanningConfiguration?{scanOnPush: bool?}, encryptionConfiguration: EncryptionConfiguration?{encryptionType: str, kmsKey: str?}}}

@endpoint POST /
@required {prefix: str}
@returns(200) {registryId: str?, repositoryCreationTemplate: RepositoryCreationTemplate?{prefix: str?, description: str?, encryptionConfiguration: EncryptionConfigurationForRepositoryCreationTemplate?{encryptionType: str, kmsKey: str?}, resourceTags: [Tag]?, imageTagMutability: str?, repositoryPolicy: str?, lifecyclePolicy: str?, appliedFor: [str]?, customRoleArn: str?, createdAt: str(timestamp)?, updatedAt: str(timestamp)?}}

@endpoint POST /
@required {repositoryName: str}
@optional {registryId: str}
@returns(200) {registryId: str?, repositoryName: str?, policyText: str?}

@endpoint POST /
@required {repositoryName: str, imageId: ImageIdentifier}
@optional {registryId: str}
@returns(200) {repositoryName: str?, imageId: ImageIdentifier?{imageDigest: str?, imageTag: str?}, replicationStatuses: [ImageReplicationStatus]?}

@endpoint POST /
@required {repositoryName: str, imageId: ImageIdentifier}
@optional {registryId: str, nextToken: str, maxResults: int}
@returns(200) {registryId: str?, repositoryName: str?, imageId: ImageIdentifier?{imageDigest: str?, imageTag: str?}, imageScanStatus: ImageScanStatus?{status: str?, description: str?}, imageScanFindings: ImageScanFindings?{imageScanCompletedAt: str(timestamp)?, vulnerabilitySourceUpdatedAt: str(timestamp)?, findingSeverityCounts: map<str,int>?, findings: [ImageScanFinding]?, enhancedFindings: [EnhancedImageScanFinding]?}, nextToken: str?}

@endpoint POST /
@required {repositoryName: str}
@optional {registryId: str, imageIds: [ImageIdentifier], nextToken: str, maxResults: int, filter: DescribeImagesFilter}
@returns(200) {imageDetails: [ImageDetail]?, nextToken: str?}

@endpoint POST /
@optional {registryId: str, ecrRepositoryPrefixes: [str], nextToken: str, maxResults: int}
@returns(200) {pullThroughCacheRules: [PullThroughCacheRule]?, nextToken: str?}

@endpoint POST /
@returns(200) {registryId: str?, replicationConfiguration: ReplicationConfiguration?{rules: [ReplicationRule]}}

@endpoint POST /
@optional {registryId: str, repositoryNames: [str], nextToken: str, maxResults: int}
@returns(200) {repositories: [Repository]?, nextToken: str?}

@endpoint POST /
@optional {prefixes: [str], nextToken: str, maxResults: int}
@returns(200) {registryId: str?, repositoryCreationTemplates: [RepositoryCreationTemplate]?, nextToken: str?}

@endpoint POST /
@required {name: str}
@returns(200) {name: str?, value: str?}

@endpoint POST /
@optional {registryIds: [str]}
@returns(200) {authorizationData: [AuthorizationData]?}

@endpoint POST /
@required {repositoryName: str, layerDigest: str}
@optional {registryId: str}
@returns(200) {downloadUrl: str?, layerDigest: str?}

@endpoint POST /
@required {repositoryName: str}
@optional {registryId: str}
@returns(200) {registryId: str?, repositoryName: str?, lifecyclePolicyText: str?, lastEvaluatedAt: str(timestamp)?}

@endpoint POST /
@required {repositoryName: str}
@optional {registryId: str, imageIds: [ImageIdentifier], nextToken: str, maxResults: int, filter: LifecyclePolicyPreviewFilter}
@returns(200) {registryId: str?, repositoryName: str?, lifecyclePolicyText: str?, status: str?, nextToken: str?, previewResults: [LifecyclePolicyPreviewResult]?, summary: LifecyclePolicyPreviewSummary?{expiringImageTotalCount: int?}}

@endpoint POST /
@returns(200) {registryId: str?, policyText: str?}

@endpoint POST /
@returns(200) {registryId: str?, scanningConfiguration: RegistryScanningConfiguration?{scanType: str?, rules: [RegistryScanningRule]?}}

@endpoint POST /
@required {repositoryName: str}
@optional {registryId: str}
@returns(200) {registryId: str?, repositoryName: str?, policyText: str?}

@endpoint POST /
@required {repositoryName: str}
@optional {registryId: str}
@returns(200) {uploadId: str?, partSize: int(i64)?}

@endpoint POST /
@required {repositoryName: str}
@optional {registryId: str, nextToken: str, maxResults: int, filter: ListImagesFilter}
@returns(200) {imageIds: [ImageIdentifier]?, nextToken: str?}

@endpoint POST /
@required {resourceArn: str}
@returns(200) {tags: [Tag]?}

@endpoint POST /
@required {name: str, value: str}
@returns(200) {name: str?, value: str?}

@endpoint POST /
@required {repositoryName: str, imageManifest: str}
@optional {registryId: str, imageManifestMediaType: str, imageTag: str, imageDigest: str}
@returns(200) {image: Image?{registryId: str?, repositoryName: str?, imageId: ImageIdentifier?{imageDigest: str?, imageTag: str?}, imageManifest: str?, imageManifestMediaType: str?}}

@endpoint POST /
@required {repositoryName: str, imageScanningConfiguration: ImageScanningConfiguration}
@optional {registryId: str}
@returns(200) {registryId: str?, repositoryName: str?, imageScanningConfiguration: ImageScanningConfiguration?{scanOnPush: bool?}}

@endpoint POST /
@required {repositoryName: str, imageTagMutability: str}
@optional {registryId: str}
@returns(200) {registryId: str?, repositoryName: str?, imageTagMutability: str?}

@endpoint POST /
@required {repositoryName: str, lifecyclePolicyText: str}
@optional {registryId: str}
@returns(200) {registryId: str?, repositoryName: str?, lifecyclePolicyText: str?}

@endpoint POST /
@required {policyText: str}
@returns(200) {registryId: str?, policyText: str?}

@endpoint POST /
@optional {scanType: str, rules: [RegistryScanningRule]}
@returns(200) {registryScanningConfiguration: RegistryScanningConfiguration?{scanType: str?, rules: [RegistryScanningRule]?}}

@endpoint POST /
@required {replicationConfiguration: ReplicationConfiguration}
@returns(200) {replicationConfiguration: ReplicationConfiguration?{rules: [ReplicationRule]}}

@endpoint POST /
@required {repositoryName: str, policyText: str}
@optional {registryId: str, force: bool}
@returns(200) {registryId: str?, repositoryName: str?, policyText: str?}

@endpoint POST /
@required {repositoryName: str, imageId: ImageIdentifier}
@optional {registryId: str}
@returns(200) {registryId: str?, repositoryName: str?, imageId: ImageIdentifier?{imageDigest: str?, imageTag: str?}, imageScanStatus: ImageScanStatus?{status: str?, description: str?}}

@endpoint POST /
@required {repositoryName: str}
@optional {registryId: str, lifecyclePolicyText: str}
@returns(200) {registryId: str?, repositoryName: str?, lifecyclePolicyText: str?, status: str?}

@endpoint POST /
@required {resourceArn: str, tags: [Tag]}

@endpoint POST /
@required {resourceArn: str, tagKeys: [str]}

@endpoint POST /
@required {ecrRepositoryPrefix: str, credentialArn: str}
@optional {registryId: str}
@returns(200) {ecrRepositoryPrefix: str?, registryId: str?, updatedAt: str(timestamp)?, credentialArn: str?}

@endpoint POST /
@required {prefix: str}
@optional {description: str, encryptionConfiguration: EncryptionConfigurationForRepositoryCreationTemplate, resourceTags: [Tag], imageTagMutability: str, repositoryPolicy: str, lifecyclePolicy: str, appliedFor: [str], customRoleArn: str}
@returns(200) {registryId: str?, repositoryCreationTemplate: RepositoryCreationTemplate?{prefix: str?, description: str?, encryptionConfiguration: EncryptionConfigurationForRepositoryCreationTemplate?{encryptionType: str, kmsKey: str?}, resourceTags: [Tag]?, imageTagMutability: str?, repositoryPolicy: str?, lifecyclePolicy: str?, appliedFor: [str]?, customRoleArn: str?, createdAt: str(timestamp)?, updatedAt: str(timestamp)?}}

@endpoint POST /
@required {repositoryName: str, uploadId: str, partFirstByte: int(i64), partLastByte: int(i64), layerPartBlob: bytes}
@optional {registryId: str}
@returns(200) {registryId: str?, repositoryName: str?, uploadId: str?, lastByteReceived: int(i64)?}

@endpoint POST /
@required {ecrRepositoryPrefix: str}
@optional {registryId: str}
@returns(200) {ecrRepositoryPrefix: str?, registryId: str?, upstreamRegistryUrl: str?, credentialArn: str?, isValid: bool?, failure: str?}

@end
