software.aws.awsprototypingsdk.pdknag.PDKNagAppProps Maven / Gradle / Ivy
Show all versions of pdk-nag Show documentation
package software.aws.awsprototypingsdk.pdknag;
/**
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.82.0 (build 2d2ddd7)", date = "2023-08-24T22:55:30.372Z")
@software.amazon.jsii.Jsii(module = software.aws.awsprototypingsdk.pdknag.$Module.class, fqn = "@aws-prototyping-sdk/pdk-nag.PDKNagAppProps")
@software.amazon.jsii.Jsii.Proxy(PDKNagAppProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public interface PDKNagAppProps extends software.amazon.jsii.JsiiSerializable, software.amazon.awscdk.AppProps {
/**
* Determines whether any errors encountered should trigger a test failure.
*
* Default: false
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getFailOnError() {
return null;
}
/**
* Determines whether any warnings encountered should trigger a test failure.
*
* Default: false
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getFailOnWarning() {
return null;
}
/**
* Custom nag packs to execute.
*
* Default: DEFAULT_NAG_PACKS
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.util.List getNagPacks() {
return null;
}
/**
* @return a {@link Builder} of {@link PDKNagAppProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link PDKNagAppProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.Boolean failOnError;
java.lang.Boolean failOnWarning;
java.util.List nagPacks;
java.lang.Boolean analyticsReporting;
java.lang.Boolean autoSynth;
java.util.Map context;
software.amazon.awscdk.IReusableStackSynthesizer defaultStackSynthesizer;
java.lang.String outdir;
java.util.List policyValidationBeta1;
java.util.Map postCliContext;
java.lang.Boolean stackTraces;
java.lang.Boolean treeMetadata;
/**
* Sets the value of {@link PDKNagAppProps#getFailOnError}
* @param failOnError Determines whether any errors encountered should trigger a test failure.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder failOnError(java.lang.Boolean failOnError) {
this.failOnError = failOnError;
return this;
}
/**
* Sets the value of {@link PDKNagAppProps#getFailOnWarning}
* @param failOnWarning Determines whether any warnings encountered should trigger a test failure.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder failOnWarning(java.lang.Boolean failOnWarning) {
this.failOnWarning = failOnWarning;
return this;
}
/**
* Sets the value of {@link PDKNagAppProps#getNagPacks}
* @param nagPacks Custom nag packs to execute.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder nagPacks(java.util.List extends io.github.cdklabs.cdknag.NagPack> nagPacks) {
this.nagPacks = (java.util.List)nagPacks;
return this;
}
/**
* Sets the value of {@link PDKNagAppProps#getAnalyticsReporting}
* @param analyticsReporting Include runtime versioning information in the Stacks of this app.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder analyticsReporting(java.lang.Boolean analyticsReporting) {
this.analyticsReporting = analyticsReporting;
return this;
}
/**
* Sets the value of {@link PDKNagAppProps#getAutoSynth}
* @param autoSynth Automatically call synth()
before the program exits.
* If you set this, you don't have to call synth()
explicitly. Note that
* this feature is only available for certain programming languages, and
* calling synth()
is still recommended.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder autoSynth(java.lang.Boolean autoSynth) {
this.autoSynth = autoSynth;
return this;
}
/**
* Sets the value of {@link PDKNagAppProps#getContext}
* @param context Additional context values for the application.
* Context set by the CLI or the context
key in cdk.json
has precedence.
*
* Context can be read from any construct using node.getContext(key)
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder context(java.util.Map context) {
this.context = (java.util.Map)context;
return this;
}
/**
* Sets the value of {@link PDKNagAppProps#getDefaultStackSynthesizer}
* @param defaultStackSynthesizer The stack synthesizer to use by default for all Stacks in the App.
* The Stack Synthesizer controls aspects of synthesis and deployment,
* like how assets are referenced and what IAM roles to use. For more
* information, see the README of the main CDK package.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder defaultStackSynthesizer(software.amazon.awscdk.IReusableStackSynthesizer defaultStackSynthesizer) {
this.defaultStackSynthesizer = defaultStackSynthesizer;
return this;
}
/**
* Sets the value of {@link PDKNagAppProps#getOutdir}
* @param outdir The output directory into which to emit synthesized artifacts.
* You should never need to set this value. By default, the value you pass to
* the CLI's --output
flag will be used, and if you change it to a different
* directory the CLI will fail to pick up the generated Cloud Assembly.
*
* This property is intended for internal and testing use.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder outdir(java.lang.String outdir) {
this.outdir = outdir;
return this;
}
/**
* Sets the value of {@link PDKNagAppProps#getPolicyValidationBeta1}
* @param policyValidationBeta1 Validation plugins to run after synthesis.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder policyValidationBeta1(java.util.List extends software.amazon.awscdk.IPolicyValidationPluginBeta1> policyValidationBeta1) {
this.policyValidationBeta1 = (java.util.List)policyValidationBeta1;
return this;
}
/**
* Sets the value of {@link PDKNagAppProps#getPostCliContext}
* @param postCliContext Additional context values for the application.
* Context provided here has precedence over context set by:
*
*
* - The CLI via --context
* - The
context
key in cdk.json
* - The
AppProps.context
property
*
*
* This property is recommended over the AppProps.context
property since you
* can make final decision over which context value to take in your app.
*
* Context can be read from any construct using node.getContext(key)
.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder postCliContext(java.util.Map postCliContext) {
this.postCliContext = (java.util.Map)postCliContext;
return this;
}
/**
* Sets the value of {@link PDKNagAppProps#getStackTraces}
* @param stackTraces Include construct creation stack trace in the aws:cdk:trace
metadata key of all constructs.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder stackTraces(java.lang.Boolean stackTraces) {
this.stackTraces = stackTraces;
return this;
}
/**
* Sets the value of {@link PDKNagAppProps#getTreeMetadata}
* @param treeMetadata Include construct tree metadata as part of the Cloud Assembly.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder treeMetadata(java.lang.Boolean treeMetadata) {
this.treeMetadata = treeMetadata;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link PDKNagAppProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public PDKNagAppProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link PDKNagAppProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements PDKNagAppProps {
private final java.lang.Boolean failOnError;
private final java.lang.Boolean failOnWarning;
private final java.util.List nagPacks;
private final java.lang.Boolean analyticsReporting;
private final java.lang.Boolean autoSynth;
private final java.util.Map context;
private final software.amazon.awscdk.IReusableStackSynthesizer defaultStackSynthesizer;
private final java.lang.String outdir;
private final java.util.List policyValidationBeta1;
private final java.util.Map postCliContext;
private final java.lang.Boolean stackTraces;
private final java.lang.Boolean treeMetadata;
/**
* 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.failOnError = software.amazon.jsii.Kernel.get(this, "failOnError", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.failOnWarning = software.amazon.jsii.Kernel.get(this, "failOnWarning", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.nagPacks = software.amazon.jsii.Kernel.get(this, "nagPacks", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(io.github.cdklabs.cdknag.NagPack.class)));
this.analyticsReporting = software.amazon.jsii.Kernel.get(this, "analyticsReporting", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.autoSynth = software.amazon.jsii.Kernel.get(this, "autoSynth", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.context = software.amazon.jsii.Kernel.get(this, "context", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(java.lang.Object.class)));
this.defaultStackSynthesizer = software.amazon.jsii.Kernel.get(this, "defaultStackSynthesizer", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.IReusableStackSynthesizer.class));
this.outdir = software.amazon.jsii.Kernel.get(this, "outdir", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.policyValidationBeta1 = software.amazon.jsii.Kernel.get(this, "policyValidationBeta1", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.IPolicyValidationPluginBeta1.class)));
this.postCliContext = software.amazon.jsii.Kernel.get(this, "postCliContext", software.amazon.jsii.NativeType.mapOf(software.amazon.jsii.NativeType.forClass(java.lang.Object.class)));
this.stackTraces = software.amazon.jsii.Kernel.get(this, "stackTraces", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.treeMetadata = software.amazon.jsii.Kernel.get(this, "treeMetadata", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.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.failOnError = builder.failOnError;
this.failOnWarning = builder.failOnWarning;
this.nagPacks = (java.util.List)builder.nagPacks;
this.analyticsReporting = builder.analyticsReporting;
this.autoSynth = builder.autoSynth;
this.context = (java.util.Map)builder.context;
this.defaultStackSynthesizer = builder.defaultStackSynthesizer;
this.outdir = builder.outdir;
this.policyValidationBeta1 = (java.util.List)builder.policyValidationBeta1;
this.postCliContext = (java.util.Map)builder.postCliContext;
this.stackTraces = builder.stackTraces;
this.treeMetadata = builder.treeMetadata;
}
@Override
public final java.lang.Boolean getFailOnError() {
return this.failOnError;
}
@Override
public final java.lang.Boolean getFailOnWarning() {
return this.failOnWarning;
}
@Override
public final java.util.List getNagPacks() {
return this.nagPacks;
}
@Override
public final java.lang.Boolean getAnalyticsReporting() {
return this.analyticsReporting;
}
@Override
public final java.lang.Boolean getAutoSynth() {
return this.autoSynth;
}
@Override
public final java.util.Map getContext() {
return this.context;
}
@Override
public final software.amazon.awscdk.IReusableStackSynthesizer getDefaultStackSynthesizer() {
return this.defaultStackSynthesizer;
}
@Override
public final java.lang.String getOutdir() {
return this.outdir;
}
@Override
public final java.util.List getPolicyValidationBeta1() {
return this.policyValidationBeta1;
}
@Override
public final java.util.Map getPostCliContext() {
return this.postCliContext;
}
@Override
public final java.lang.Boolean getStackTraces() {
return this.stackTraces;
}
@Override
public final java.lang.Boolean getTreeMetadata() {
return this.treeMetadata;
}
@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();
if (this.getFailOnError() != null) {
data.set("failOnError", om.valueToTree(this.getFailOnError()));
}
if (this.getFailOnWarning() != null) {
data.set("failOnWarning", om.valueToTree(this.getFailOnWarning()));
}
if (this.getNagPacks() != null) {
data.set("nagPacks", om.valueToTree(this.getNagPacks()));
}
if (this.getAnalyticsReporting() != null) {
data.set("analyticsReporting", om.valueToTree(this.getAnalyticsReporting()));
}
if (this.getAutoSynth() != null) {
data.set("autoSynth", om.valueToTree(this.getAutoSynth()));
}
if (this.getContext() != null) {
data.set("context", om.valueToTree(this.getContext()));
}
if (this.getDefaultStackSynthesizer() != null) {
data.set("defaultStackSynthesizer", om.valueToTree(this.getDefaultStackSynthesizer()));
}
if (this.getOutdir() != null) {
data.set("outdir", om.valueToTree(this.getOutdir()));
}
if (this.getPolicyValidationBeta1() != null) {
data.set("policyValidationBeta1", om.valueToTree(this.getPolicyValidationBeta1()));
}
if (this.getPostCliContext() != null) {
data.set("postCliContext", om.valueToTree(this.getPostCliContext()));
}
if (this.getStackTraces() != null) {
data.set("stackTraces", om.valueToTree(this.getStackTraces()));
}
if (this.getTreeMetadata() != null) {
data.set("treeMetadata", om.valueToTree(this.getTreeMetadata()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-prototyping-sdk/pdk-nag.PDKNagAppProps"));
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;
PDKNagAppProps.Jsii$Proxy that = (PDKNagAppProps.Jsii$Proxy) o;
if (this.failOnError != null ? !this.failOnError.equals(that.failOnError) : that.failOnError != null) return false;
if (this.failOnWarning != null ? !this.failOnWarning.equals(that.failOnWarning) : that.failOnWarning != null) return false;
if (this.nagPacks != null ? !this.nagPacks.equals(that.nagPacks) : that.nagPacks != null) return false;
if (this.analyticsReporting != null ? !this.analyticsReporting.equals(that.analyticsReporting) : that.analyticsReporting != null) return false;
if (this.autoSynth != null ? !this.autoSynth.equals(that.autoSynth) : that.autoSynth != null) return false;
if (this.context != null ? !this.context.equals(that.context) : that.context != null) return false;
if (this.defaultStackSynthesizer != null ? !this.defaultStackSynthesizer.equals(that.defaultStackSynthesizer) : that.defaultStackSynthesizer != null) return false;
if (this.outdir != null ? !this.outdir.equals(that.outdir) : that.outdir != null) return false;
if (this.policyValidationBeta1 != null ? !this.policyValidationBeta1.equals(that.policyValidationBeta1) : that.policyValidationBeta1 != null) return false;
if (this.postCliContext != null ? !this.postCliContext.equals(that.postCliContext) : that.postCliContext != null) return false;
if (this.stackTraces != null ? !this.stackTraces.equals(that.stackTraces) : that.stackTraces != null) return false;
return this.treeMetadata != null ? this.treeMetadata.equals(that.treeMetadata) : that.treeMetadata == null;
}
@Override
public final int hashCode() {
int result = this.failOnError != null ? this.failOnError.hashCode() : 0;
result = 31 * result + (this.failOnWarning != null ? this.failOnWarning.hashCode() : 0);
result = 31 * result + (this.nagPacks != null ? this.nagPacks.hashCode() : 0);
result = 31 * result + (this.analyticsReporting != null ? this.analyticsReporting.hashCode() : 0);
result = 31 * result + (this.autoSynth != null ? this.autoSynth.hashCode() : 0);
result = 31 * result + (this.context != null ? this.context.hashCode() : 0);
result = 31 * result + (this.defaultStackSynthesizer != null ? this.defaultStackSynthesizer.hashCode() : 0);
result = 31 * result + (this.outdir != null ? this.outdir.hashCode() : 0);
result = 31 * result + (this.policyValidationBeta1 != null ? this.policyValidationBeta1.hashCode() : 0);
result = 31 * result + (this.postCliContext != null ? this.postCliContext.hashCode() : 0);
result = 31 * result + (this.stackTraces != null ? this.stackTraces.hashCode() : 0);
result = 31 * result + (this.treeMetadata != null ? this.treeMetadata.hashCode() : 0);
return result;
}
}
}