/* * Copyright 2018-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.apigatewayv2.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** *

* Updates an Api. *

*/ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class UpdateApiRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* The API identifier. *

*/ private String apiId; /** *

* An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. *

*/ private String apiKeySelectionExpression; /** *

* A CORS configuration. Supported only for HTTP APIs. *

*/ private Cors corsConfiguration; /** *

* This property is part of quick create. It specifies the credentials required for the integration, if any. For a * Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, use the role's * Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify * arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, don't specify this parameter. * Currently, this property is not used for HTTP integrations. If provided, this value replaces the credentials * associated with the quick create integration. Supported only for HTTP APIs. *

*/ private String credentialsArn; /** *

* The description of the API. *

*/ private String description; /** *

* Avoid validating models when creating a deployment. Supported only for WebSocket APIs. *

*/ private Boolean disableSchemaValidation; /** *

* Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can * invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that * clients use a custom domain name to invoke your API, disable the default endpoint. *

*/ private Boolean disableExecuteApiEndpoint; /** *

* The name of the API. *

*/ private String name; /** *

* This property is part of quick create. If not specified, the route created using quick create is kept. Otherwise, * this value replaces the route key of the quick create route. Additional routes may still be added after the API * is updated. Supported only for HTTP APIs. *

*/ private String routeKey; /** *

* The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} * ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket * APIs. *

*/ private String routeSelectionExpression; /** *

* This property is part of quick create. For HTTP integrations, specify a fully qualified URL. For Lambda * integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. * The value provided updates the integration URI and integration type. You can update a quick-created target, but * you can't remove it from an API. Supported only for HTTP APIs. *

*/ private String target; /** *

* A version identifier for the API. *

*/ private String version; /** *

* The API identifier. *

* * @param apiId * The API identifier. */ public void setApiId(String apiId) { this.apiId = apiId; } /** *

* The API identifier. *

* * @return The API identifier. */ public String getApiId() { return this.apiId; } /** *

* The API identifier. *

* * @param apiId * The API identifier. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateApiRequest withApiId(String apiId) { setApiId(apiId); return this; } /** *

* An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. *

* * @param apiKeySelectionExpression * An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. */ public void setApiKeySelectionExpression(String apiKeySelectionExpression) { this.apiKeySelectionExpression = apiKeySelectionExpression; } /** *

* An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. *

* * @return An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. */ public String getApiKeySelectionExpression() { return this.apiKeySelectionExpression; } /** *

* An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. *

* * @param apiKeySelectionExpression * An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateApiRequest withApiKeySelectionExpression(String apiKeySelectionExpression) { setApiKeySelectionExpression(apiKeySelectionExpression); return this; } /** *

* A CORS configuration. Supported only for HTTP APIs. *

* * @param corsConfiguration * A CORS configuration. Supported only for HTTP APIs. */ public void setCorsConfiguration(Cors corsConfiguration) { this.corsConfiguration = corsConfiguration; } /** *

* A CORS configuration. Supported only for HTTP APIs. *

* * @return A CORS configuration. Supported only for HTTP APIs. */ public Cors getCorsConfiguration() { return this.corsConfiguration; } /** *

* A CORS configuration. Supported only for HTTP APIs. *

* * @param corsConfiguration * A CORS configuration. Supported only for HTTP APIs. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateApiRequest withCorsConfiguration(Cors corsConfiguration) { setCorsConfiguration(corsConfiguration); return this; } /** *

* This property is part of quick create. It specifies the credentials required for the integration, if any. For a * Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, use the role's * Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify * arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, don't specify this parameter. * Currently, this property is not used for HTTP integrations. If provided, this value replaces the credentials * associated with the quick create integration. Supported only for HTTP APIs. *

* * @param credentialsArn * This property is part of quick create. It specifies the credentials required for the integration, if any. * For a Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, * use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from * the request, specify arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, * don't specify this parameter. Currently, this property is not used for HTTP integrations. If provided, * this value replaces the credentials associated with the quick create integration. Supported only for HTTP * APIs. */ public void setCredentialsArn(String credentialsArn) { this.credentialsArn = credentialsArn; } /** *

* This property is part of quick create. It specifies the credentials required for the integration, if any. For a * Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, use the role's * Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify * arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, don't specify this parameter. * Currently, this property is not used for HTTP integrations. If provided, this value replaces the credentials * associated with the quick create integration. Supported only for HTTP APIs. *

* * @return This property is part of quick create. It specifies the credentials required for the integration, if any. * For a Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, * use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from * the request, specify arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, * don't specify this parameter. Currently, this property is not used for HTTP integrations. If provided, * this value replaces the credentials associated with the quick create integration. Supported only for HTTP * APIs. */ public String getCredentialsArn() { return this.credentialsArn; } /** *

* This property is part of quick create. It specifies the credentials required for the integration, if any. For a * Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, use the role's * Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify * arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, don't specify this parameter. * Currently, this property is not used for HTTP integrations. If provided, this value replaces the credentials * associated with the quick create integration. Supported only for HTTP APIs. *

* * @param credentialsArn * This property is part of quick create. It specifies the credentials required for the integration, if any. * For a Lambda integration, three options are available. To specify an IAM Role for API Gateway to assume, * use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from * the request, specify arn:aws:iam::*:user/*. To use resource-based permissions on supported AWS services, * don't specify this parameter. Currently, this property is not used for HTTP integrations. If provided, * this value replaces the credentials associated with the quick create integration. Supported only for HTTP * APIs. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateApiRequest withCredentialsArn(String credentialsArn) { setCredentialsArn(credentialsArn); return this; } /** *

* The description of the API. *

* * @param description * The description of the API. */ public void setDescription(String description) { this.description = description; } /** *

* The description of the API. *

* * @return The description of the API. */ public String getDescription() { return this.description; } /** *

* The description of the API. *

* * @param description * The description of the API. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateApiRequest withDescription(String description) { setDescription(description); return this; } /** *

* Avoid validating models when creating a deployment. Supported only for WebSocket APIs. *

* * @param disableSchemaValidation * Avoid validating models when creating a deployment. Supported only for WebSocket APIs. */ public void setDisableSchemaValidation(Boolean disableSchemaValidation) { this.disableSchemaValidation = disableSchemaValidation; } /** *

* Avoid validating models when creating a deployment. Supported only for WebSocket APIs. *

* * @return Avoid validating models when creating a deployment. Supported only for WebSocket APIs. */ public Boolean getDisableSchemaValidation() { return this.disableSchemaValidation; } /** *

* Avoid validating models when creating a deployment. Supported only for WebSocket APIs. *

* * @param disableSchemaValidation * Avoid validating models when creating a deployment. Supported only for WebSocket APIs. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateApiRequest withDisableSchemaValidation(Boolean disableSchemaValidation) { setDisableSchemaValidation(disableSchemaValidation); return this; } /** *

* Avoid validating models when creating a deployment. Supported only for WebSocket APIs. *

* * @return Avoid validating models when creating a deployment. Supported only for WebSocket APIs. */ public Boolean isDisableSchemaValidation() { return this.disableSchemaValidation; } /** *

* Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can * invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that * clients use a custom domain name to invoke your API, disable the default endpoint. *

* * @param disableExecuteApiEndpoint * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, * clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. * To require that clients use a custom domain name to invoke your API, disable the default endpoint. */ public void setDisableExecuteApiEndpoint(Boolean disableExecuteApiEndpoint) { this.disableExecuteApiEndpoint = disableExecuteApiEndpoint; } /** *

* Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can * invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that * clients use a custom domain name to invoke your API, disable the default endpoint. *

* * @return Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, * clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com * endpoint. To require that clients use a custom domain name to invoke your API, disable the default * endpoint. */ public Boolean getDisableExecuteApiEndpoint() { return this.disableExecuteApiEndpoint; } /** *

* Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can * invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that * clients use a custom domain name to invoke your API, disable the default endpoint. *

* * @param disableExecuteApiEndpoint * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, * clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. * To require that clients use a custom domain name to invoke your API, disable the default endpoint. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateApiRequest withDisableExecuteApiEndpoint(Boolean disableExecuteApiEndpoint) { setDisableExecuteApiEndpoint(disableExecuteApiEndpoint); return this; } /** *

* Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can * invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that * clients use a custom domain name to invoke your API, disable the default endpoint. *

* * @return Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, * clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com * endpoint. To require that clients use a custom domain name to invoke your API, disable the default * endpoint. */ public Boolean isDisableExecuteApiEndpoint() { return this.disableExecuteApiEndpoint; } /** *

* The name of the API. *

* * @param name * The name of the API. */ public void setName(String name) { this.name = name; } /** *

* The name of the API. *

* * @return The name of the API. */ public String getName() { return this.name; } /** *

* The name of the API. *

* * @param name * The name of the API. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateApiRequest withName(String name) { setName(name); return this; } /** *

* This property is part of quick create. If not specified, the route created using quick create is kept. Otherwise, * this value replaces the route key of the quick create route. Additional routes may still be added after the API * is updated. Supported only for HTTP APIs. *

* * @param routeKey * This property is part of quick create. If not specified, the route created using quick create is kept. * Otherwise, this value replaces the route key of the quick create route. Additional routes may still be * added after the API is updated. Supported only for HTTP APIs. */ public void setRouteKey(String routeKey) { this.routeKey = routeKey; } /** *

* This property is part of quick create. If not specified, the route created using quick create is kept. Otherwise, * this value replaces the route key of the quick create route. Additional routes may still be added after the API * is updated. Supported only for HTTP APIs. *

* * @return This property is part of quick create. If not specified, the route created using quick create is kept. * Otherwise, this value replaces the route key of the quick create route. Additional routes may still be * added after the API is updated. Supported only for HTTP APIs. */ public String getRouteKey() { return this.routeKey; } /** *

* This property is part of quick create. If not specified, the route created using quick create is kept. Otherwise, * this value replaces the route key of the quick create route. Additional routes may still be added after the API * is updated. Supported only for HTTP APIs. *

* * @param routeKey * This property is part of quick create. If not specified, the route created using quick create is kept. * Otherwise, this value replaces the route key of the quick create route. Additional routes may still be * added after the API is updated. Supported only for HTTP APIs. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateApiRequest withRouteKey(String routeKey) { setRouteKey(routeKey); return this; } /** *

* The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} * ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket * APIs. *

* * @param routeSelectionExpression * The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be * ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property * is required for WebSocket APIs. */ public void setRouteSelectionExpression(String routeSelectionExpression) { this.routeSelectionExpression = routeSelectionExpression; } /** *

* The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} * ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket * APIs. *

* * @return The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be * ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property * is required for WebSocket APIs. */ public String getRouteSelectionExpression() { return this.routeSelectionExpression; } /** *

* The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} * ${request.path}. If not provided, this will be the default for HTTP APIs. This property is required for WebSocket * APIs. *

* * @param routeSelectionExpression * The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be * ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This property * is required for WebSocket APIs. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateApiRequest withRouteSelectionExpression(String routeSelectionExpression) { setRouteSelectionExpression(routeSelectionExpression); return this; } /** *

* This property is part of quick create. For HTTP integrations, specify a fully qualified URL. For Lambda * integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. * The value provided updates the integration URI and integration type. You can update a quick-created target, but * you can't remove it from an API. Supported only for HTTP APIs. *

* * @param target * This property is part of quick create. For HTTP integrations, specify a fully qualified URL. For Lambda * integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, * respectively. The value provided updates the integration URI and integration type. You can update a * quick-created target, but you can't remove it from an API. Supported only for HTTP APIs. */ public void setTarget(String target) { this.target = target; } /** *

* This property is part of quick create. For HTTP integrations, specify a fully qualified URL. For Lambda * integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. * The value provided updates the integration URI and integration type. You can update a quick-created target, but * you can't remove it from an API. Supported only for HTTP APIs. *

* * @return This property is part of quick create. For HTTP integrations, specify a fully qualified URL. For Lambda * integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, * respectively. The value provided updates the integration URI and integration type. You can update a * quick-created target, but you can't remove it from an API. Supported only for HTTP APIs. */ public String getTarget() { return this.target; } /** *

* This property is part of quick create. For HTTP integrations, specify a fully qualified URL. For Lambda * integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, respectively. * The value provided updates the integration URI and integration type. You can update a quick-created target, but * you can't remove it from an API. Supported only for HTTP APIs. *

* * @param target * This property is part of quick create. For HTTP integrations, specify a fully qualified URL. For Lambda * integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROXY, * respectively. The value provided updates the integration URI and integration type. You can update a * quick-created target, but you can't remove it from an API. Supported only for HTTP APIs. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateApiRequest withTarget(String target) { setTarget(target); return this; } /** *

* A version identifier for the API. *

* * @param version * A version identifier for the API. */ public void setVersion(String version) { this.version = version; } /** *

* A version identifier for the API. *

* * @return A version identifier for the API. */ public String getVersion() { return this.version; } /** *

* A version identifier for the API. *

* * @param version * A version identifier for the API. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateApiRequest withVersion(String version) { setVersion(version); return this; } /** * 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. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getApiId() != null) sb.append("ApiId: ").append(getApiId()).append(","); if (getApiKeySelectionExpression() != null) sb.append("ApiKeySelectionExpression: ").append(getApiKeySelectionExpression()).append(","); if (getCorsConfiguration() != null) sb.append("CorsConfiguration: ").append(getCorsConfiguration()).append(","); if (getCredentialsArn() != null) sb.append("CredentialsArn: ").append(getCredentialsArn()).append(","); if (getDescription() != null) sb.append("Description: ").append(getDescription()).append(","); if (getDisableSchemaValidation() != null) sb.append("DisableSchemaValidation: ").append(getDisableSchemaValidation()).append(","); if (getDisableExecuteApiEndpoint() != null) sb.append("DisableExecuteApiEndpoint: ").append(getDisableExecuteApiEndpoint()).append(","); if (getName() != null) sb.append("Name: ").append(getName()).append(","); if (getRouteKey() != null) sb.append("RouteKey: ").append(getRouteKey()).append(","); if (getRouteSelectionExpression() != null) sb.append("RouteSelectionExpression: ").append(getRouteSelectionExpression()).append(","); if (getTarget() != null) sb.append("Target: ").append(getTarget()).append(","); if (getVersion() != null) sb.append("Version: ").append(getVersion()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof UpdateApiRequest == false) return false; UpdateApiRequest other = (UpdateApiRequest) obj; if (other.getApiId() == null ^ this.getApiId() == null) return false; if (other.getApiId() != null && other.getApiId().equals(this.getApiId()) == false) return false; if (other.getApiKeySelectionExpression() == null ^ this.getApiKeySelectionExpression() == null) return false; if (other.getApiKeySelectionExpression() != null && other.getApiKeySelectionExpression().equals(this.getApiKeySelectionExpression()) == false) return false; if (other.getCorsConfiguration() == null ^ this.getCorsConfiguration() == null) return false; if (other.getCorsConfiguration() != null && other.getCorsConfiguration().equals(this.getCorsConfiguration()) == false) return false; if (other.getCredentialsArn() == null ^ this.getCredentialsArn() == null) return false; if (other.getCredentialsArn() != null && other.getCredentialsArn().equals(this.getCredentialsArn()) == false) return false; if (other.getDescription() == null ^ this.getDescription() == null) return false; if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false) return false; if (other.getDisableSchemaValidation() == null ^ this.getDisableSchemaValidation() == null) return false; if (other.getDisableSchemaValidation() != null && other.getDisableSchemaValidation().equals(this.getDisableSchemaValidation()) == false) return false; if (other.getDisableExecuteApiEndpoint() == null ^ this.getDisableExecuteApiEndpoint() == null) return false; if (other.getDisableExecuteApiEndpoint() != null && other.getDisableExecuteApiEndpoint().equals(this.getDisableExecuteApiEndpoint()) == false) return false; if (other.getName() == null ^ this.getName() == null) return false; if (other.getName() != null && other.getName().equals(this.getName()) == false) return false; if (other.getRouteKey() == null ^ this.getRouteKey() == null) return false; if (other.getRouteKey() != null && other.getRouteKey().equals(this.getRouteKey()) == false) return false; if (other.getRouteSelectionExpression() == null ^ this.getRouteSelectionExpression() == null) return false; if (other.getRouteSelectionExpression() != null && other.getRouteSelectionExpression().equals(this.getRouteSelectionExpression()) == false) return false; if (other.getTarget() == null ^ this.getTarget() == null) return false; if (other.getTarget() != null && other.getTarget().equals(this.getTarget()) == false) return false; if (other.getVersion() == null ^ this.getVersion() == null) return false; if (other.getVersion() != null && other.getVersion().equals(this.getVersion()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getApiId() == null) ? 0 : getApiId().hashCode()); hashCode = prime * hashCode + ((getApiKeySelectionExpression() == null) ? 0 : getApiKeySelectionExpression().hashCode()); hashCode = prime * hashCode + ((getCorsConfiguration() == null) ? 0 : getCorsConfiguration().hashCode()); hashCode = prime * hashCode + ((getCredentialsArn() == null) ? 0 : getCredentialsArn().hashCode()); hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode()); hashCode = prime * hashCode + ((getDisableSchemaValidation() == null) ? 0 : getDisableSchemaValidation().hashCode()); hashCode = prime * hashCode + ((getDisableExecuteApiEndpoint() == null) ? 0 : getDisableExecuteApiEndpoint().hashCode()); hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode()); hashCode = prime * hashCode + ((getRouteKey() == null) ? 0 : getRouteKey().hashCode()); hashCode = prime * hashCode + ((getRouteSelectionExpression() == null) ? 0 : getRouteSelectionExpression().hashCode()); hashCode = prime * hashCode + ((getTarget() == null) ? 0 : getTarget().hashCode()); hashCode = prime * hashCode + ((getVersion() == null) ? 0 : getVersion().hashCode()); return hashCode; } @Override public UpdateApiRequest clone() { return (UpdateApiRequest) super.clone(); } }