/* * Copyright 2010-2023 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 com.amazonaws.services.rekognition.model; import java.io.Serializable; import com.amazonaws.AmazonWebServiceRequest; /** *

* Gets the face search results for Amazon Rekognition Video face search started * by StartFaceSearch. The search returns faces in a collection that * match the faces of persons detected in a video. It also includes the time(s) * that faces are matched in the video. *

*

* Face search in a video is an asynchronous operation. You start face search by * calling to StartFaceSearch which returns a job identifier ( * JobId). When the search operation finishes, Amazon Rekognition * Video publishes a completion status to the Amazon Simple Notification Service * topic registered in the initial call to StartFaceSearch. To get * the search results, first check that the status value published to the Amazon * SNS topic is SUCCEEDED. If so, call GetFaceSearch * and pass the job identifier (JobId) from the initial call to * StartFaceSearch. *

*

* For more information, see Searching Faces in a Collection in the Amazon * Rekognition Developer Guide. *

*

* The search results are retured in an array, Persons, of * PersonMatch objects. EachPersonMatch element contains * details about the matching faces in the input collection, person information * (facial attributes, bounding boxes, and person identifer) for the matched * person, and the time the person was matched in the video. *

* *

* GetFaceSearch only returns the default facial attributes ( * BoundingBox, Confidence, Landmarks, * Pose, and Quality). The other facial attributes * listed in the Face object of the following response syntax are * not returned. For more information, see FaceDetail in the Amazon Rekognition * Developer Guide. *

*
*

* By default, the Persons array is sorted by the time, in * milliseconds from the start of the video, persons are matched. You can also * sort by persons by specifying INDEX for the SORTBY * input parameter. *

*/ public class GetFaceSearchRequest extends AmazonWebServiceRequest implements Serializable { /** *

* The job identifer for the search request. You get the job identifier from * an initial call to StartFaceSearch. *

*

* Constraints:
* Length: 1 - 64
* Pattern: ^[a-zA-Z0-9-_]+$
*/ private String jobId; /** *

* Maximum number of results to return per paginated call. The largest value * you can specify is 1000. If you specify a value greater than 1000, a * maximum of 1000 results is returned. The default value is 1000. *

*

* Constraints:
* Range: 1 -
*/ private Integer maxResults; /** *

* If the previous response was incomplete (because there is more search * results to retrieve), Amazon Rekognition Video returns a pagination token * in the response. You can use this pagination token to retrieve the next * set of search results. *

*

* Constraints:
* Length: - 255
*/ private String nextToken; /** *

* Sort to use for grouping faces in the response. Use * TIMESTAMP to group faces by the time that they are * recognized. Use INDEX to sort by recognized faces. *

*

* Constraints:
* Allowed Values: INDEX, TIMESTAMP */ private String sortBy; /** *

* The job identifer for the search request. You get the job identifier from * an initial call to StartFaceSearch. *

*

* Constraints:
* Length: 1 - 64
* Pattern: ^[a-zA-Z0-9-_]+$
* * @return

* The job identifer for the search request. You get the job * identifier from an initial call to StartFaceSearch. *

*/ public String getJobId() { return jobId; } /** *

* The job identifer for the search request. You get the job identifier from * an initial call to StartFaceSearch. *

*

* Constraints:
* Length: 1 - 64
* Pattern: ^[a-zA-Z0-9-_]+$
* * @param jobId

* The job identifer for the search request. You get the job * identifier from an initial call to * StartFaceSearch. *

*/ public void setJobId(String jobId) { this.jobId = jobId; } /** *

* The job identifer for the search request. You get the job identifier from * an initial call to StartFaceSearch. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: 1 - 64
* Pattern: ^[a-zA-Z0-9-_]+$
* * @param jobId

* The job identifer for the search request. You get the job * identifier from an initial call to * StartFaceSearch. *

* @return A reference to this updated object so that method calls can be * chained together. */ public GetFaceSearchRequest withJobId(String jobId) { this.jobId = jobId; return this; } /** *

* Maximum number of results to return per paginated call. The largest value * you can specify is 1000. If you specify a value greater than 1000, a * maximum of 1000 results is returned. The default value is 1000. *

*

* Constraints:
* Range: 1 -
* * @return

* Maximum number of results to return per paginated call. The * largest value you can specify is 1000. If you specify a value * greater than 1000, a maximum of 1000 results is returned. The * default value is 1000. *

*/ public Integer getMaxResults() { return maxResults; } /** *

* Maximum number of results to return per paginated call. The largest value * you can specify is 1000. If you specify a value greater than 1000, a * maximum of 1000 results is returned. The default value is 1000. *

*

* Constraints:
* Range: 1 -
* * @param maxResults

* Maximum number of results to return per paginated call. The * largest value you can specify is 1000. If you specify a value * greater than 1000, a maximum of 1000 results is returned. The * default value is 1000. *

*/ public void setMaxResults(Integer maxResults) { this.maxResults = maxResults; } /** *

* Maximum number of results to return per paginated call. The largest value * you can specify is 1000. If you specify a value greater than 1000, a * maximum of 1000 results is returned. The default value is 1000. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Range: 1 -
* * @param maxResults

* Maximum number of results to return per paginated call. The * largest value you can specify is 1000. If you specify a value * greater than 1000, a maximum of 1000 results is returned. The * default value is 1000. *

* @return A reference to this updated object so that method calls can be * chained together. */ public GetFaceSearchRequest withMaxResults(Integer maxResults) { this.maxResults = maxResults; return this; } /** *

* If the previous response was incomplete (because there is more search * results to retrieve), Amazon Rekognition Video returns a pagination token * in the response. You can use this pagination token to retrieve the next * set of search results. *

*

* Constraints:
* Length: - 255
* * @return

* If the previous response was incomplete (because there is more * search results to retrieve), Amazon Rekognition Video returns a * pagination token in the response. You can use this pagination * token to retrieve the next set of search results. *

*/ public String getNextToken() { return nextToken; } /** *

* If the previous response was incomplete (because there is more search * results to retrieve), Amazon Rekognition Video returns a pagination token * in the response. You can use this pagination token to retrieve the next * set of search results. *

*

* Constraints:
* Length: - 255
* * @param nextToken

* If the previous response was incomplete (because there is more * search results to retrieve), Amazon Rekognition Video returns * a pagination token in the response. You can use this * pagination token to retrieve the next set of search results. *

*/ public void setNextToken(String nextToken) { this.nextToken = nextToken; } /** *

* If the previous response was incomplete (because there is more search * results to retrieve), Amazon Rekognition Video returns a pagination token * in the response. You can use this pagination token to retrieve the next * set of search results. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Length: - 255
* * @param nextToken

* If the previous response was incomplete (because there is more * search results to retrieve), Amazon Rekognition Video returns * a pagination token in the response. You can use this * pagination token to retrieve the next set of search results. *

* @return A reference to this updated object so that method calls can be * chained together. */ public GetFaceSearchRequest withNextToken(String nextToken) { this.nextToken = nextToken; return this; } /** *

* Sort to use for grouping faces in the response. Use * TIMESTAMP to group faces by the time that they are * recognized. Use INDEX to sort by recognized faces. *

*

* Constraints:
* Allowed Values: INDEX, TIMESTAMP * * @return

* Sort to use for grouping faces in the response. Use * TIMESTAMP to group faces by the time that they are * recognized. Use INDEX to sort by recognized faces. *

* @see FaceSearchSortBy */ public String getSortBy() { return sortBy; } /** *

* Sort to use for grouping faces in the response. Use * TIMESTAMP to group faces by the time that they are * recognized. Use INDEX to sort by recognized faces. *

*

* Constraints:
* Allowed Values: INDEX, TIMESTAMP * * @param sortBy

* Sort to use for grouping faces in the response. Use * TIMESTAMP to group faces by the time that they * are recognized. Use INDEX to sort by recognized * faces. *

* @see FaceSearchSortBy */ public void setSortBy(String sortBy) { this.sortBy = sortBy; } /** *

* Sort to use for grouping faces in the response. Use * TIMESTAMP to group faces by the time that they are * recognized. Use INDEX to sort by recognized faces. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: INDEX, TIMESTAMP * * @param sortBy

* Sort to use for grouping faces in the response. Use * TIMESTAMP to group faces by the time that they * are recognized. Use INDEX to sort by recognized * faces. *

* @return A reference to this updated object so that method calls can be * chained together. * @see FaceSearchSortBy */ public GetFaceSearchRequest withSortBy(String sortBy) { this.sortBy = sortBy; return this; } /** *

* Sort to use for grouping faces in the response. Use * TIMESTAMP to group faces by the time that they are * recognized. Use INDEX to sort by recognized faces. *

*

* Constraints:
* Allowed Values: INDEX, TIMESTAMP * * @param sortBy

* Sort to use for grouping faces in the response. Use * TIMESTAMP to group faces by the time that they * are recognized. Use INDEX to sort by recognized * faces. *

* @see FaceSearchSortBy */ public void setSortBy(FaceSearchSortBy sortBy) { this.sortBy = sortBy.toString(); } /** *

* Sort to use for grouping faces in the response. Use * TIMESTAMP to group faces by the time that they are * recognized. Use INDEX to sort by recognized faces. *

*

* Returns a reference to this object so that method calls can be chained * together. *

* Constraints:
* Allowed Values: INDEX, TIMESTAMP * * @param sortBy

* Sort to use for grouping faces in the response. Use * TIMESTAMP to group faces by the time that they * are recognized. Use INDEX to sort by recognized * faces. *

* @return A reference to this updated object so that method calls can be * chained together. * @see FaceSearchSortBy */ public GetFaceSearchRequest withSortBy(FaceSearchSortBy sortBy) { this.sortBy = sortBy.toString(); return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getJobId() != null) sb.append("JobId: " + getJobId() + ","); if (getMaxResults() != null) sb.append("MaxResults: " + getMaxResults() + ","); if (getNextToken() != null) sb.append("NextToken: " + getNextToken() + ","); if (getSortBy() != null) sb.append("SortBy: " + getSortBy()); sb.append("}"); return sb.toString(); } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getJobId() == null) ? 0 : getJobId().hashCode()); hashCode = prime * hashCode + ((getMaxResults() == null) ? 0 : getMaxResults().hashCode()); hashCode = prime * hashCode + ((getNextToken() == null) ? 0 : getNextToken().hashCode()); hashCode = prime * hashCode + ((getSortBy() == null) ? 0 : getSortBy().hashCode()); return hashCode; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof GetFaceSearchRequest == false) return false; GetFaceSearchRequest other = (GetFaceSearchRequest) obj; if (other.getJobId() == null ^ this.getJobId() == null) return false; if (other.getJobId() != null && other.getJobId().equals(this.getJobId()) == false) return false; if (other.getMaxResults() == null ^ this.getMaxResults() == null) return false; if (other.getMaxResults() != null && other.getMaxResults().equals(this.getMaxResults()) == false) return false; if (other.getNextToken() == null ^ this.getNextToken() == null) return false; if (other.getNextToken() != null && other.getNextToken().equals(this.getNextToken()) == false) return false; if (other.getSortBy() == null ^ this.getSortBy() == null) return false; if (other.getSortBy() != null && other.getSortBy().equals(this.getSortBy()) == false) return false; return true; } }