
software.amazon.awssdk.services.batch.model.ListJobsRequest Maven / Gradle / Ivy
/*
* Copyright 2014-2019 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.batch.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 ListJobsRequest extends BatchRequest implements ToCopyableBuilder {
private static final SdkField JOB_QUEUE_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(ListJobsRequest::jobQueue)).setter(setter(Builder::jobQueue))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("jobQueue").build()).build();
private static final SdkField ARRAY_JOB_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(ListJobsRequest::arrayJobId)).setter(setter(Builder::arrayJobId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("arrayJobId").build()).build();
private static final SdkField MULTI_NODE_JOB_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(ListJobsRequest::multiNodeJobId)).setter(setter(Builder::multiNodeJobId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("multiNodeJobId").build()).build();
private static final SdkField JOB_STATUS_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(ListJobsRequest::jobStatusAsString)).setter(setter(Builder::jobStatus))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("jobStatus").build()).build();
private static final SdkField MAX_RESULTS_FIELD = SdkField. builder(MarshallingType.INTEGER)
.getter(getter(ListJobsRequest::maxResults)).setter(setter(Builder::maxResults))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("maxResults").build()).build();
private static final SdkField NEXT_TOKEN_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(ListJobsRequest::nextToken)).setter(setter(Builder::nextToken))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("nextToken").build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(JOB_QUEUE_FIELD,
ARRAY_JOB_ID_FIELD, MULTI_NODE_JOB_ID_FIELD, JOB_STATUS_FIELD, MAX_RESULTS_FIELD, NEXT_TOKEN_FIELD));
private final String jobQueue;
private final String arrayJobId;
private final String multiNodeJobId;
private final String jobStatus;
private final Integer maxResults;
private final String nextToken;
private ListJobsRequest(BuilderImpl builder) {
super(builder);
this.jobQueue = builder.jobQueue;
this.arrayJobId = builder.arrayJobId;
this.multiNodeJobId = builder.multiNodeJobId;
this.jobStatus = builder.jobStatus;
this.maxResults = builder.maxResults;
this.nextToken = builder.nextToken;
}
/**
*
* The name or full Amazon Resource Name (ARN) of the job queue with which to list jobs.
*
*
* @return The name or full Amazon Resource Name (ARN) of the job queue with which to list jobs.
*/
public String jobQueue() {
return jobQueue;
}
/**
*
* The job ID for an array job. Specifying an array job ID with this parameter lists all child jobs from within the
* specified array.
*
*
* @return The job ID for an array job. Specifying an array job ID with this parameter lists all child jobs from
* within the specified array.
*/
public String arrayJobId() {
return arrayJobId;
}
/**
*
* The job ID for a multi-node parallel job. Specifying a multi-node parallel job ID with this parameter lists all
* nodes that are associated with the specified job.
*
*
* @return The job ID for a multi-node parallel job. Specifying a multi-node parallel job ID with this parameter
* lists all nodes that are associated with the specified job.
*/
public String multiNodeJobId() {
return multiNodeJobId;
}
/**
*
* The job status with which to filter jobs in the specified queue. If you do not specify a status, only
* RUNNING
jobs are returned.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #jobStatus} will
* return {@link JobStatus#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #jobStatusAsString}.
*
*
* @return The job status with which to filter jobs in the specified queue. If you do not specify a status, only
* RUNNING
jobs are returned.
* @see JobStatus
*/
public JobStatus jobStatus() {
return JobStatus.fromValue(jobStatus);
}
/**
*
* The job status with which to filter jobs in the specified queue. If you do not specify a status, only
* RUNNING
jobs are returned.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #jobStatus} will
* return {@link JobStatus#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #jobStatusAsString}.
*
*
* @return The job status with which to filter jobs in the specified queue. If you do not specify a status, only
* RUNNING
jobs are returned.
* @see JobStatus
*/
public String jobStatusAsString() {
return jobStatus;
}
/**
*
* The maximum number of results returned by ListJobs
in paginated output. When this parameter is used,
* ListJobs
only returns maxResults
results in a single page along with a
* nextToken
response element. The remaining results of the initial request can be seen by sending
* another ListJobs
request with the returned nextToken
value. This value can be between 1
* and 100. If this parameter is not used, then ListJobs
returns up to 100 results and a
* nextToken
value if applicable.
*
*
* @return The maximum number of results returned by ListJobs
in paginated output. When this parameter
* is used, ListJobs
only returns maxResults
results in a single page along with a
* nextToken
response element. The remaining results of the initial request can be seen by
* sending another ListJobs
request with the returned nextToken
value. This value
* can be between 1 and 100. If this parameter is not used, then ListJobs
returns up to 100
* results and a nextToken
value if applicable.
*/
public Integer maxResults() {
return maxResults;
}
/**
*
* The nextToken
value returned from a previous paginated ListJobs
request where
* maxResults
was used and the results exceeded the value of that parameter. Pagination continues from
* the end of the previous results that returned the nextToken
value. This value is null
* when there are no more results to return.
*
*
*
* This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and
* not for other programmatic purposes.
*
*
*
* @return The nextToken
value returned from a previous paginated ListJobs
request where
* maxResults
was used and the results exceeded the value of that parameter. Pagination
* continues from the end of the previous results that returned the nextToken
value. This value
* is null
when there are no more results to return.
*
* This token should be treated as an opaque identifier that is only used to retrieve the next items in a
* list and not for other programmatic purposes.
*
*/
public String nextToken() {
return nextToken;
}
@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 int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + super.hashCode();
hashCode = 31 * hashCode + Objects.hashCode(jobQueue());
hashCode = 31 * hashCode + Objects.hashCode(arrayJobId());
hashCode = 31 * hashCode + Objects.hashCode(multiNodeJobId());
hashCode = 31 * hashCode + Objects.hashCode(jobStatusAsString());
hashCode = 31 * hashCode + Objects.hashCode(maxResults());
hashCode = 31 * hashCode + Objects.hashCode(nextToken());
return hashCode;
}
@Override
public boolean equals(Object obj) {
return super.equals(obj) && equalsBySdkFields(obj);
}
@Override
public boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof ListJobsRequest)) {
return false;
}
ListJobsRequest other = (ListJobsRequest) obj;
return Objects.equals(jobQueue(), other.jobQueue()) && Objects.equals(arrayJobId(), other.arrayJobId())
&& Objects.equals(multiNodeJobId(), other.multiNodeJobId())
&& Objects.equals(jobStatusAsString(), other.jobStatusAsString())
&& Objects.equals(maxResults(), other.maxResults()) && Objects.equals(nextToken(), other.nextToken());
}
/**
* 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 String toString() {
return ToString.builder("ListJobsRequest").add("JobQueue", jobQueue()).add("ArrayJobId", arrayJobId())
.add("MultiNodeJobId", multiNodeJobId()).add("JobStatus", jobStatusAsString()).add("MaxResults", maxResults())
.add("NextToken", nextToken()).build();
}
public Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "jobQueue":
return Optional.ofNullable(clazz.cast(jobQueue()));
case "arrayJobId":
return Optional.ofNullable(clazz.cast(arrayJobId()));
case "multiNodeJobId":
return Optional.ofNullable(clazz.cast(multiNodeJobId()));
case "jobStatus":
return Optional.ofNullable(clazz.cast(jobStatusAsString()));
case "maxResults":
return Optional.ofNullable(clazz.cast(maxResults()));
case "nextToken":
return Optional.ofNullable(clazz.cast(nextToken()));
default:
return Optional.empty();
}
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
private static Function