Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
software.amazon.awssdk.services.codegurureviewer.model.AssociateRepositoryRequest Maven / Gradle / Ivy
Go to download
The AWS Java SDK for CodeGuru Reviewer module holds the client classes that are used for
communicating with CodeGuru Reviewer.
/*
* 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.codegurureviewer.model;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
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.awscore.AwsRequestOverrideConfiguration;
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.DefaultValueTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.traits.MapTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructMap;
import software.amazon.awssdk.core.util.SdkAutoConstructMap;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*/
@Generated("software.amazon.awssdk:codegen")
public final class AssociateRepositoryRequest extends CodeGuruReviewerRequest implements
ToCopyableBuilder {
private static final SdkField REPOSITORY_FIELD = SdkField. builder(MarshallingType.SDK_POJO)
.memberName("Repository").getter(getter(AssociateRepositoryRequest::repository)).setter(setter(Builder::repository))
.constructor(Repository::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Repository").build()).build();
private static final SdkField CLIENT_REQUEST_TOKEN_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("ClientRequestToken")
.getter(getter(AssociateRepositoryRequest::clientRequestToken))
.setter(setter(Builder::clientRequestToken))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClientRequestToken").build(),
DefaultValueTrait.idempotencyToken()).build();
private static final SdkField> TAGS_FIELD = SdkField
.> builder(MarshallingType.MAP)
.memberName("Tags")
.getter(getter(AssociateRepositoryRequest::tags))
.setter(setter(Builder::tags))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Tags").build(),
MapTrait.builder()
.keyLocationName("key")
.valueLocationName("value")
.valueFieldInfo(
SdkField. builder(MarshallingType.STRING)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("value").build()).build()).build()).build();
private static final SdkField KMS_KEY_DETAILS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("KMSKeyDetails")
.getter(getter(AssociateRepositoryRequest::kmsKeyDetails)).setter(setter(Builder::kmsKeyDetails))
.constructor(KMSKeyDetails::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("KMSKeyDetails").build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(REPOSITORY_FIELD,
CLIENT_REQUEST_TOKEN_FIELD, TAGS_FIELD, KMS_KEY_DETAILS_FIELD));
private final Repository repository;
private final String clientRequestToken;
private final Map tags;
private final KMSKeyDetails kmsKeyDetails;
private AssociateRepositoryRequest(BuilderImpl builder) {
super(builder);
this.repository = builder.repository;
this.clientRequestToken = builder.clientRequestToken;
this.tags = builder.tags;
this.kmsKeyDetails = builder.kmsKeyDetails;
}
/**
*
* The repository to associate.
*
*
* @return The repository to associate.
*/
public final Repository repository() {
return repository;
}
/**
*
* Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate repository associations
* if there are failures and retries.
*
*
* @return Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate repository
* associations if there are failures and retries.
*/
public final String clientRequestToken() {
return clientRequestToken;
}
/**
* For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that
* the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is useful
* because the SDK will never return a null collection or map, but you may need to differentiate between the service
* returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true
* if a value for the property was specified in the request builder, and false if a value was not specified.
*/
public final boolean hasTags() {
return tags != null && !(tags instanceof SdkAutoConstructMap);
}
/**
*
* An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two
* parts:
*
*
*
*
* A tag key (for example, CostCenter
, Environment
, Project
, or
* Secret
). Tag keys are case sensitive.
*
*
*
*
* An optional field known as a tag value (for example, 111122223333
, Production
,
* or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case
* sensitive.
*
*
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasTags} method.
*
*
* @return An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with
* two parts:
*
*
*
* A tag key (for example, CostCenter
, Environment
, Project
,
* or Secret
). Tag keys are case sensitive.
*
*
*
*
* An optional field known as a tag value (for example, 111122223333
,
* Production
, or a team name). Omitting the tag value is the same as using an empty string.
* Like tag keys, tag values are case sensitive.
*
*
*/
public final Map tags() {
return tags;
}
/**
*
* A KMSKeyDetails
object that contains:
*
*
*
*
* The encryption option for this repository association. It is either owned by Amazon Web Services Key Management
* Service (KMS) (AWS_OWNED_CMK
) or customer managed (CUSTOMER_MANAGED_CMK
).
*
*
*
*
* The ID of the Amazon Web Services KMS key that is associated with this repository association.
*
*
*
*
* @return A KMSKeyDetails
object that contains:
*
*
*
* The encryption option for this repository association. It is either owned by Amazon Web Services Key
* Management Service (KMS) (AWS_OWNED_CMK
) or customer managed (
* CUSTOMER_MANAGED_CMK
).
*
*
*
*
* The ID of the Amazon Web Services KMS key that is associated with this repository association.
*
*
*/
public final KMSKeyDetails kmsKeyDetails() {
return kmsKeyDetails;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + super.hashCode();
hashCode = 31 * hashCode + Objects.hashCode(repository());
hashCode = 31 * hashCode + Objects.hashCode(clientRequestToken());
hashCode = 31 * hashCode + Objects.hashCode(hasTags() ? tags() : null);
hashCode = 31 * hashCode + Objects.hashCode(kmsKeyDetails());
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return super.equals(obj) && equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof AssociateRepositoryRequest)) {
return false;
}
AssociateRepositoryRequest other = (AssociateRepositoryRequest) obj;
return Objects.equals(repository(), other.repository())
&& Objects.equals(clientRequestToken(), other.clientRequestToken()) && hasTags() == other.hasTags()
&& Objects.equals(tags(), other.tags()) && Objects.equals(kmsKeyDetails(), other.kmsKeyDetails());
}
/**
* 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("AssociateRepositoryRequest").add("Repository", repository())
.add("ClientRequestToken", clientRequestToken()).add("Tags", hasTags() ? tags() : null)
.add("KMSKeyDetails", kmsKeyDetails()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "Repository":
return Optional.ofNullable(clazz.cast(repository()));
case "ClientRequestToken":
return Optional.ofNullable(clazz.cast(clientRequestToken()));
case "Tags":
return Optional.ofNullable(clazz.cast(tags()));
case "KMSKeyDetails":
return Optional.ofNullable(clazz.cast(kmsKeyDetails()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function getter(Function g) {
return obj -> g.apply((AssociateRepositoryRequest) obj);
}
private static BiConsumer setter(BiConsumer s) {
return (obj, val) -> s.accept((Builder) obj, val);
}
public interface Builder extends CodeGuruReviewerRequest.Builder, SdkPojo,
CopyableBuilder {
/**
*
* The repository to associate.
*
*
* @param repository
* The repository to associate.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder repository(Repository repository);
/**
*
* The repository to associate.
*
* This is a convenience method that creates an instance of the {@link Repository.Builder} avoiding the need to
* create one manually via {@link Repository#builder()}.
*
*
* When the {@link Consumer} completes, {@link Repository.Builder#build()} is called immediately and its result
* is passed to {@link #repository(Repository)}.
*
* @param repository
* a consumer that will call methods on {@link Repository.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #repository(Repository)
*/
default Builder repository(Consumer repository) {
return repository(Repository.builder().applyMutation(repository).build());
}
/**
*
* Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate repository
* associations if there are failures and retries.
*
*
* @param clientRequestToken
* Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate repository
* associations if there are failures and retries.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder clientRequestToken(String clientRequestToken);
/**
*
* An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two
* parts:
*
*
*
*
* A tag key (for example, CostCenter
, Environment
, Project
, or
* Secret
). Tag keys are case sensitive.
*
*
*
*
* An optional field known as a tag value (for example, 111122223333
,
* Production
, or a team name). Omitting the tag value is the same as using an empty string. Like
* tag keys, tag values are case sensitive.
*
*
*
*
* @param tags
* An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label
* with two parts:
*
*
*
* A tag key (for example, CostCenter
, Environment
, Project
* , or Secret
). Tag keys are case sensitive.
*
*
*
*
* An optional field known as a tag value (for example, 111122223333
,
* Production
, or a team name). Omitting the tag value is the same as using an empty string.
* Like tag keys, tag values are case sensitive.
*
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder tags(Map tags);
/**
*
* A KMSKeyDetails
object that contains:
*
*
*
*
* The encryption option for this repository association. It is either owned by Amazon Web Services Key
* Management Service (KMS) (AWS_OWNED_CMK
) or customer managed (CUSTOMER_MANAGED_CMK
* ).
*
*
*
*
* The ID of the Amazon Web Services KMS key that is associated with this repository association.
*
*
*
*
* @param kmsKeyDetails
* A KMSKeyDetails
object that contains:
*
*
*
* The encryption option for this repository association. It is either owned by Amazon Web Services Key
* Management Service (KMS) (AWS_OWNED_CMK
) or customer managed (
* CUSTOMER_MANAGED_CMK
).
*
*
*
*
* The ID of the Amazon Web Services KMS key that is associated with this repository association.
*
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder kmsKeyDetails(KMSKeyDetails kmsKeyDetails);
/**
*
* A KMSKeyDetails
object that contains:
*
*
*
*
* The encryption option for this repository association. It is either owned by Amazon Web Services Key
* Management Service (KMS) (AWS_OWNED_CMK
) or customer managed (CUSTOMER_MANAGED_CMK
* ).
*
*
*
*
* The ID of the Amazon Web Services KMS key that is associated with this repository association.
*
*
*
* This is a convenience method that creates an instance of the {@link KMSKeyDetails.Builder} avoiding the need
* to create one manually via {@link KMSKeyDetails#builder()}.
*
*
* When the {@link Consumer} completes, {@link KMSKeyDetails.Builder#build()} is called immediately and its
* result is passed to {@link #kmsKeyDetails(KMSKeyDetails)}.
*
* @param kmsKeyDetails
* a consumer that will call methods on {@link KMSKeyDetails.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #kmsKeyDetails(KMSKeyDetails)
*/
default Builder kmsKeyDetails(Consumer kmsKeyDetails) {
return kmsKeyDetails(KMSKeyDetails.builder().applyMutation(kmsKeyDetails).build());
}
@Override
Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration);
@Override
Builder overrideConfiguration(Consumer builderConsumer);
}
static final class BuilderImpl extends CodeGuruReviewerRequest.BuilderImpl implements Builder {
private Repository repository;
private String clientRequestToken;
private Map tags = DefaultSdkAutoConstructMap.getInstance();
private KMSKeyDetails kmsKeyDetails;
private BuilderImpl() {
}
private BuilderImpl(AssociateRepositoryRequest model) {
super(model);
repository(model.repository);
clientRequestToken(model.clientRequestToken);
tags(model.tags);
kmsKeyDetails(model.kmsKeyDetails);
}
public final Repository.Builder getRepository() {
return repository != null ? repository.toBuilder() : null;
}
public final void setRepository(Repository.BuilderImpl repository) {
this.repository = repository != null ? repository.build() : null;
}
@Override
public final Builder repository(Repository repository) {
this.repository = repository;
return this;
}
public final String getClientRequestToken() {
return clientRequestToken;
}
public final void setClientRequestToken(String clientRequestToken) {
this.clientRequestToken = clientRequestToken;
}
@Override
public final Builder clientRequestToken(String clientRequestToken) {
this.clientRequestToken = clientRequestToken;
return this;
}
public final Map getTags() {
if (tags instanceof SdkAutoConstructMap) {
return null;
}
return tags;
}
public final void setTags(Map tags) {
this.tags = TagMapCopier.copy(tags);
}
@Override
public final Builder tags(Map tags) {
this.tags = TagMapCopier.copy(tags);
return this;
}
public final KMSKeyDetails.Builder getKmsKeyDetails() {
return kmsKeyDetails != null ? kmsKeyDetails.toBuilder() : null;
}
public final void setKmsKeyDetails(KMSKeyDetails.BuilderImpl kmsKeyDetails) {
this.kmsKeyDetails = kmsKeyDetails != null ? kmsKeyDetails.build() : null;
}
@Override
public final Builder kmsKeyDetails(KMSKeyDetails kmsKeyDetails) {
this.kmsKeyDetails = kmsKeyDetails;
return this;
}
@Override
public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) {
super.overrideConfiguration(overrideConfiguration);
return this;
}
@Override
public Builder overrideConfiguration(Consumer builderConsumer) {
super.overrideConfiguration(builderConsumer);
return this;
}
@Override
public AssociateRepositoryRequest build() {
return new AssociateRepositoryRequest(this);
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
}
}