All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.ecr.model.Repository Maven / Gradle / Ivy

/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */

package software.amazon.awssdk.services.ecr.model;

import java.beans.Transient;
import java.io.Serializable;
import java.time.Instant;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;

/**
 * 

* An object representing a repository. *

*/ @Generated("software.amazon.awssdk:codegen") public final class Repository implements SdkPojo, Serializable, ToCopyableBuilder { private static final SdkField REPOSITORY_ARN_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("repositoryArn").getter(getter(Repository::repositoryArn)).setter(setter(Builder::repositoryArn)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("repositoryArn").build()).build(); private static final SdkField REGISTRY_ID_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("registryId").getter(getter(Repository::registryId)).setter(setter(Builder::registryId)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("registryId").build()).build(); private static final SdkField REPOSITORY_NAME_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("repositoryName").getter(getter(Repository::repositoryName)).setter(setter(Builder::repositoryName)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("repositoryName").build()).build(); private static final SdkField REPOSITORY_URI_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("repositoryUri").getter(getter(Repository::repositoryUri)).setter(setter(Builder::repositoryUri)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("repositoryUri").build()).build(); private static final SdkField CREATED_AT_FIELD = SdkField. builder(MarshallingType.INSTANT) .memberName("createdAt").getter(getter(Repository::createdAt)).setter(setter(Builder::createdAt)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("createdAt").build()).build(); private static final SdkField IMAGE_TAG_MUTABILITY_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("imageTagMutability").getter(getter(Repository::imageTagMutabilityAsString)) .setter(setter(Builder::imageTagMutability)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("imageTagMutability").build()) .build(); private static final SdkField IMAGE_SCANNING_CONFIGURATION_FIELD = SdkField . builder(MarshallingType.SDK_POJO) .memberName("imageScanningConfiguration") .getter(getter(Repository::imageScanningConfiguration)) .setter(setter(Builder::imageScanningConfiguration)) .constructor(ImageScanningConfiguration::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("imageScanningConfiguration").build()) .build(); private static final SdkField ENCRYPTION_CONFIGURATION_FIELD = SdkField . builder(MarshallingType.SDK_POJO).memberName("encryptionConfiguration") .getter(getter(Repository::encryptionConfiguration)).setter(setter(Builder::encryptionConfiguration)) .constructor(EncryptionConfiguration::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("encryptionConfiguration").build()) .build(); private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(REPOSITORY_ARN_FIELD, REGISTRY_ID_FIELD, REPOSITORY_NAME_FIELD, REPOSITORY_URI_FIELD, CREATED_AT_FIELD, IMAGE_TAG_MUTABILITY_FIELD, IMAGE_SCANNING_CONFIGURATION_FIELD, ENCRYPTION_CONFIGURATION_FIELD)); private static final long serialVersionUID = 1L; private final String repositoryArn; private final String registryId; private final String repositoryName; private final String repositoryUri; private final Instant createdAt; private final String imageTagMutability; private final ImageScanningConfiguration imageScanningConfiguration; private final EncryptionConfiguration encryptionConfiguration; private Repository(BuilderImpl builder) { this.repositoryArn = builder.repositoryArn; this.registryId = builder.registryId; this.repositoryName = builder.repositoryName; this.repositoryUri = builder.repositoryUri; this.createdAt = builder.createdAt; this.imageTagMutability = builder.imageTagMutability; this.imageScanningConfiguration = builder.imageScanningConfiguration; this.encryptionConfiguration = builder.encryptionConfiguration; } /** *

* The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the arn:aws:ecr * namespace, followed by the region of the repository, Amazon Web Services account ID of the repository owner, * repository namespace, and repository name. For example, * arn:aws:ecr:region:012345678910:repository/test. *

* * @return The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the * arn:aws:ecr namespace, followed by the region of the repository, Amazon Web Services account * ID of the repository owner, repository namespace, and repository name. For example, * arn:aws:ecr:region:012345678910:repository/test. */ public final String repositoryArn() { return repositoryArn; } /** *

* The Amazon Web Services account ID associated with the registry that contains the repository. *

* * @return The Amazon Web Services account ID associated with the registry that contains the repository. */ public final String registryId() { return registryId; } /** *

* The name of the repository. *

* * @return The name of the repository. */ public final String repositoryName() { return repositoryName; } /** *

* The URI for the repository. You can use this URI for container image push and pull * operations. *

* * @return The URI for the repository. You can use this URI for container image push and * pull operations. */ public final String repositoryUri() { return repositoryUri; } /** *

* The date and time, in JavaScript date format, when the repository was created. *

* * @return The date and time, in JavaScript date format, when the repository was created. */ public final Instant createdAt() { return createdAt; } /** *

* The tag mutability setting for the repository. *

*

* If the service returns an enum value that is not available in the current SDK version, * {@link #imageTagMutability} will return {@link ImageTagMutability#UNKNOWN_TO_SDK_VERSION}. The raw value returned * by the service is available from {@link #imageTagMutabilityAsString}. *

* * @return The tag mutability setting for the repository. * @see ImageTagMutability */ public final ImageTagMutability imageTagMutability() { return ImageTagMutability.fromValue(imageTagMutability); } /** *

* The tag mutability setting for the repository. *

*

* If the service returns an enum value that is not available in the current SDK version, * {@link #imageTagMutability} will return {@link ImageTagMutability#UNKNOWN_TO_SDK_VERSION}. The raw value returned * by the service is available from {@link #imageTagMutabilityAsString}. *

* * @return The tag mutability setting for the repository. * @see ImageTagMutability */ public final String imageTagMutabilityAsString() { return imageTagMutability; } /** * Returns the value of the ImageScanningConfiguration property for this object. * * @return The value of the ImageScanningConfiguration property for this object. */ public final ImageScanningConfiguration imageScanningConfiguration() { return imageScanningConfiguration; } /** *

* The encryption configuration for the repository. This determines how the contents of your repository are * encrypted at rest. *

* * @return The encryption configuration for the repository. This determines how the contents of your repository are * encrypted at rest. */ public final EncryptionConfiguration encryptionConfiguration() { return encryptionConfiguration; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + Objects.hashCode(repositoryArn()); hashCode = 31 * hashCode + Objects.hashCode(registryId()); hashCode = 31 * hashCode + Objects.hashCode(repositoryName()); hashCode = 31 * hashCode + Objects.hashCode(repositoryUri()); hashCode = 31 * hashCode + Objects.hashCode(createdAt()); hashCode = 31 * hashCode + Objects.hashCode(imageTagMutabilityAsString()); hashCode = 31 * hashCode + Objects.hashCode(imageScanningConfiguration()); hashCode = 31 * hashCode + Objects.hashCode(encryptionConfiguration()); return hashCode; } @Override public final boolean equals(Object obj) { return equalsBySdkFields(obj); } @Override public final boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof Repository)) { return false; } Repository other = (Repository) obj; return Objects.equals(repositoryArn(), other.repositoryArn()) && Objects.equals(registryId(), other.registryId()) && Objects.equals(repositoryName(), other.repositoryName()) && Objects.equals(repositoryUri(), other.repositoryUri()) && Objects.equals(createdAt(), other.createdAt()) && Objects.equals(imageTagMutabilityAsString(), other.imageTagMutabilityAsString()) && Objects.equals(imageScanningConfiguration(), other.imageScanningConfiguration()) && Objects.equals(encryptionConfiguration(), other.encryptionConfiguration()); } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. */ @Override public final String toString() { return ToString.builder("Repository").add("RepositoryArn", repositoryArn()).add("RegistryId", registryId()) .add("RepositoryName", repositoryName()).add("RepositoryUri", repositoryUri()).add("CreatedAt", createdAt()) .add("ImageTagMutability", imageTagMutabilityAsString()) .add("ImageScanningConfiguration", imageScanningConfiguration()) .add("EncryptionConfiguration", encryptionConfiguration()).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "repositoryArn": return Optional.ofNullable(clazz.cast(repositoryArn())); case "registryId": return Optional.ofNullable(clazz.cast(registryId())); case "repositoryName": return Optional.ofNullable(clazz.cast(repositoryName())); case "repositoryUri": return Optional.ofNullable(clazz.cast(repositoryUri())); case "createdAt": return Optional.ofNullable(clazz.cast(createdAt())); case "imageTagMutability": return Optional.ofNullable(clazz.cast(imageTagMutabilityAsString())); case "imageScanningConfiguration": return Optional.ofNullable(clazz.cast(imageScanningConfiguration())); case "encryptionConfiguration": return Optional.ofNullable(clazz.cast(encryptionConfiguration())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((Repository) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends SdkPojo, CopyableBuilder { /** *

* The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the arn:aws:ecr * namespace, followed by the region of the repository, Amazon Web Services account ID of the repository owner, * repository namespace, and repository name. For example, * arn:aws:ecr:region:012345678910:repository/test. *

* * @param repositoryArn * The Amazon Resource Name (ARN) that identifies the repository. The ARN contains the * arn:aws:ecr namespace, followed by the region of the repository, Amazon Web Services * account ID of the repository owner, repository namespace, and repository name. For example, * arn:aws:ecr:region:012345678910:repository/test. * @return Returns a reference to this object so that method calls can be chained together. */ Builder repositoryArn(String repositoryArn); /** *

* The Amazon Web Services account ID associated with the registry that contains the repository. *

* * @param registryId * The Amazon Web Services account ID associated with the registry that contains the repository. * @return Returns a reference to this object so that method calls can be chained together. */ Builder registryId(String registryId); /** *

* The name of the repository. *

* * @param repositoryName * The name of the repository. * @return Returns a reference to this object so that method calls can be chained together. */ Builder repositoryName(String repositoryName); /** *

* The URI for the repository. You can use this URI for container image push and pull * operations. *

* * @param repositoryUri * The URI for the repository. You can use this URI for container image push and * pull operations. * @return Returns a reference to this object so that method calls can be chained together. */ Builder repositoryUri(String repositoryUri); /** *

* The date and time, in JavaScript date format, when the repository was created. *

* * @param createdAt * The date and time, in JavaScript date format, when the repository was created. * @return Returns a reference to this object so that method calls can be chained together. */ Builder createdAt(Instant createdAt); /** *

* The tag mutability setting for the repository. *

* * @param imageTagMutability * The tag mutability setting for the repository. * @see ImageTagMutability * @return Returns a reference to this object so that method calls can be chained together. * @see ImageTagMutability */ Builder imageTagMutability(String imageTagMutability); /** *

* The tag mutability setting for the repository. *

* * @param imageTagMutability * The tag mutability setting for the repository. * @see ImageTagMutability * @return Returns a reference to this object so that method calls can be chained together. * @see ImageTagMutability */ Builder imageTagMutability(ImageTagMutability imageTagMutability); /** * Sets the value of the ImageScanningConfiguration property for this object. * * @param imageScanningConfiguration * The new value for the ImageScanningConfiguration property for this object. * @return Returns a reference to this object so that method calls can be chained together. */ Builder imageScanningConfiguration(ImageScanningConfiguration imageScanningConfiguration); /** * Sets the value of the ImageScanningConfiguration property for this object. * * This is a convenience that creates an instance of the {@link ImageScanningConfiguration.Builder} avoiding the * need to create one manually via {@link ImageScanningConfiguration#builder()}. * * When the {@link Consumer} completes, {@link ImageScanningConfiguration.Builder#build()} is called immediately * and its result is passed to {@link #imageScanningConfiguration(ImageScanningConfiguration)}. * * @param imageScanningConfiguration * a consumer that will call methods on {@link ImageScanningConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #imageScanningConfiguration(ImageScanningConfiguration) */ default Builder imageScanningConfiguration(Consumer imageScanningConfiguration) { return imageScanningConfiguration(ImageScanningConfiguration.builder().applyMutation(imageScanningConfiguration) .build()); } /** *

* The encryption configuration for the repository. This determines how the contents of your repository are * encrypted at rest. *

* * @param encryptionConfiguration * The encryption configuration for the repository. This determines how the contents of your repository * are encrypted at rest. * @return Returns a reference to this object so that method calls can be chained together. */ Builder encryptionConfiguration(EncryptionConfiguration encryptionConfiguration); /** *

* The encryption configuration for the repository. This determines how the contents of your repository are * encrypted at rest. *

* This is a convenience that creates an instance of the {@link EncryptionConfiguration.Builder} avoiding the * need to create one manually via {@link EncryptionConfiguration#builder()}. * * When the {@link Consumer} completes, {@link EncryptionConfiguration.Builder#build()} is called immediately * and its result is passed to {@link #encryptionConfiguration(EncryptionConfiguration)}. * * @param encryptionConfiguration * a consumer that will call methods on {@link EncryptionConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #encryptionConfiguration(EncryptionConfiguration) */ default Builder encryptionConfiguration(Consumer encryptionConfiguration) { return encryptionConfiguration(EncryptionConfiguration.builder().applyMutation(encryptionConfiguration).build()); } } static final class BuilderImpl implements Builder { private String repositoryArn; private String registryId; private String repositoryName; private String repositoryUri; private Instant createdAt; private String imageTagMutability; private ImageScanningConfiguration imageScanningConfiguration; private EncryptionConfiguration encryptionConfiguration; private BuilderImpl() { } private BuilderImpl(Repository model) { repositoryArn(model.repositoryArn); registryId(model.registryId); repositoryName(model.repositoryName); repositoryUri(model.repositoryUri); createdAt(model.createdAt); imageTagMutability(model.imageTagMutability); imageScanningConfiguration(model.imageScanningConfiguration); encryptionConfiguration(model.encryptionConfiguration); } public final String getRepositoryArn() { return repositoryArn; } public final void setRepositoryArn(String repositoryArn) { this.repositoryArn = repositoryArn; } @Override @Transient public final Builder repositoryArn(String repositoryArn) { this.repositoryArn = repositoryArn; return this; } public final String getRegistryId() { return registryId; } public final void setRegistryId(String registryId) { this.registryId = registryId; } @Override @Transient public final Builder registryId(String registryId) { this.registryId = registryId; return this; } public final String getRepositoryName() { return repositoryName; } public final void setRepositoryName(String repositoryName) { this.repositoryName = repositoryName; } @Override @Transient public final Builder repositoryName(String repositoryName) { this.repositoryName = repositoryName; return this; } public final String getRepositoryUri() { return repositoryUri; } public final void setRepositoryUri(String repositoryUri) { this.repositoryUri = repositoryUri; } @Override @Transient public final Builder repositoryUri(String repositoryUri) { this.repositoryUri = repositoryUri; return this; } public final Instant getCreatedAt() { return createdAt; } public final void setCreatedAt(Instant createdAt) { this.createdAt = createdAt; } @Override @Transient public final Builder createdAt(Instant createdAt) { this.createdAt = createdAt; return this; } public final String getImageTagMutability() { return imageTagMutability; } public final void setImageTagMutability(String imageTagMutability) { this.imageTagMutability = imageTagMutability; } @Override @Transient public final Builder imageTagMutability(String imageTagMutability) { this.imageTagMutability = imageTagMutability; return this; } @Override @Transient public final Builder imageTagMutability(ImageTagMutability imageTagMutability) { this.imageTagMutability(imageTagMutability == null ? null : imageTagMutability.toString()); return this; } public final ImageScanningConfiguration.Builder getImageScanningConfiguration() { return imageScanningConfiguration != null ? imageScanningConfiguration.toBuilder() : null; } public final void setImageScanningConfiguration(ImageScanningConfiguration.BuilderImpl imageScanningConfiguration) { this.imageScanningConfiguration = imageScanningConfiguration != null ? imageScanningConfiguration.build() : null; } @Override @Transient public final Builder imageScanningConfiguration(ImageScanningConfiguration imageScanningConfiguration) { this.imageScanningConfiguration = imageScanningConfiguration; return this; } public final EncryptionConfiguration.Builder getEncryptionConfiguration() { return encryptionConfiguration != null ? encryptionConfiguration.toBuilder() : null; } public final void setEncryptionConfiguration(EncryptionConfiguration.BuilderImpl encryptionConfiguration) { this.encryptionConfiguration = encryptionConfiguration != null ? encryptionConfiguration.build() : null; } @Override @Transient public final Builder encryptionConfiguration(EncryptionConfiguration encryptionConfiguration) { this.encryptionConfiguration = encryptionConfiguration; return this; } @Override public Repository build() { return new Repository(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy