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

software.amazon.awssdk.services.securityhub.model.BatchGetStandardsControlAssociationsResponse 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.securityhub.model;

import java.util.Arrays;
import java.util.Collection;
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 java.util.stream.Collectors;
import java.util.stream.Stream;
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.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
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 BatchGetStandardsControlAssociationsResponse extends SecurityHubResponse implements
        ToCopyableBuilder {
    private static final SdkField> STANDARDS_CONTROL_ASSOCIATION_DETAILS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("StandardsControlAssociationDetails")
            .getter(getter(BatchGetStandardsControlAssociationsResponse::standardsControlAssociationDetails))
            .setter(setter(Builder::standardsControlAssociationDetails))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("StandardsControlAssociationDetails")
                    .build(),
                    ListTrait
                            .builder()
                            .memberLocationName(null)
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.SDK_POJO)
                                            .constructor(StandardsControlAssociationDetail::builder)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("member").build()).build()).build()).build();

    private static final SdkField> UNPROCESSED_ASSOCIATIONS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("UnprocessedAssociations")
            .getter(getter(BatchGetStandardsControlAssociationsResponse::unprocessedAssociations))
            .setter(setter(Builder::unprocessedAssociations))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("UnprocessedAssociations").build(),
                    ListTrait
                            .builder()
                            .memberLocationName(null)
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.SDK_POJO)
                                            .constructor(UnprocessedStandardsControlAssociation::builder)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("member").build()).build()).build()).build();

    private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(
            STANDARDS_CONTROL_ASSOCIATION_DETAILS_FIELD, UNPROCESSED_ASSOCIATIONS_FIELD));

    private final List standardsControlAssociationDetails;

    private final List unprocessedAssociations;

    private BatchGetStandardsControlAssociationsResponse(BuilderImpl builder) {
        super(builder);
        this.standardsControlAssociationDetails = builder.standardsControlAssociationDetails;
        this.unprocessedAssociations = builder.unprocessedAssociations;
    }

    /**
     * For responses, this returns true if the service returned a value for the StandardsControlAssociationDetails
     * 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 hasStandardsControlAssociationDetails() {
        return standardsControlAssociationDetails != null
                && !(standardsControlAssociationDetails instanceof SdkAutoConstructList);
    }

    /**
     * 

* Provides the enablement status of a security control in a specified standard and other details for the control in * relation to the specified standard. *

*

* 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 #hasStandardsControlAssociationDetails} * method. *

* * @return Provides the enablement status of a security control in a specified standard and other details for the * control in relation to the specified standard. */ public final List standardsControlAssociationDetails() { return standardsControlAssociationDetails; } /** * For responses, this returns true if the service returned a value for the UnprocessedAssociations 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 hasUnprocessedAssociations() { return unprocessedAssociations != null && !(unprocessedAssociations instanceof SdkAutoConstructList); } /** *

* A security control (identified with SecurityControlId, SecurityControlArn, or a mix of * both parameters) whose enablement status in a specified standard cannot be returned. *

*

* 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 #hasUnprocessedAssociations} method. *

* * @return A security control (identified with SecurityControlId, SecurityControlArn, or a * mix of both parameters) whose enablement status in a specified standard cannot be returned. */ public final List unprocessedAssociations() { return unprocessedAssociations; } @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(hasStandardsControlAssociationDetails() ? standardsControlAssociationDetails() : null); hashCode = 31 * hashCode + Objects.hashCode(hasUnprocessedAssociations() ? unprocessedAssociations() : null); 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 BatchGetStandardsControlAssociationsResponse)) { return false; } BatchGetStandardsControlAssociationsResponse other = (BatchGetStandardsControlAssociationsResponse) obj; return hasStandardsControlAssociationDetails() == other.hasStandardsControlAssociationDetails() && Objects.equals(standardsControlAssociationDetails(), other.standardsControlAssociationDetails()) && hasUnprocessedAssociations() == other.hasUnprocessedAssociations() && Objects.equals(unprocessedAssociations(), other.unprocessedAssociations()); } /** * 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("BatchGetStandardsControlAssociationsResponse") .add("StandardsControlAssociationDetails", hasStandardsControlAssociationDetails() ? standardsControlAssociationDetails() : null) .add("UnprocessedAssociations", hasUnprocessedAssociations() ? unprocessedAssociations() : null).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "StandardsControlAssociationDetails": return Optional.ofNullable(clazz.cast(standardsControlAssociationDetails())); case "UnprocessedAssociations": return Optional.ofNullable(clazz.cast(unprocessedAssociations())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((BatchGetStandardsControlAssociationsResponse) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends SecurityHubResponse.Builder, SdkPojo, CopyableBuilder { /** *

* Provides the enablement status of a security control in a specified standard and other details for the * control in relation to the specified standard. *

* * @param standardsControlAssociationDetails * Provides the enablement status of a security control in a specified standard and other details for the * control in relation to the specified standard. * @return Returns a reference to this object so that method calls can be chained together. */ Builder standardsControlAssociationDetails( Collection standardsControlAssociationDetails); /** *

* Provides the enablement status of a security control in a specified standard and other details for the * control in relation to the specified standard. *

* * @param standardsControlAssociationDetails * Provides the enablement status of a security control in a specified standard and other details for the * control in relation to the specified standard. * @return Returns a reference to this object so that method calls can be chained together. */ Builder standardsControlAssociationDetails(StandardsControlAssociationDetail... standardsControlAssociationDetails); /** *

* Provides the enablement status of a security control in a specified standard and other details for the * control in relation to the specified standard. *

* This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.securityhub.model.StandardsControlAssociationDetail.Builder} avoiding * the need to create one manually via * {@link software.amazon.awssdk.services.securityhub.model.StandardsControlAssociationDetail#builder()}. * *

* When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.securityhub.model.StandardsControlAssociationDetail.Builder#build()} * is called immediately and its result is passed to {@link * #standardsControlAssociationDetails(List)}. * * @param standardsControlAssociationDetails * a consumer that will call methods on * {@link software.amazon.awssdk.services.securityhub.model.StandardsControlAssociationDetail.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #standardsControlAssociationDetails(java.util.Collection) */ Builder standardsControlAssociationDetails( Consumer... standardsControlAssociationDetails); /** *

* A security control (identified with SecurityControlId, SecurityControlArn, or a mix * of both parameters) whose enablement status in a specified standard cannot be returned. *

* * @param unprocessedAssociations * A security control (identified with SecurityControlId, SecurityControlArn, * or a mix of both parameters) whose enablement status in a specified standard cannot be returned. * @return Returns a reference to this object so that method calls can be chained together. */ Builder unprocessedAssociations(Collection unprocessedAssociations); /** *

* A security control (identified with SecurityControlId, SecurityControlArn, or a mix * of both parameters) whose enablement status in a specified standard cannot be returned. *

* * @param unprocessedAssociations * A security control (identified with SecurityControlId, SecurityControlArn, * or a mix of both parameters) whose enablement status in a specified standard cannot be returned. * @return Returns a reference to this object so that method calls can be chained together. */ Builder unprocessedAssociations(UnprocessedStandardsControlAssociation... unprocessedAssociations); /** *

* A security control (identified with SecurityControlId, SecurityControlArn, or a mix * of both parameters) whose enablement status in a specified standard cannot be returned. *

* This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.securityhub.model.UnprocessedStandardsControlAssociation.Builder} * avoiding the need to create one manually via * {@link software.amazon.awssdk.services.securityhub.model.UnprocessedStandardsControlAssociation#builder()}. * *

* When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.securityhub.model.UnprocessedStandardsControlAssociation.Builder#build()} * is called immediately and its result is passed to {@link * #unprocessedAssociations(List)}. * * @param unprocessedAssociations * a consumer that will call methods on * {@link software.amazon.awssdk.services.securityhub.model.UnprocessedStandardsControlAssociation.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #unprocessedAssociations(java.util.Collection) */ Builder unprocessedAssociations(Consumer... unprocessedAssociations); } static final class BuilderImpl extends SecurityHubResponse.BuilderImpl implements Builder { private List standardsControlAssociationDetails = DefaultSdkAutoConstructList .getInstance(); private List unprocessedAssociations = DefaultSdkAutoConstructList.getInstance(); private BuilderImpl() { } private BuilderImpl(BatchGetStandardsControlAssociationsResponse model) { super(model); standardsControlAssociationDetails(model.standardsControlAssociationDetails); unprocessedAssociations(model.unprocessedAssociations); } public final List getStandardsControlAssociationDetails() { List result = StandardsControlAssociationDetailsCopier .copyToBuilder(this.standardsControlAssociationDetails); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setStandardsControlAssociationDetails( Collection standardsControlAssociationDetails) { this.standardsControlAssociationDetails = StandardsControlAssociationDetailsCopier .copyFromBuilder(standardsControlAssociationDetails); } @Override public final Builder standardsControlAssociationDetails( Collection standardsControlAssociationDetails) { this.standardsControlAssociationDetails = StandardsControlAssociationDetailsCopier .copy(standardsControlAssociationDetails); return this; } @Override @SafeVarargs public final Builder standardsControlAssociationDetails( StandardsControlAssociationDetail... standardsControlAssociationDetails) { standardsControlAssociationDetails(Arrays.asList(standardsControlAssociationDetails)); return this; } @Override @SafeVarargs public final Builder standardsControlAssociationDetails( Consumer... standardsControlAssociationDetails) { standardsControlAssociationDetails(Stream.of(standardsControlAssociationDetails) .map(c -> StandardsControlAssociationDetail.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } public final List getUnprocessedAssociations() { List result = UnprocessedStandardsControlAssociationsCopier .copyToBuilder(this.unprocessedAssociations); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setUnprocessedAssociations( Collection unprocessedAssociations) { this.unprocessedAssociations = UnprocessedStandardsControlAssociationsCopier.copyFromBuilder(unprocessedAssociations); } @Override public final Builder unprocessedAssociations(Collection unprocessedAssociations) { this.unprocessedAssociations = UnprocessedStandardsControlAssociationsCopier.copy(unprocessedAssociations); return this; } @Override @SafeVarargs public final Builder unprocessedAssociations(UnprocessedStandardsControlAssociation... unprocessedAssociations) { unprocessedAssociations(Arrays.asList(unprocessedAssociations)); return this; } @Override @SafeVarargs public final Builder unprocessedAssociations( Consumer... unprocessedAssociations) { unprocessedAssociations(Stream.of(unprocessedAssociations) .map(c -> UnprocessedStandardsControlAssociation.builder().applyMutation(c).build()) .collect(Collectors.toList())); return this; } @Override public BatchGetStandardsControlAssociationsResponse build() { return new BatchGetStandardsControlAssociationsResponse(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy