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

software.amazon.awssdk.services.datazone.model.CreateProjectMembershipRequest Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Data Zone module holds the client classes that are used for communicating with Data Zone.

There is a newer version: 2.28.4
Show newest version
/*
 * 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.datazone.model;

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.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.LocationTrait;
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 CreateProjectMembershipRequest extends DataZoneRequest implements
        ToCopyableBuilder {
    private static final SdkField DESIGNATION_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("designation").getter(getter(CreateProjectMembershipRequest::designationAsString))
            .setter(setter(Builder::designation))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("designation").build()).build();

    private static final SdkField DOMAIN_IDENTIFIER_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("domainIdentifier").getter(getter(CreateProjectMembershipRequest::domainIdentifier))
            .setter(setter(Builder::domainIdentifier))
            .traits(LocationTrait.builder().location(MarshallLocation.PATH).locationName("domainIdentifier").build()).build();

    private static final SdkField MEMBER_FIELD = SdkField. builder(MarshallingType.SDK_POJO).memberName("member")
            .getter(getter(CreateProjectMembershipRequest::member)).setter(setter(Builder::member)).constructor(Member::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("member").build()).build();

    private static final SdkField PROJECT_IDENTIFIER_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("projectIdentifier").getter(getter(CreateProjectMembershipRequest::projectIdentifier))
            .setter(setter(Builder::projectIdentifier))
            .traits(LocationTrait.builder().location(MarshallLocation.PATH).locationName("projectIdentifier").build()).build();

    private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(DESIGNATION_FIELD,
            DOMAIN_IDENTIFIER_FIELD, MEMBER_FIELD, PROJECT_IDENTIFIER_FIELD));

    private final String designation;

    private final String domainIdentifier;

    private final Member member;

    private final String projectIdentifier;

    private CreateProjectMembershipRequest(BuilderImpl builder) {
        super(builder);
        this.designation = builder.designation;
        this.domainIdentifier = builder.domainIdentifier;
        this.member = builder.member;
        this.projectIdentifier = builder.projectIdentifier;
    }

    /**
     * 

* The designation of the project membership. *

*

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

* * @return The designation of the project membership. * @see UserDesignation */ public final UserDesignation designation() { return UserDesignation.fromValue(designation); } /** *

* The designation of the project membership. *

*

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

* * @return The designation of the project membership. * @see UserDesignation */ public final String designationAsString() { return designation; } /** *

* The ID of the Amazon DataZone domain in which project membership is created. *

* * @return The ID of the Amazon DataZone domain in which project membership is created. */ public final String domainIdentifier() { return domainIdentifier; } /** *

* The project member whose project membership was created. *

* * @return The project member whose project membership was created. */ public final Member member() { return member; } /** *

* The ID of the project for which this project membership was created. *

* * @return The ID of the project for which this project membership was created. */ public final String projectIdentifier() { return projectIdentifier; } @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 + super.hashCode(); hashCode = 31 * hashCode + Objects.hashCode(designationAsString()); hashCode = 31 * hashCode + Objects.hashCode(domainIdentifier()); hashCode = 31 * hashCode + Objects.hashCode(member()); hashCode = 31 * hashCode + Objects.hashCode(projectIdentifier()); 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 CreateProjectMembershipRequest)) { return false; } CreateProjectMembershipRequest other = (CreateProjectMembershipRequest) obj; return Objects.equals(designationAsString(), other.designationAsString()) && Objects.equals(domainIdentifier(), other.domainIdentifier()) && Objects.equals(member(), other.member()) && Objects.equals(projectIdentifier(), other.projectIdentifier()); } /** * 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("CreateProjectMembershipRequest").add("Designation", designationAsString()) .add("DomainIdentifier", domainIdentifier()).add("Member", member()) .add("ProjectIdentifier", projectIdentifier()).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "designation": return Optional.ofNullable(clazz.cast(designationAsString())); case "domainIdentifier": return Optional.ofNullable(clazz.cast(domainIdentifier())); case "member": return Optional.ofNullable(clazz.cast(member())); case "projectIdentifier": return Optional.ofNullable(clazz.cast(projectIdentifier())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((CreateProjectMembershipRequest) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends DataZoneRequest.Builder, SdkPojo, CopyableBuilder { /** *

* The designation of the project membership. *

* * @param designation * The designation of the project membership. * @see UserDesignation * @return Returns a reference to this object so that method calls can be chained together. * @see UserDesignation */ Builder designation(String designation); /** *

* The designation of the project membership. *

* * @param designation * The designation of the project membership. * @see UserDesignation * @return Returns a reference to this object so that method calls can be chained together. * @see UserDesignation */ Builder designation(UserDesignation designation); /** *

* The ID of the Amazon DataZone domain in which project membership is created. *

* * @param domainIdentifier * The ID of the Amazon DataZone domain in which project membership is created. * @return Returns a reference to this object so that method calls can be chained together. */ Builder domainIdentifier(String domainIdentifier); /** *

* The project member whose project membership was created. *

* * @param member * The project member whose project membership was created. * @return Returns a reference to this object so that method calls can be chained together. */ Builder member(Member member); /** *

* The project member whose project membership was created. *

* This is a convenience method that creates an instance of the {@link Member.Builder} avoiding the need to * create one manually via {@link Member#builder()}. * *

* When the {@link Consumer} completes, {@link Member.Builder#build()} is called immediately and its result is * passed to {@link #member(Member)}. * * @param member * a consumer that will call methods on {@link Member.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #member(Member) */ default Builder member(Consumer member) { return member(Member.builder().applyMutation(member).build()); } /** *

* The ID of the project for which this project membership was created. *

* * @param projectIdentifier * The ID of the project for which this project membership was created. * @return Returns a reference to this object so that method calls can be chained together. */ Builder projectIdentifier(String projectIdentifier); @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends DataZoneRequest.BuilderImpl implements Builder { private String designation; private String domainIdentifier; private Member member; private String projectIdentifier; private BuilderImpl() { } private BuilderImpl(CreateProjectMembershipRequest model) { super(model); designation(model.designation); domainIdentifier(model.domainIdentifier); member(model.member); projectIdentifier(model.projectIdentifier); } public final String getDesignation() { return designation; } public final void setDesignation(String designation) { this.designation = designation; } @Override public final Builder designation(String designation) { this.designation = designation; return this; } @Override public final Builder designation(UserDesignation designation) { this.designation(designation == null ? null : designation.toString()); return this; } public final String getDomainIdentifier() { return domainIdentifier; } public final void setDomainIdentifier(String domainIdentifier) { this.domainIdentifier = domainIdentifier; } @Override public final Builder domainIdentifier(String domainIdentifier) { this.domainIdentifier = domainIdentifier; return this; } public final Member.Builder getMember() { return member != null ? member.toBuilder() : null; } public final void setMember(Member.BuilderImpl member) { this.member = member != null ? member.build() : null; } @Override public final Builder member(Member member) { this.member = member; return this; } public final String getProjectIdentifier() { return projectIdentifier; } public final void setProjectIdentifier(String projectIdentifier) { this.projectIdentifier = projectIdentifier; } @Override public final Builder projectIdentifier(String projectIdentifier) { this.projectIdentifier = projectIdentifier; 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 CreateProjectMembershipRequest build() { return new CreateProjectMembershipRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy