
com.amazonaws.services.apigatewayv2.model.CreateApiRequest Maven / Gradle / Ivy
/*
* Copyright 2015-2020 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;
/**
*
* Creates a new Api resource to represent an API.
*
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class CreateApiRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable {
/**
*
* 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. See Configuring CORS for
* more information.
*
*/
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, specify null. Currently, this
* property is not used for HTTP integrations. 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;
/**
*
* The API protocol.
*
*/
private String protocolType;
/**
*
* This property is part of quick create. If you don't specify a routeKey, a default route of $default is created.
* The $default route acts as a catch-all for any request made to your API, for a particular stage. The $default
* route key can't be modified. You can add routes after creating the API, and you can update the route keys of
* additional routes. 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;
/**
*
* The collection of tags. Each tag element is associated with a given resource.
*
*/
private java.util.Map tags;
/**
*
* This property is part of quick create. Quick create produces an API with an integration, a default catch-all
* route, and a default stage which is configured to automatically deploy changes. 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. Supported only for HTTP APIs.
*
*/
private String target;
/**
*
* A version identifier for the API.
*
*/
private String version;
/**
*
* 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 CreateApiRequest withApiKeySelectionExpression(String apiKeySelectionExpression) {
setApiKeySelectionExpression(apiKeySelectionExpression);
return this;
}
/**
*
* A CORS configuration. Supported only for HTTP APIs. See Configuring CORS for
* more information.
*
*
* @param corsConfiguration
* A CORS configuration. Supported only for HTTP APIs. See Configuring
* CORS for more information.
*/
public void setCorsConfiguration(Cors corsConfiguration) {
this.corsConfiguration = corsConfiguration;
}
/**
*
* A CORS configuration. Supported only for HTTP APIs. See Configuring CORS for
* more information.
*
*
* @return A CORS configuration. Supported only for HTTP APIs. See Configuring
* CORS for more information.
*/
public Cors getCorsConfiguration() {
return this.corsConfiguration;
}
/**
*
* A CORS configuration. Supported only for HTTP APIs. See Configuring CORS for
* more information.
*
*
* @param corsConfiguration
* A CORS configuration. Supported only for HTTP APIs. See Configuring
* CORS for more information.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateApiRequest 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, specify null. Currently, this
* property is not used for HTTP integrations. 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,
* specify null. Currently, this property is not used for HTTP integrations. 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, specify null. Currently, this
* property is not used for HTTP integrations. 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,
* specify null. Currently, this property is not used for HTTP integrations. 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, specify null. Currently, this
* property is not used for HTTP integrations. 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,
* specify null. Currently, this property is not used for HTTP integrations. Supported only for HTTP APIs.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateApiRequest 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 CreateApiRequest 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 CreateApiRequest 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 CreateApiRequest 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 CreateApiRequest withName(String name) {
setName(name);
return this;
}
/**
*
* The API protocol.
*
*
* @param protocolType
* The API protocol.
* @see ProtocolType
*/
public void setProtocolType(String protocolType) {
this.protocolType = protocolType;
}
/**
*
* The API protocol.
*
*
* @return The API protocol.
* @see ProtocolType
*/
public String getProtocolType() {
return this.protocolType;
}
/**
*
* The API protocol.
*
*
* @param protocolType
* The API protocol.
* @return Returns a reference to this object so that method calls can be chained together.
* @see ProtocolType
*/
public CreateApiRequest withProtocolType(String protocolType) {
setProtocolType(protocolType);
return this;
}
/**
*
* The API protocol.
*
*
* @param protocolType
* The API protocol.
* @return Returns a reference to this object so that method calls can be chained together.
* @see ProtocolType
*/
public CreateApiRequest withProtocolType(ProtocolType protocolType) {
this.protocolType = protocolType.toString();
return this;
}
/**
*
* This property is part of quick create. If you don't specify a routeKey, a default route of $default is created.
* The $default route acts as a catch-all for any request made to your API, for a particular stage. The $default
* route key can't be modified. You can add routes after creating the API, and you can update the route keys of
* additional routes. Supported only for HTTP APIs.
*
*
* @param routeKey
* This property is part of quick create. If you don't specify a routeKey, a default route of $default is
* created. The $default route acts as a catch-all for any request made to your API, for a particular stage.
* The $default route key can't be modified. You can add routes after creating the API, and you can update
* the route keys of additional routes. Supported only for HTTP APIs.
*/
public void setRouteKey(String routeKey) {
this.routeKey = routeKey;
}
/**
*
* This property is part of quick create. If you don't specify a routeKey, a default route of $default is created.
* The $default route acts as a catch-all for any request made to your API, for a particular stage. The $default
* route key can't be modified. You can add routes after creating the API, and you can update the route keys of
* additional routes. Supported only for HTTP APIs.
*
*
* @return This property is part of quick create. If you don't specify a routeKey, a default route of $default is
* created. The $default route acts as a catch-all for any request made to your API, for a particular stage.
* The $default route key can't be modified. You can add routes after creating the API, and you can update
* the route keys of additional routes. Supported only for HTTP APIs.
*/
public String getRouteKey() {
return this.routeKey;
}
/**
*
* This property is part of quick create. If you don't specify a routeKey, a default route of $default is created.
* The $default route acts as a catch-all for any request made to your API, for a particular stage. The $default
* route key can't be modified. You can add routes after creating the API, and you can update the route keys of
* additional routes. Supported only for HTTP APIs.
*
*
* @param routeKey
* This property is part of quick create. If you don't specify a routeKey, a default route of $default is
* created. The $default route acts as a catch-all for any request made to your API, for a particular stage.
* The $default route key can't be modified. You can add routes after creating the API, and you can update
* the route keys of additional routes. Supported only for HTTP APIs.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateApiRequest 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 CreateApiRequest withRouteSelectionExpression(String routeSelectionExpression) {
setRouteSelectionExpression(routeSelectionExpression);
return this;
}
/**
*
* The collection of tags. Each tag element is associated with a given resource.
*
*
* @return The collection of tags. Each tag element is associated with a given resource.
*/
public java.util.Map getTags() {
return tags;
}
/**
*
* The collection of tags. Each tag element is associated with a given resource.
*
*
* @param tags
* The collection of tags. Each tag element is associated with a given resource.
*/
public void setTags(java.util.Map tags) {
this.tags = tags;
}
/**
*
* The collection of tags. Each tag element is associated with a given resource.
*
*
* @param tags
* The collection of tags. Each tag element is associated with a given resource.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateApiRequest withTags(java.util.Map tags) {
setTags(tags);
return this;
}
/**
* Add a single Tags entry
*
* @see CreateApiRequest#withTags
* @returns a reference to this object so that method calls can be chained together.
*/
public CreateApiRequest addTagsEntry(String key, String value) {
if (null == this.tags) {
this.tags = new java.util.HashMap();
}
if (this.tags.containsKey(key))
throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided.");
this.tags.put(key, value);
return this;
}
/**
* Removes all the entries added into Tags.
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateApiRequest clearTagsEntries() {
this.tags = null;
return this;
}
/**
*
* This property is part of quick create. Quick create produces an API with an integration, a default catch-all
* route, and a default stage which is configured to automatically deploy changes. 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. Supported only for HTTP APIs.
*
*
* @param target
* This property is part of quick create. Quick create produces an API with an integration, a default
* catch-all route, and a default stage which is configured to automatically deploy changes. 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. Supported only for HTTP APIs.
*/
public void setTarget(String target) {
this.target = target;
}
/**
*
* This property is part of quick create. Quick create produces an API with an integration, a default catch-all
* route, and a default stage which is configured to automatically deploy changes. 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. Supported only for HTTP APIs.
*
*
* @return This property is part of quick create. Quick create produces an API with an integration, a default
* catch-all route, and a default stage which is configured to automatically deploy changes. 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. Supported only for HTTP APIs.
*/
public String getTarget() {
return this.target;
}
/**
*
* This property is part of quick create. Quick create produces an API with an integration, a default catch-all
* route, and a default stage which is configured to automatically deploy changes. 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. Supported only for HTTP APIs.
*
*
* @param target
* This property is part of quick create. Quick create produces an API with an integration, a default
* catch-all route, and a default stage which is configured to automatically deploy changes. 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. Supported only for HTTP APIs.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateApiRequest 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 CreateApiRequest 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 (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 (getProtocolType() != null)
sb.append("ProtocolType: ").append(getProtocolType()).append(",");
if (getRouteKey() != null)
sb.append("RouteKey: ").append(getRouteKey()).append(",");
if (getRouteSelectionExpression() != null)
sb.append("RouteSelectionExpression: ").append(getRouteSelectionExpression()).append(",");
if (getTags() != null)
sb.append("Tags: ").append(getTags()).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 CreateApiRequest == false)
return false;
CreateApiRequest other = (CreateApiRequest) obj;
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.getProtocolType() == null ^ this.getProtocolType() == null)
return false;
if (other.getProtocolType() != null && other.getProtocolType().equals(this.getProtocolType()) == 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.getTags() == null ^ this.getTags() == null)
return false;
if (other.getTags() != null && other.getTags().equals(this.getTags()) == 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 + ((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 + ((getProtocolType() == null) ? 0 : getProtocolType().hashCode());
hashCode = prime * hashCode + ((getRouteKey() == null) ? 0 : getRouteKey().hashCode());
hashCode = prime * hashCode + ((getRouteSelectionExpression() == null) ? 0 : getRouteSelectionExpression().hashCode());
hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode());
hashCode = prime * hashCode + ((getTarget() == null) ? 0 : getTarget().hashCode());
hashCode = prime * hashCode + ((getVersion() == null) ? 0 : getVersion().hashCode());
return hashCode;
}
@Override
public CreateApiRequest clone() {
return (CreateApiRequest) super.clone();
}
}