software.aws.awsprototypingsdk.openapigateway.SmithyApiGatewayProjectOptions Maven / Gradle / Ivy
Show all versions of open-api-gateway Show documentation
package software.aws.awsprototypingsdk.openapigateway;
/**
* (experimental) Options common to all smithy api gateway projects.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.82.0 (build 2d2ddd7)", date = "2023-08-15T05:38:04.737Z")
@software.amazon.jsii.Jsii(module = software.aws.awsprototypingsdk.openapigateway.$Module.class, fqn = "@aws-prototyping-sdk/open-api-gateway.SmithyApiGatewayProjectOptions")
@software.amazon.jsii.Jsii.Proxy(SmithyApiGatewayProjectOptions.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public interface SmithyApiGatewayProjectOptions extends software.amazon.jsii.JsiiSerializable, software.aws.awsprototypingsdk.openapigateway.CommonApiProjectOptions {
/**
* (experimental) The name of the Smithy service from your model which will be targeted for deployment and client generation.
*
* On initial project synthesis this service name will be written to the sample "hello world" model. If you change
* this value after initial synthesis you will need to manually update your Smithy models to match, unless you delete
* the "model" directory. Likewise, if you change the namespace or service name in your Smithy models you will need to
* update this value to ensure your service can be found.
*
* Default: "example.hello#Hello"
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull software.aws.awsprototypingsdk.openapigateway.SmithyServiceName getServiceName();
/**
* (experimental) Set to false if you would like to check in your gradle wrapper.
*
* Do so if you would like to use a different version
* of gradle to the one provided by default
*
* Default: true
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getIgnoreGradleWrapper() {
return null;
}
/**
* (experimental) Set to false if you would like to check in your smithy build output or have more fine-grained control over what is checked in, eg if you add other projections to the smithy-build.json file.
*
* Default: true
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getIgnoreSmithyBuildOutput() {
return null;
}
/**
* (experimental) The path to the Smithy model directory, relative to the project source directory (srcdir).
*
* Default: "model"
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getModelDir() {
return null;
}
/**
* (experimental) Any additional properties you'd like to add your smithy-build.json. The smithy-build.json will automatically include the "openapi" plugin, but you can add extra configuration for that via this option if you like.
*
* @see https://awslabs.github.io/smithy/2.0/guides/converting-to-openapi.html#openapi-configuration-settings
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.aws.awsprototypingsdk.openapigateway.SmithyBuildOptions getSmithyBuildOptions() {
return null;
}
/**
* @return a {@link Builder} of {@link SmithyApiGatewayProjectOptions}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link SmithyApiGatewayProjectOptions}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static final class Builder implements software.amazon.jsii.Builder {
software.aws.awsprototypingsdk.openapigateway.SmithyServiceName serviceName;
java.lang.Boolean ignoreGradleWrapper;
java.lang.Boolean ignoreSmithyBuildOutput;
java.lang.String modelDir;
software.aws.awsprototypingsdk.openapigateway.SmithyBuildOptions smithyBuildOptions;
java.util.List clientLanguages;
java.lang.String apiSrcDir;
java.util.List documentationFormats;
java.lang.Boolean forceGenerateCodeAndDocs;
java.lang.String generatedCodeDir;
io.github.cdklabs.projen.java.JavaProjectOptions javaClientOptions;
java.lang.String parsedSpecFileName;
io.github.cdklabs.projen.python.PythonProjectOptions pythonClientOptions;
io.github.cdklabs.projen.typescript.TypeScriptProjectOptions typescriptClientOptions;
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getServiceName}
* @param serviceName The name of the Smithy service from your model which will be targeted for deployment and client generation. This parameter is required.
* On initial project synthesis this service name will be written to the sample "hello world" model. If you change
* this value after initial synthesis you will need to manually update your Smithy models to match, unless you delete
* the "model" directory. Likewise, if you change the namespace or service name in your Smithy models you will need to
* update this value to ensure your service can be found.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder serviceName(software.aws.awsprototypingsdk.openapigateway.SmithyServiceName serviceName) {
this.serviceName = serviceName;
return this;
}
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getIgnoreGradleWrapper}
* @param ignoreGradleWrapper Set to false if you would like to check in your gradle wrapper.
* Do so if you would like to use a different version
* of gradle to the one provided by default
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder ignoreGradleWrapper(java.lang.Boolean ignoreGradleWrapper) {
this.ignoreGradleWrapper = ignoreGradleWrapper;
return this;
}
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getIgnoreSmithyBuildOutput}
* @param ignoreSmithyBuildOutput Set to false if you would like to check in your smithy build output or have more fine-grained control over what is checked in, eg if you add other projections to the smithy-build.json file.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder ignoreSmithyBuildOutput(java.lang.Boolean ignoreSmithyBuildOutput) {
this.ignoreSmithyBuildOutput = ignoreSmithyBuildOutput;
return this;
}
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getModelDir}
* @param modelDir The path to the Smithy model directory, relative to the project source directory (srcdir).
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder modelDir(java.lang.String modelDir) {
this.modelDir = modelDir;
return this;
}
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getSmithyBuildOptions}
* @param smithyBuildOptions Any additional properties you'd like to add your smithy-build.json. The smithy-build.json will automatically include the "openapi" plugin, but you can add extra configuration for that via this option if you like.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder smithyBuildOptions(software.aws.awsprototypingsdk.openapigateway.SmithyBuildOptions smithyBuildOptions) {
this.smithyBuildOptions = smithyBuildOptions;
return this;
}
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getClientLanguages}
* @param clientLanguages The list of languages for which clients will be generated. This parameter is required.
* A typescript client will always be generated.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@SuppressWarnings("unchecked")
public Builder clientLanguages(java.util.List extends software.aws.awsprototypingsdk.openapigateway.ClientLanguage> clientLanguages) {
this.clientLanguages = (java.util.List)clientLanguages;
return this;
}
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getApiSrcDir}
* @param apiSrcDir The directory in which the api generated code will reside, relative to the project srcdir.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder apiSrcDir(java.lang.String apiSrcDir) {
this.apiSrcDir = apiSrcDir;
return this;
}
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getDocumentationFormats}
* @param documentationFormats Formats to generate documentation in.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@SuppressWarnings("unchecked")
public Builder documentationFormats(java.util.List extends software.aws.awsprototypingsdk.openapigateway.DocumentationFormat> documentationFormats) {
this.documentationFormats = (java.util.List)documentationFormats;
return this;
}
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getForceGenerateCodeAndDocs}
* @param forceGenerateCodeAndDocs Force to generate code and docs even if there were no changes in spec.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder forceGenerateCodeAndDocs(java.lang.Boolean forceGenerateCodeAndDocs) {
this.forceGenerateCodeAndDocs = forceGenerateCodeAndDocs;
return this;
}
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getGeneratedCodeDir}
* @param generatedCodeDir The directory in which generated client code will be generated, relative to the outdir of this project.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder generatedCodeDir(java.lang.String generatedCodeDir) {
this.generatedCodeDir = generatedCodeDir;
return this;
}
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getJavaClientOptions}
* @param javaClientOptions Options for the generated java client (if specified in clientLanguages).
* These override the default inferred options.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder javaClientOptions(io.github.cdklabs.projen.java.JavaProjectOptions javaClientOptions) {
this.javaClientOptions = javaClientOptions;
return this;
}
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getParsedSpecFileName}
* @param parsedSpecFileName The name of the output parsed OpenAPI specification file.
* Must end with .json.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder parsedSpecFileName(java.lang.String parsedSpecFileName) {
this.parsedSpecFileName = parsedSpecFileName;
return this;
}
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getPythonClientOptions}
* @param pythonClientOptions Options for the generated python client (if specified in clientLanguages).
* These override the default inferred options.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder pythonClientOptions(io.github.cdklabs.projen.python.PythonProjectOptions pythonClientOptions) {
this.pythonClientOptions = pythonClientOptions;
return this;
}
/**
* Sets the value of {@link SmithyApiGatewayProjectOptions#getTypescriptClientOptions}
* @param typescriptClientOptions Options for the generated typescript client.
* These override the default inferred options.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder typescriptClientOptions(io.github.cdklabs.projen.typescript.TypeScriptProjectOptions typescriptClientOptions) {
this.typescriptClientOptions = typescriptClientOptions;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link SmithyApiGatewayProjectOptions}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
public SmithyApiGatewayProjectOptions build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link SmithyApiGatewayProjectOptions}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements SmithyApiGatewayProjectOptions {
private final software.aws.awsprototypingsdk.openapigateway.SmithyServiceName serviceName;
private final java.lang.Boolean ignoreGradleWrapper;
private final java.lang.Boolean ignoreSmithyBuildOutput;
private final java.lang.String modelDir;
private final software.aws.awsprototypingsdk.openapigateway.SmithyBuildOptions smithyBuildOptions;
private final java.util.List clientLanguages;
private final java.lang.String apiSrcDir;
private final java.util.List documentationFormats;
private final java.lang.Boolean forceGenerateCodeAndDocs;
private final java.lang.String generatedCodeDir;
private final io.github.cdklabs.projen.java.JavaProjectOptions javaClientOptions;
private final java.lang.String parsedSpecFileName;
private final io.github.cdklabs.projen.python.PythonProjectOptions pythonClientOptions;
private final io.github.cdklabs.projen.typescript.TypeScriptProjectOptions typescriptClientOptions;
/**
* 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.serviceName = software.amazon.jsii.Kernel.get(this, "serviceName", software.amazon.jsii.NativeType.forClass(software.aws.awsprototypingsdk.openapigateway.SmithyServiceName.class));
this.ignoreGradleWrapper = software.amazon.jsii.Kernel.get(this, "ignoreGradleWrapper", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.ignoreSmithyBuildOutput = software.amazon.jsii.Kernel.get(this, "ignoreSmithyBuildOutput", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.modelDir = software.amazon.jsii.Kernel.get(this, "modelDir", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.smithyBuildOptions = software.amazon.jsii.Kernel.get(this, "smithyBuildOptions", software.amazon.jsii.NativeType.forClass(software.aws.awsprototypingsdk.openapigateway.SmithyBuildOptions.class));
this.clientLanguages = software.amazon.jsii.Kernel.get(this, "clientLanguages", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.aws.awsprototypingsdk.openapigateway.ClientLanguage.class)));
this.apiSrcDir = software.amazon.jsii.Kernel.get(this, "apiSrcDir", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.documentationFormats = software.amazon.jsii.Kernel.get(this, "documentationFormats", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.aws.awsprototypingsdk.openapigateway.DocumentationFormat.class)));
this.forceGenerateCodeAndDocs = software.amazon.jsii.Kernel.get(this, "forceGenerateCodeAndDocs", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.generatedCodeDir = software.amazon.jsii.Kernel.get(this, "generatedCodeDir", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.javaClientOptions = software.amazon.jsii.Kernel.get(this, "javaClientOptions", software.amazon.jsii.NativeType.forClass(io.github.cdklabs.projen.java.JavaProjectOptions.class));
this.parsedSpecFileName = software.amazon.jsii.Kernel.get(this, "parsedSpecFileName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.pythonClientOptions = software.amazon.jsii.Kernel.get(this, "pythonClientOptions", software.amazon.jsii.NativeType.forClass(io.github.cdklabs.projen.python.PythonProjectOptions.class));
this.typescriptClientOptions = software.amazon.jsii.Kernel.get(this, "typescriptClientOptions", software.amazon.jsii.NativeType.forClass(io.github.cdklabs.projen.typescript.TypeScriptProjectOptions.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.serviceName = java.util.Objects.requireNonNull(builder.serviceName, "serviceName is required");
this.ignoreGradleWrapper = builder.ignoreGradleWrapper;
this.ignoreSmithyBuildOutput = builder.ignoreSmithyBuildOutput;
this.modelDir = builder.modelDir;
this.smithyBuildOptions = builder.smithyBuildOptions;
this.clientLanguages = (java.util.List)java.util.Objects.requireNonNull(builder.clientLanguages, "clientLanguages is required");
this.apiSrcDir = builder.apiSrcDir;
this.documentationFormats = (java.util.List)builder.documentationFormats;
this.forceGenerateCodeAndDocs = builder.forceGenerateCodeAndDocs;
this.generatedCodeDir = builder.generatedCodeDir;
this.javaClientOptions = builder.javaClientOptions;
this.parsedSpecFileName = builder.parsedSpecFileName;
this.pythonClientOptions = builder.pythonClientOptions;
this.typescriptClientOptions = builder.typescriptClientOptions;
}
@Override
public final software.aws.awsprototypingsdk.openapigateway.SmithyServiceName getServiceName() {
return this.serviceName;
}
@Override
public final java.lang.Boolean getIgnoreGradleWrapper() {
return this.ignoreGradleWrapper;
}
@Override
public final java.lang.Boolean getIgnoreSmithyBuildOutput() {
return this.ignoreSmithyBuildOutput;
}
@Override
public final java.lang.String getModelDir() {
return this.modelDir;
}
@Override
public final software.aws.awsprototypingsdk.openapigateway.SmithyBuildOptions getSmithyBuildOptions() {
return this.smithyBuildOptions;
}
@Override
public final java.util.List getClientLanguages() {
return this.clientLanguages;
}
@Override
public final java.lang.String getApiSrcDir() {
return this.apiSrcDir;
}
@Override
public final java.util.List getDocumentationFormats() {
return this.documentationFormats;
}
@Override
public final java.lang.Boolean getForceGenerateCodeAndDocs() {
return this.forceGenerateCodeAndDocs;
}
@Override
public final java.lang.String getGeneratedCodeDir() {
return this.generatedCodeDir;
}
@Override
public final io.github.cdklabs.projen.java.JavaProjectOptions getJavaClientOptions() {
return this.javaClientOptions;
}
@Override
public final java.lang.String getParsedSpecFileName() {
return this.parsedSpecFileName;
}
@Override
public final io.github.cdklabs.projen.python.PythonProjectOptions getPythonClientOptions() {
return this.pythonClientOptions;
}
@Override
public final io.github.cdklabs.projen.typescript.TypeScriptProjectOptions getTypescriptClientOptions() {
return this.typescriptClientOptions;
}
@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("serviceName", om.valueToTree(this.getServiceName()));
if (this.getIgnoreGradleWrapper() != null) {
data.set("ignoreGradleWrapper", om.valueToTree(this.getIgnoreGradleWrapper()));
}
if (this.getIgnoreSmithyBuildOutput() != null) {
data.set("ignoreSmithyBuildOutput", om.valueToTree(this.getIgnoreSmithyBuildOutput()));
}
if (this.getModelDir() != null) {
data.set("modelDir", om.valueToTree(this.getModelDir()));
}
if (this.getSmithyBuildOptions() != null) {
data.set("smithyBuildOptions", om.valueToTree(this.getSmithyBuildOptions()));
}
data.set("clientLanguages", om.valueToTree(this.getClientLanguages()));
if (this.getApiSrcDir() != null) {
data.set("apiSrcDir", om.valueToTree(this.getApiSrcDir()));
}
if (this.getDocumentationFormats() != null) {
data.set("documentationFormats", om.valueToTree(this.getDocumentationFormats()));
}
if (this.getForceGenerateCodeAndDocs() != null) {
data.set("forceGenerateCodeAndDocs", om.valueToTree(this.getForceGenerateCodeAndDocs()));
}
if (this.getGeneratedCodeDir() != null) {
data.set("generatedCodeDir", om.valueToTree(this.getGeneratedCodeDir()));
}
if (this.getJavaClientOptions() != null) {
data.set("javaClientOptions", om.valueToTree(this.getJavaClientOptions()));
}
if (this.getParsedSpecFileName() != null) {
data.set("parsedSpecFileName", om.valueToTree(this.getParsedSpecFileName()));
}
if (this.getPythonClientOptions() != null) {
data.set("pythonClientOptions", om.valueToTree(this.getPythonClientOptions()));
}
if (this.getTypescriptClientOptions() != null) {
data.set("typescriptClientOptions", om.valueToTree(this.getTypescriptClientOptions()));
}
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.SmithyApiGatewayProjectOptions"));
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;
SmithyApiGatewayProjectOptions.Jsii$Proxy that = (SmithyApiGatewayProjectOptions.Jsii$Proxy) o;
if (!serviceName.equals(that.serviceName)) return false;
if (this.ignoreGradleWrapper != null ? !this.ignoreGradleWrapper.equals(that.ignoreGradleWrapper) : that.ignoreGradleWrapper != null) return false;
if (this.ignoreSmithyBuildOutput != null ? !this.ignoreSmithyBuildOutput.equals(that.ignoreSmithyBuildOutput) : that.ignoreSmithyBuildOutput != null) return false;
if (this.modelDir != null ? !this.modelDir.equals(that.modelDir) : that.modelDir != null) return false;
if (this.smithyBuildOptions != null ? !this.smithyBuildOptions.equals(that.smithyBuildOptions) : that.smithyBuildOptions != null) return false;
if (!clientLanguages.equals(that.clientLanguages)) return false;
if (this.apiSrcDir != null ? !this.apiSrcDir.equals(that.apiSrcDir) : that.apiSrcDir != null) return false;
if (this.documentationFormats != null ? !this.documentationFormats.equals(that.documentationFormats) : that.documentationFormats != null) return false;
if (this.forceGenerateCodeAndDocs != null ? !this.forceGenerateCodeAndDocs.equals(that.forceGenerateCodeAndDocs) : that.forceGenerateCodeAndDocs != null) return false;
if (this.generatedCodeDir != null ? !this.generatedCodeDir.equals(that.generatedCodeDir) : that.generatedCodeDir != null) return false;
if (this.javaClientOptions != null ? !this.javaClientOptions.equals(that.javaClientOptions) : that.javaClientOptions != null) return false;
if (this.parsedSpecFileName != null ? !this.parsedSpecFileName.equals(that.parsedSpecFileName) : that.parsedSpecFileName != null) return false;
if (this.pythonClientOptions != null ? !this.pythonClientOptions.equals(that.pythonClientOptions) : that.pythonClientOptions != null) return false;
return this.typescriptClientOptions != null ? this.typescriptClientOptions.equals(that.typescriptClientOptions) : that.typescriptClientOptions == null;
}
@Override
public final int hashCode() {
int result = this.serviceName.hashCode();
result = 31 * result + (this.ignoreGradleWrapper != null ? this.ignoreGradleWrapper.hashCode() : 0);
result = 31 * result + (this.ignoreSmithyBuildOutput != null ? this.ignoreSmithyBuildOutput.hashCode() : 0);
result = 31 * result + (this.modelDir != null ? this.modelDir.hashCode() : 0);
result = 31 * result + (this.smithyBuildOptions != null ? this.smithyBuildOptions.hashCode() : 0);
result = 31 * result + (this.clientLanguages.hashCode());
result = 31 * result + (this.apiSrcDir != null ? this.apiSrcDir.hashCode() : 0);
result = 31 * result + (this.documentationFormats != null ? this.documentationFormats.hashCode() : 0);
result = 31 * result + (this.forceGenerateCodeAndDocs != null ? this.forceGenerateCodeAndDocs.hashCode() : 0);
result = 31 * result + (this.generatedCodeDir != null ? this.generatedCodeDir.hashCode() : 0);
result = 31 * result + (this.javaClientOptions != null ? this.javaClientOptions.hashCode() : 0);
result = 31 * result + (this.parsedSpecFileName != null ? this.parsedSpecFileName.hashCode() : 0);
result = 31 * result + (this.pythonClientOptions != null ? this.pythonClientOptions.hashCode() : 0);
result = 31 * result + (this.typescriptClientOptions != null ? this.typescriptClientOptions.hashCode() : 0);
return result;
}
}
}