software.aws.awsprototypingsdk.openapigateway.OpenApiGatewayRestApiProps Maven / Gradle / Ivy
Show all versions of open-api-gateway Show documentation
package software.aws.awsprototypingsdk.openapigateway;
/**
* (experimental) Configuration for the OpenApiGatewayRestApi construct.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.82.0 (build 2d2ddd7)", date = "2023-08-15T05:38:04.695Z")
@software.amazon.jsii.Jsii(module = software.aws.awsprototypingsdk.openapigateway.$Module.class, fqn = "@aws-prototyping-sdk/open-api-gateway.OpenApiGatewayRestApiProps")
@software.amazon.jsii.Jsii.Proxy(OpenApiGatewayRestApiProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public interface OpenApiGatewayRestApiProps extends software.amazon.jsii.JsiiSerializable, software.amazon.awscdk.services.apigateway.RestApiBaseProps, software.aws.awsprototypingsdk.openapigateway.OpenApiOptions {
/**
* (experimental) The parsed OpenAPI specification.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull java.lang.Object getSpec();
/**
* (experimental) Path to the JSON open api spec.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull java.lang.String getSpecPath();
/**
* (experimental) Options for the AWS WAF v2 WebACL associated with the api.
*
* By default, a Web ACL with the AWS default managed
* rule set will be associated with the API. These options may disable or override the defaults.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.aws.awsprototypingsdk.openapigateway.OpenApiGatewayWebAclOptions getWebAclOptions() {
return null;
}
/**
* @return a {@link Builder} of {@link OpenApiGatewayRestApiProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link OpenApiGatewayRestApiProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.Object spec;
java.lang.String specPath;
software.aws.awsprototypingsdk.openapigateway.OpenApiGatewayWebAclOptions webAclOptions;
java.lang.Boolean cloudWatchRole;
java.lang.Boolean deploy;
software.amazon.awscdk.services.apigateway.StageOptions deployOptions;
java.lang.String description;
java.lang.Boolean disableExecuteApiEndpoint;
software.amazon.awscdk.services.apigateway.DomainNameOptions domainName;
java.lang.String endpointExportName;
java.util.List endpointTypes;
java.lang.Boolean failOnWarnings;
java.util.Map parameters;
software.amazon.awscdk.services.iam.PolicyDocument policy;
java.lang.String restApiName;
java.lang.Boolean retainDeployments;
java.util.Map integrations;
java.util.Map operationLookup;
software.amazon.awscdk.services.apigateway.CorsOptions corsOptions;
software.aws.awsprototypingsdk.openapigateway.Authorizer defaultAuthorizer;
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getSpec}
* @param spec The parsed OpenAPI specification. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder spec(java.lang.Object spec) {
this.spec = spec;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getSpecPath}
* @param specPath Path to the JSON open api spec. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder specPath(java.lang.String specPath) {
this.specPath = specPath;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getWebAclOptions}
* @param webAclOptions Options for the AWS WAF v2 WebACL associated with the api.
* By default, a Web ACL with the AWS default managed
* rule set will be associated with the API. These options may disable or override the defaults.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder webAclOptions(software.aws.awsprototypingsdk.openapigateway.OpenApiGatewayWebAclOptions webAclOptions) {
this.webAclOptions = webAclOptions;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getCloudWatchRole}
* @param cloudWatchRole Automatically configure an AWS CloudWatch role for API Gateway.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder cloudWatchRole(java.lang.Boolean cloudWatchRole) {
this.cloudWatchRole = cloudWatchRole;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getDeploy}
* @param deploy Indicates if a Deployment should be automatically created for this API, and recreated when the API model (resources, methods) changes.
* Since API Gateway deployments are immutable, When this option is enabled
* (by default), an AWS::ApiGateway::Deployment resource will automatically
* created with a logical ID that hashes the API model (methods, resources
* and options). This means that when the model changes, the logical ID of
* this CloudFormation resource will change, and a new deployment will be
* created.
*
* If this is set, latestDeployment
will refer to the Deployment
object
* and deploymentStage
will refer to a Stage
that points to this
* deployment. To customize the stage options, use the deployOptions
* property.
*
* A CloudFormation Output will also be defined with the root URL endpoint
* of this REST API.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder deploy(java.lang.Boolean deploy) {
this.deploy = deploy;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getDeployOptions}
* @param deployOptions Options for the API Gateway stage that will always point to the latest deployment when deploy
is enabled.
* If deploy
is disabled,
* this value cannot be set.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder deployOptions(software.amazon.awscdk.services.apigateway.StageOptions deployOptions) {
this.deployOptions = deployOptions;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getDescription}
* @param description A description of the RestApi construct.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder description(java.lang.String description) {
this.description = description;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getDisableExecuteApiEndpoint}
* @param disableExecuteApiEndpoint Specifies whether clients can invoke the API using the default execute-api endpoint.
* To require that clients use a custom domain name to invoke the
* API, disable the default endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder disableExecuteApiEndpoint(java.lang.Boolean disableExecuteApiEndpoint) {
this.disableExecuteApiEndpoint = disableExecuteApiEndpoint;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getDomainName}
* @param domainName Configure a custom domain name and map it to this API.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder domainName(software.amazon.awscdk.services.apigateway.DomainNameOptions domainName) {
this.domainName = domainName;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getEndpointExportName}
* @param endpointExportName Export name for the CfnOutput containing the API endpoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder endpointExportName(java.lang.String endpointExportName) {
this.endpointExportName = endpointExportName;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getEndpointTypes}
* @param endpointTypes A list of the endpoint types of the API.
* Use this property when creating
* an API.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder endpointTypes(java.util.List extends software.amazon.awscdk.services.apigateway.EndpointType> endpointTypes) {
this.endpointTypes = (java.util.List)endpointTypes;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getFailOnWarnings}
* @param failOnWarnings Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder failOnWarnings(java.lang.Boolean failOnWarnings) {
this.failOnWarnings = failOnWarnings;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getParameters}
* @param parameters Custom header parameters for the request.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder parameters(java.util.Map parameters) {
this.parameters = parameters;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getPolicy}
* @param policy A policy document that contains the permissions for this RestApi.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder policy(software.amazon.awscdk.services.iam.PolicyDocument policy) {
this.policy = policy;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getRestApiName}
* @param restApiName A name for the API Gateway RestApi resource.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder restApiName(java.lang.String restApiName) {
this.restApiName = restApiName;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getRetainDeployments}
* @param retainDeployments Retains old deployment resources when the API changes.
* This allows
* manually reverting stages to point to old deployments via the AWS
* Console.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder retainDeployments(java.lang.Boolean retainDeployments) {
this.retainDeployments = retainDeployments;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getIntegrations}
* @param integrations A mapping of API operation to its integration. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@SuppressWarnings("unchecked")
public Builder integrations(java.util.Map integrations) {
this.integrations = (java.util.Map)integrations;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getOperationLookup}
* @param operationLookup Details about each operation. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@SuppressWarnings("unchecked")
public Builder operationLookup(java.util.Map operationLookup) {
this.operationLookup = (java.util.Map)operationLookup;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getCorsOptions}
* @param corsOptions Cross Origin Resource Sharing options for the API.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder corsOptions(software.amazon.awscdk.services.apigateway.CorsOptions corsOptions) {
this.corsOptions = corsOptions;
return this;
}
/**
* Sets the value of {@link OpenApiGatewayRestApiProps#getDefaultAuthorizer}
* @param defaultAuthorizer The default authorizer to use for your api.
* When omitted, no default authorizer is used.
* Authorizers specified at the integration level will override this for that operation.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder defaultAuthorizer(software.aws.awsprototypingsdk.openapigateway.Authorizer defaultAuthorizer) {
this.defaultAuthorizer = defaultAuthorizer;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link OpenApiGatewayRestApiProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
public OpenApiGatewayRestApiProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link OpenApiGatewayRestApiProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements OpenApiGatewayRestApiProps {
private final java.lang.Object spec;
private final java.lang.String specPath;
private final software.aws.awsprototypingsdk.openapigateway.OpenApiGatewayWebAclOptions webAclOptions;
private final java.lang.Boolean cloudWatchRole;
private final java.lang.Boolean deploy;
private final software.amazon.awscdk.services.apigateway.StageOptions deployOptions;
private final java.lang.String description;
private final java.lang.Boolean disableExecuteApiEndpoint;
private final software.amazon.awscdk.services.apigateway.DomainNameOptions domainName;
private final java.lang.String endpointExportName;
private final java.util.List endpointTypes;
private final java.lang.Boolean failOnWarnings;
private final java.util.Map parameters;
private final software.amazon.awscdk.services.iam.PolicyDocument policy;
private final java.lang.String restApiName;
private final java.lang.Boolean retainDeployments;
private final java.util.Map integrations;
private final java.util.Map operationLookup;
private final software.amazon.awscdk.services.apigateway.CorsOptions corsOptions;
private final software.aws.awsprototypingsdk.openapigateway.Authorizer defaultAuthorizer;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.spec = software.amazon.jsii.Kernel.get(this, "spec", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
this.specPath = software.amazon.jsii.Kernel.get(this, "specPath", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.webAclOptions = software.amazon.jsii.Kernel.get(this, "webAclOptions", software.amazon.jsii.NativeType.forClass(software.aws.awsprototypingsdk.openapigateway.OpenApiGatewayWebAclOptions.class));
this.cloudWatchRole = software.amazon.jsii.Kernel.get(this, "cloudWatchRole", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.deploy = software.amazon.jsii.Kernel.get(this, "deploy", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.deployOptions = software.amazon.jsii.Kernel.get(this, "deployOptions", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.apigateway.StageOptions.class));
this.description = software.amazon.jsii.Kernel.get(this, "description", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.disableExecuteApiEndpoint = software.amazon.jsii.Kernel.get(this, "disableExecuteApiEndpoint", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.domainName = software.amazon.jsii.Kernel.get(this, "domainName", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.apigateway.DomainNameOptions.class));
this.endpointExportName = software.amazon.jsii.Kernel.get(this, "endpointExportName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.endpointTypes = software.amazon.jsii.Kernel.get(this, "endpointTypes", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.apigateway.EndpointType.class)));
this.failOnWarnings = software.amazon.jsii.Kernel.get(this, "failOnWarnings", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.parameters = software.amazon.jsii.Kernel.get(this, "parameters", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
this.policy = software.amazon.jsii.Kernel.get(this, "policy", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.iam.PolicyDocument.class));
this.restApiName = software.amazon.jsii.Kernel.get(this, "restApiName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.retainDeployments = software.amazon.jsii.Kernel.get(this, "retainDeployments", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.integrations = software.amazon.jsii.Kernel.get(this, "integrations", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(software.aws.awsprototypingsdk.openapigateway.OpenApiIntegration.class)));
this.operationLookup = software.amazon.jsii.Kernel.get(this, "operationLookup", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(software.aws.awsprototypingsdk.openapigateway.MethodAndPath.class)));
this.corsOptions = software.amazon.jsii.Kernel.get(this, "corsOptions", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.apigateway.CorsOptions.class));
this.defaultAuthorizer = software.amazon.jsii.Kernel.get(this, "defaultAuthorizer", software.amazon.jsii.NativeType.forClass(software.aws.awsprototypingsdk.openapigateway.Authorizer.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
@SuppressWarnings("unchecked")
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.spec = java.util.Objects.requireNonNull(builder.spec, "spec is required");
this.specPath = java.util.Objects.requireNonNull(builder.specPath, "specPath is required");
this.webAclOptions = builder.webAclOptions;
this.cloudWatchRole = builder.cloudWatchRole;
this.deploy = builder.deploy;
this.deployOptions = builder.deployOptions;
this.description = builder.description;
this.disableExecuteApiEndpoint = builder.disableExecuteApiEndpoint;
this.domainName = builder.domainName;
this.endpointExportName = builder.endpointExportName;
this.endpointTypes = (java.util.List)builder.endpointTypes;
this.failOnWarnings = builder.failOnWarnings;
this.parameters = builder.parameters;
this.policy = builder.policy;
this.restApiName = builder.restApiName;
this.retainDeployments = builder.retainDeployments;
this.integrations = (java.util.Map)java.util.Objects.requireNonNull(builder.integrations, "integrations is required");
this.operationLookup = (java.util.Map)java.util.Objects.requireNonNull(builder.operationLookup, "operationLookup is required");
this.corsOptions = builder.corsOptions;
this.defaultAuthorizer = builder.defaultAuthorizer;
}
@Override
public final java.lang.Object getSpec() {
return this.spec;
}
@Override
public final java.lang.String getSpecPath() {
return this.specPath;
}
@Override
public final software.aws.awsprototypingsdk.openapigateway.OpenApiGatewayWebAclOptions getWebAclOptions() {
return this.webAclOptions;
}
@Override
public final java.lang.Boolean getCloudWatchRole() {
return this.cloudWatchRole;
}
@Override
public final java.lang.Boolean getDeploy() {
return this.deploy;
}
@Override
public final software.amazon.awscdk.services.apigateway.StageOptions getDeployOptions() {
return this.deployOptions;
}
@Override
public final java.lang.String getDescription() {
return this.description;
}
@Override
public final java.lang.Boolean getDisableExecuteApiEndpoint() {
return this.disableExecuteApiEndpoint;
}
@Override
public final software.amazon.awscdk.services.apigateway.DomainNameOptions getDomainName() {
return this.domainName;
}
@Override
public final java.lang.String getEndpointExportName() {
return this.endpointExportName;
}
@Override
public final java.util.List getEndpointTypes() {
return this.endpointTypes;
}
@Override
public final java.lang.Boolean getFailOnWarnings() {
return this.failOnWarnings;
}
@Override
public final java.util.Map getParameters() {
return this.parameters;
}
@Override
public final software.amazon.awscdk.services.iam.PolicyDocument getPolicy() {
return this.policy;
}
@Override
public final java.lang.String getRestApiName() {
return this.restApiName;
}
@Override
public final java.lang.Boolean getRetainDeployments() {
return this.retainDeployments;
}
@Override
public final java.util.Map getIntegrations() {
return this.integrations;
}
@Override
public final java.util.Map getOperationLookup() {
return this.operationLookup;
}
@Override
public final software.amazon.awscdk.services.apigateway.CorsOptions getCorsOptions() {
return this.corsOptions;
}
@Override
public final software.aws.awsprototypingsdk.openapigateway.Authorizer getDefaultAuthorizer() {
return this.defaultAuthorizer;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
data.set("spec", om.valueToTree(this.getSpec()));
data.set("specPath", om.valueToTree(this.getSpecPath()));
if (this.getWebAclOptions() != null) {
data.set("webAclOptions", om.valueToTree(this.getWebAclOptions()));
}
if (this.getCloudWatchRole() != null) {
data.set("cloudWatchRole", om.valueToTree(this.getCloudWatchRole()));
}
if (this.getDeploy() != null) {
data.set("deploy", om.valueToTree(this.getDeploy()));
}
if (this.getDeployOptions() != null) {
data.set("deployOptions", om.valueToTree(this.getDeployOptions()));
}
if (this.getDescription() != null) {
data.set("description", om.valueToTree(this.getDescription()));
}
if (this.getDisableExecuteApiEndpoint() != null) {
data.set("disableExecuteApiEndpoint", om.valueToTree(this.getDisableExecuteApiEndpoint()));
}
if (this.getDomainName() != null) {
data.set("domainName", om.valueToTree(this.getDomainName()));
}
if (this.getEndpointExportName() != null) {
data.set("endpointExportName", om.valueToTree(this.getEndpointExportName()));
}
if (this.getEndpointTypes() != null) {
data.set("endpointTypes", om.valueToTree(this.getEndpointTypes()));
}
if (this.getFailOnWarnings() != null) {
data.set("failOnWarnings", om.valueToTree(this.getFailOnWarnings()));
}
if (this.getParameters() != null) {
data.set("parameters", om.valueToTree(this.getParameters()));
}
if (this.getPolicy() != null) {
data.set("policy", om.valueToTree(this.getPolicy()));
}
if (this.getRestApiName() != null) {
data.set("restApiName", om.valueToTree(this.getRestApiName()));
}
if (this.getRetainDeployments() != null) {
data.set("retainDeployments", om.valueToTree(this.getRetainDeployments()));
}
data.set("integrations", om.valueToTree(this.getIntegrations()));
data.set("operationLookup", om.valueToTree(this.getOperationLookup()));
if (this.getCorsOptions() != null) {
data.set("corsOptions", om.valueToTree(this.getCorsOptions()));
}
if (this.getDefaultAuthorizer() != null) {
data.set("defaultAuthorizer", om.valueToTree(this.getDefaultAuthorizer()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-prototyping-sdk/open-api-gateway.OpenApiGatewayRestApiProps"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
OpenApiGatewayRestApiProps.Jsii$Proxy that = (OpenApiGatewayRestApiProps.Jsii$Proxy) o;
if (!spec.equals(that.spec)) return false;
if (!specPath.equals(that.specPath)) return false;
if (this.webAclOptions != null ? !this.webAclOptions.equals(that.webAclOptions) : that.webAclOptions != null) return false;
if (this.cloudWatchRole != null ? !this.cloudWatchRole.equals(that.cloudWatchRole) : that.cloudWatchRole != null) return false;
if (this.deploy != null ? !this.deploy.equals(that.deploy) : that.deploy != null) return false;
if (this.deployOptions != null ? !this.deployOptions.equals(that.deployOptions) : that.deployOptions != null) return false;
if (this.description != null ? !this.description.equals(that.description) : that.description != null) return false;
if (this.disableExecuteApiEndpoint != null ? !this.disableExecuteApiEndpoint.equals(that.disableExecuteApiEndpoint) : that.disableExecuteApiEndpoint != null) return false;
if (this.domainName != null ? !this.domainName.equals(that.domainName) : that.domainName != null) return false;
if (this.endpointExportName != null ? !this.endpointExportName.equals(that.endpointExportName) : that.endpointExportName != null) return false;
if (this.endpointTypes != null ? !this.endpointTypes.equals(that.endpointTypes) : that.endpointTypes != null) return false;
if (this.failOnWarnings != null ? !this.failOnWarnings.equals(that.failOnWarnings) : that.failOnWarnings != null) return false;
if (this.parameters != null ? !this.parameters.equals(that.parameters) : that.parameters != null) return false;
if (this.policy != null ? !this.policy.equals(that.policy) : that.policy != null) return false;
if (this.restApiName != null ? !this.restApiName.equals(that.restApiName) : that.restApiName != null) return false;
if (this.retainDeployments != null ? !this.retainDeployments.equals(that.retainDeployments) : that.retainDeployments != null) return false;
if (!integrations.equals(that.integrations)) return false;
if (!operationLookup.equals(that.operationLookup)) return false;
if (this.corsOptions != null ? !this.corsOptions.equals(that.corsOptions) : that.corsOptions != null) return false;
return this.defaultAuthorizer != null ? this.defaultAuthorizer.equals(that.defaultAuthorizer) : that.defaultAuthorizer == null;
}
@Override
public final int hashCode() {
int result = this.spec.hashCode();
result = 31 * result + (this.specPath.hashCode());
result = 31 * result + (this.webAclOptions != null ? this.webAclOptions.hashCode() : 0);
result = 31 * result + (this.cloudWatchRole != null ? this.cloudWatchRole.hashCode() : 0);
result = 31 * result + (this.deploy != null ? this.deploy.hashCode() : 0);
result = 31 * result + (this.deployOptions != null ? this.deployOptions.hashCode() : 0);
result = 31 * result + (this.description != null ? this.description.hashCode() : 0);
result = 31 * result + (this.disableExecuteApiEndpoint != null ? this.disableExecuteApiEndpoint.hashCode() : 0);
result = 31 * result + (this.domainName != null ? this.domainName.hashCode() : 0);
result = 31 * result + (this.endpointExportName != null ? this.endpointExportName.hashCode() : 0);
result = 31 * result + (this.endpointTypes != null ? this.endpointTypes.hashCode() : 0);
result = 31 * result + (this.failOnWarnings != null ? this.failOnWarnings.hashCode() : 0);
result = 31 * result + (this.parameters != null ? this.parameters.hashCode() : 0);
result = 31 * result + (this.policy != null ? this.policy.hashCode() : 0);
result = 31 * result + (this.restApiName != null ? this.restApiName.hashCode() : 0);
result = 31 * result + (this.retainDeployments != null ? this.retainDeployments.hashCode() : 0);
result = 31 * result + (this.integrations.hashCode());
result = 31 * result + (this.operationLookup.hashCode());
result = 31 * result + (this.corsOptions != null ? this.corsOptions.hashCode() : 0);
result = 31 * result + (this.defaultAuthorizer != null ? this.defaultAuthorizer.hashCode() : 0);
return result;
}
}
}