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

software.amazon.awssdk.services.deadline.model.SearchJobsRequest Maven / Gradle / Ivy

Go to download

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

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.deadline.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.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.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 SearchJobsRequest extends DeadlineRequest implements
        ToCopyableBuilder {
    private static final SdkField FARM_ID_FIELD = SdkField. builder(MarshallingType.STRING).memberName("farmId")
            .getter(getter(SearchJobsRequest::farmId)).setter(setter(Builder::farmId))
            .traits(LocationTrait.builder().location(MarshallLocation.PATH).locationName("farmId").build()).build();

    private static final SdkField> QUEUE_IDS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("queueIds")
            .getter(getter(SearchJobsRequest::queueIds))
            .setter(setter(Builder::queueIds))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("queueIds").build(),
                    ListTrait
                            .builder()
                            .memberLocationName(null)
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.STRING)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("member").build()).build()).build()).build();

    private static final SdkField FILTER_EXPRESSIONS_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("filterExpressions")
            .getter(getter(SearchJobsRequest::filterExpressions)).setter(setter(Builder::filterExpressions))
            .constructor(SearchGroupedFilterExpressions::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("filterExpressions").build()).build();

    private static final SdkField> SORT_EXPRESSIONS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("sortExpressions")
            .getter(getter(SearchJobsRequest::sortExpressions))
            .setter(setter(Builder::sortExpressions))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("sortExpressions").build(),
                    ListTrait
                            .builder()
                            .memberLocationName(null)
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.SDK_POJO)
                                            .constructor(SearchSortExpression::builder)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("member").build()).build()).build()).build();

    private static final SdkField ITEM_OFFSET_FIELD = SdkField. builder(MarshallingType.INTEGER)
            .memberName("itemOffset").getter(getter(SearchJobsRequest::itemOffset)).setter(setter(Builder::itemOffset))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("itemOffset").build()).build();

    private static final SdkField PAGE_SIZE_FIELD = SdkField. builder(MarshallingType.INTEGER)
            .memberName("pageSize").getter(getter(SearchJobsRequest::pageSize)).setter(setter(Builder::pageSize))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("pageSize").build()).build();

    private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(FARM_ID_FIELD,
            QUEUE_IDS_FIELD, FILTER_EXPRESSIONS_FIELD, SORT_EXPRESSIONS_FIELD, ITEM_OFFSET_FIELD, PAGE_SIZE_FIELD));

    private final String farmId;

    private final List queueIds;

    private final SearchGroupedFilterExpressions filterExpressions;

    private final List sortExpressions;

    private final Integer itemOffset;

    private final Integer pageSize;

    private SearchJobsRequest(BuilderImpl builder) {
        super(builder);
        this.farmId = builder.farmId;
        this.queueIds = builder.queueIds;
        this.filterExpressions = builder.filterExpressions;
        this.sortExpressions = builder.sortExpressions;
        this.itemOffset = builder.itemOffset;
        this.pageSize = builder.pageSize;
    }

    /**
     * 

* The farm ID of the job. *

* * @return The farm ID of the job. */ public final String farmId() { return farmId; } /** * For responses, this returns true if the service returned a value for the QueueIds 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 hasQueueIds() { return queueIds != null && !(queueIds instanceof SdkAutoConstructList); } /** *

* The queue ID to use in the job search. *

*

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

* * @return The queue ID to use in the job search. */ public final List queueIds() { return queueIds; } /** *

* The filter expression, AND or OR, to use when searching among a group of search strings * in a resource. *

* You can use two groupings per search each within parenthesis (). *

*

* * @return The filter expression, AND or OR, to use when searching among a group of search * strings in a resource. *

* You can use two groupings per search each within parenthesis (). *

*/ public final SearchGroupedFilterExpressions filterExpressions() { return filterExpressions; } /** * For responses, this returns true if the service returned a value for the SortExpressions 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 hasSortExpressions() { return sortExpressions != null && !(sortExpressions instanceof SdkAutoConstructList); } /** *

* The search terms for a resource. *

*

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

* * @return The search terms for a resource. */ public final List sortExpressions() { return sortExpressions; } /** *

* Defines how far into the scrollable list to start the return of results. *

* * @return Defines how far into the scrollable list to start the return of results. */ public final Integer itemOffset() { return itemOffset; } /** *

* Specifies the number of items per page for the resource. *

* * @return Specifies the number of items per page for the resource. */ public final Integer pageSize() { return pageSize; } @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(farmId()); hashCode = 31 * hashCode + Objects.hashCode(hasQueueIds() ? queueIds() : null); hashCode = 31 * hashCode + Objects.hashCode(filterExpressions()); hashCode = 31 * hashCode + Objects.hashCode(hasSortExpressions() ? sortExpressions() : null); hashCode = 31 * hashCode + Objects.hashCode(itemOffset()); hashCode = 31 * hashCode + Objects.hashCode(pageSize()); 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 SearchJobsRequest)) { return false; } SearchJobsRequest other = (SearchJobsRequest) obj; return Objects.equals(farmId(), other.farmId()) && hasQueueIds() == other.hasQueueIds() && Objects.equals(queueIds(), other.queueIds()) && Objects.equals(filterExpressions(), other.filterExpressions()) && hasSortExpressions() == other.hasSortExpressions() && Objects.equals(sortExpressions(), other.sortExpressions()) && Objects.equals(itemOffset(), other.itemOffset()) && Objects.equals(pageSize(), other.pageSize()); } /** * 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("SearchJobsRequest").add("FarmId", farmId()).add("QueueIds", hasQueueIds() ? queueIds() : null) .add("FilterExpressions", filterExpressions()) .add("SortExpressions", hasSortExpressions() ? sortExpressions() : null).add("ItemOffset", itemOffset()) .add("PageSize", pageSize()).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "farmId": return Optional.ofNullable(clazz.cast(farmId())); case "queueIds": return Optional.ofNullable(clazz.cast(queueIds())); case "filterExpressions": return Optional.ofNullable(clazz.cast(filterExpressions())); case "sortExpressions": return Optional.ofNullable(clazz.cast(sortExpressions())); case "itemOffset": return Optional.ofNullable(clazz.cast(itemOffset())); case "pageSize": return Optional.ofNullable(clazz.cast(pageSize())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((SearchJobsRequest) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends DeadlineRequest.Builder, SdkPojo, CopyableBuilder { /** *

* The farm ID of the job. *

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

* The queue ID to use in the job search. *

* * @param queueIds * The queue ID to use in the job search. * @return Returns a reference to this object so that method calls can be chained together. */ Builder queueIds(Collection queueIds); /** *

* The queue ID to use in the job search. *

* * @param queueIds * The queue ID to use in the job search. * @return Returns a reference to this object so that method calls can be chained together. */ Builder queueIds(String... queueIds); /** *

* The filter expression, AND or OR, to use when searching among a group of search * strings in a resource. *

* You can use two groupings per search each within parenthesis (). *

*

* * @param filterExpressions * The filter expression, AND or OR, to use when searching among a group of * search strings in a resource. *

* You can use two groupings per search each within parenthesis (). *

* @return Returns a reference to this object so that method calls can be chained together. */ Builder filterExpressions(SearchGroupedFilterExpressions filterExpressions); /** *

* The filter expression, AND or OR, to use when searching among a group of search * strings in a resource. *

* You can use two groupings per search each within parenthesis (). *

*

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

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

* The search terms for a resource. *

* * @param sortExpressions * The search terms for a resource. * @return Returns a reference to this object so that method calls can be chained together. */ Builder sortExpressions(Collection sortExpressions); /** *

* The search terms for a resource. *

* * @param sortExpressions * The search terms for a resource. * @return Returns a reference to this object so that method calls can be chained together. */ Builder sortExpressions(SearchSortExpression... sortExpressions); /** *

* The search terms for a resource. *

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

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

* Defines how far into the scrollable list to start the return of results. *

* * @param itemOffset * Defines how far into the scrollable list to start the return of results. * @return Returns a reference to this object so that method calls can be chained together. */ Builder itemOffset(Integer itemOffset); /** *

* Specifies the number of items per page for the resource. *

* * @param pageSize * Specifies the number of items per page for the resource. * @return Returns a reference to this object so that method calls can be chained together. */ Builder pageSize(Integer pageSize); @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends DeadlineRequest.BuilderImpl implements Builder { private String farmId; private List queueIds = DefaultSdkAutoConstructList.getInstance(); private SearchGroupedFilterExpressions filterExpressions; private List sortExpressions = DefaultSdkAutoConstructList.getInstance(); private Integer itemOffset; private Integer pageSize; private BuilderImpl() { } private BuilderImpl(SearchJobsRequest model) { super(model); farmId(model.farmId); queueIds(model.queueIds); filterExpressions(model.filterExpressions); sortExpressions(model.sortExpressions); itemOffset(model.itemOffset); pageSize(model.pageSize); } public final String getFarmId() { return farmId; } public final void setFarmId(String farmId) { this.farmId = farmId; } @Override public final Builder farmId(String farmId) { this.farmId = farmId; return this; } public final Collection getQueueIds() { if (queueIds instanceof SdkAutoConstructList) { return null; } return queueIds; } public final void setQueueIds(Collection queueIds) { this.queueIds = SearchJobsRequestQueueIdsListCopier.copy(queueIds); } @Override public final Builder queueIds(Collection queueIds) { this.queueIds = SearchJobsRequestQueueIdsListCopier.copy(queueIds); return this; } @Override @SafeVarargs public final Builder queueIds(String... queueIds) { queueIds(Arrays.asList(queueIds)); return this; } public final SearchGroupedFilterExpressions.Builder getFilterExpressions() { return filterExpressions != null ? filterExpressions.toBuilder() : null; } public final void setFilterExpressions(SearchGroupedFilterExpressions.BuilderImpl filterExpressions) { this.filterExpressions = filterExpressions != null ? filterExpressions.build() : null; } @Override public final Builder filterExpressions(SearchGroupedFilterExpressions filterExpressions) { this.filterExpressions = filterExpressions; return this; } public final List getSortExpressions() { List result = SearchSortExpressionsCopier.copyToBuilder(this.sortExpressions); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setSortExpressions(Collection sortExpressions) { this.sortExpressions = SearchSortExpressionsCopier.copyFromBuilder(sortExpressions); } @Override public final Builder sortExpressions(Collection sortExpressions) { this.sortExpressions = SearchSortExpressionsCopier.copy(sortExpressions); return this; } @Override @SafeVarargs public final Builder sortExpressions(SearchSortExpression... sortExpressions) { sortExpressions(Arrays.asList(sortExpressions)); return this; } @Override @SafeVarargs public final Builder sortExpressions(Consumer... sortExpressions) { sortExpressions(Stream.of(sortExpressions).map(c -> SearchSortExpression.builder().applyMutation(c).build()) .collect(Collectors.toList())); return this; } public final Integer getItemOffset() { return itemOffset; } public final void setItemOffset(Integer itemOffset) { this.itemOffset = itemOffset; } @Override public final Builder itemOffset(Integer itemOffset) { this.itemOffset = itemOffset; return this; } public final Integer getPageSize() { return pageSize; } public final void setPageSize(Integer pageSize) { this.pageSize = pageSize; } @Override public final Builder pageSize(Integer pageSize) { this.pageSize = pageSize; 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 SearchJobsRequest build() { return new SearchJobsRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy