createRepositoryCreationTemplate method
- required List<
RCTAppliedFor> appliedFor, - required String prefix,
- String? customRoleArn,
- String? description,
- EncryptionConfigurationForRepositoryCreationTemplate? encryptionConfiguration,
- ImageTagMutability? imageTagMutability,
- List<
ImageTagMutabilityExclusionFilter> ? imageTagMutabilityExclusionFilters, - String? lifecyclePolicy,
- String? repositoryPolicy,
- List<
Tag> ? resourceTags,
Creates a repository creation template. This template is used to define the settings for repositories created by Amazon ECR on your behalf. For example, repositories created through pull through cache actions. For more information, see Private repository creation templates in the Amazon Elastic Container Registry User Guide.
May throw InvalidParameterException.
May throw LimitExceededException.
May throw ServerException.
May throw TemplateAlreadyExistsException.
May throw ValidationException.
Parameter appliedFor :
A list of enumerable strings representing the Amazon ECR repository
creation scenarios that this template will apply towards. The supported
scenarios are PULL_THROUGH_CACHE, REPLICATION,
and CREATE_ON_PUSH
Parameter prefix :
The repository namespace prefix to associate with the template. All
repositories created using this namespace prefix will have the settings
defined in this template applied. For example, a prefix of
prod would apply to all repositories beginning with
prod/. Similarly, a prefix of prod/team would
apply to all repositories beginning with prod/team/.
To apply a template to all repositories in your registry that don't have
an associated creation template, you can use ROOT as the
prefix.
Parameter customRoleArn :
The ARN of the role to be assumed by Amazon ECR. This role must be in the
same account as the registry that you are configuring. Amazon ECR will
assume your supplied role when the customRoleArn is specified. When this
field isn't specified, Amazon ECR will use the service-linked role for the
repository creation template.
Parameter description :
A description for the repository creation template.
Parameter encryptionConfiguration :
The encryption configuration to use for repositories created using the
template.
Parameter imageTagMutability :
The tag mutability setting for the repository. If this parameter is
omitted, the default setting of MUTABLE will be used which
will allow image tags to be overwritten. If IMMUTABLE is
specified, all image tags within the repository will be immutable which
will prevent them from being overwritten.
Parameter imageTagMutabilityExclusionFilters :
A list of filters that specify which image tags should be excluded from
the repository creation template's image tag mutability setting.
Parameter lifecyclePolicy :
The lifecycle policy to use for repositories created using the template.
Parameter repositoryPolicy :
The repository policy to apply to repositories created using the template.
A repository policy is a permissions policy associated with a repository
to control access permissions.
Parameter resourceTags :
The metadata to apply to the repository to help you categorize and
organize. Each tag consists of a key and an optional value, both of which
you define. Tag keys can have a maximum character length of 128
characters, and tag values can have a maximum length of 256 characters.
Implementation
Future<CreateRepositoryCreationTemplateResponse>
createRepositoryCreationTemplate({
required List<RCTAppliedFor> appliedFor,
required String prefix,
String? customRoleArn,
String? description,
EncryptionConfigurationForRepositoryCreationTemplate?
encryptionConfiguration,
ImageTagMutability? imageTagMutability,
List<ImageTagMutabilityExclusionFilter>? imageTagMutabilityExclusionFilters,
String? lifecyclePolicy,
String? repositoryPolicy,
List<Tag>? resourceTags,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target':
'AmazonEC2ContainerRegistry_V20150921.CreateRepositoryCreationTemplate'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'appliedFor': appliedFor.map((e) => e.value).toList(),
'prefix': prefix,
if (customRoleArn != null) 'customRoleArn': customRoleArn,
if (description != null) 'description': description,
if (encryptionConfiguration != null)
'encryptionConfiguration': encryptionConfiguration,
if (imageTagMutability != null)
'imageTagMutability': imageTagMutability.value,
if (imageTagMutabilityExclusionFilters != null)
'imageTagMutabilityExclusionFilters':
imageTagMutabilityExclusionFilters,
if (lifecyclePolicy != null) 'lifecyclePolicy': lifecyclePolicy,
if (repositoryPolicy != null) 'repositoryPolicy': repositoryPolicy,
if (resourceTags != null) 'resourceTags': resourceTags,
},
);
return CreateRepositoryCreationTemplateResponse.fromJson(jsonResponse.body);
}