All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awscdk.services.iotsitewise.CfnAssetProps Maven / Gradle / Ivy

package software.amazon.awscdk.services.iotsitewise;

/**
 * Properties for defining a `AWS::IoTSiteWise::Asset`.
 */
@javax.annotation.Generated(value = "jsii-pacmak/1.40.0 (build 9713b9d)", date = "2021-10-21T20:06:37.520Z")
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.iotsitewise.$Module.class, fqn = "@aws-cdk/aws-iotsitewise.CfnAssetProps")
@software.amazon.jsii.Jsii.Proxy(CfnAssetProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public interface CfnAssetProps extends software.amazon.jsii.JsiiSerializable {

    /**
     * `AWS::IoTSiteWise::Asset.AssetModelId`.
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
    @org.jetbrains.annotations.NotNull java.lang.String getAssetModelId();

    /**
     * `AWS::IoTSiteWise::Asset.AssetName`.
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
    @org.jetbrains.annotations.NotNull java.lang.String getAssetName();

    /**
     * `AWS::IoTSiteWise::Asset.AssetHierarchies`.
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
    default @org.jetbrains.annotations.Nullable java.lang.Object getAssetHierarchies() {
        return null;
    }

    /**
     * `AWS::IoTSiteWise::Asset.AssetProperties`.
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
    default @org.jetbrains.annotations.Nullable java.lang.Object getAssetProperties() {
        return null;
    }

    /**
     * `AWS::IoTSiteWise::Asset.Tags`.
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
    default @org.jetbrains.annotations.Nullable java.util.List getTags() {
        return null;
    }

    /**
     * @return a {@link Builder} of {@link CfnAssetProps}
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
    static Builder builder() {
        return new Builder();
    }
    /**
     * A builder for {@link CfnAssetProps}
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
    public static final class Builder implements software.amazon.jsii.Builder {
        private java.lang.String assetModelId;
        private java.lang.String assetName;
        private java.lang.Object assetHierarchies;
        private java.lang.Object assetProperties;
        private java.util.List tags;

        /**
         * Sets the value of {@link CfnAssetProps#getAssetModelId}
         * @param assetModelId `AWS::IoTSiteWise::Asset.AssetModelId`. This parameter is required.
         * @return {@code this}
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        public Builder assetModelId(java.lang.String assetModelId) {
            this.assetModelId = assetModelId;
            return this;
        }

        /**
         * Sets the value of {@link CfnAssetProps#getAssetName}
         * @param assetName `AWS::IoTSiteWise::Asset.AssetName`. This parameter is required.
         * @return {@code this}
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        public Builder assetName(java.lang.String assetName) {
            this.assetName = assetName;
            return this;
        }

        /**
         * Sets the value of {@link CfnAssetProps#getAssetHierarchies}
         * @param assetHierarchies `AWS::IoTSiteWise::Asset.AssetHierarchies`.
         * @return {@code this}
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        public Builder assetHierarchies(software.amazon.awscdk.core.IResolvable assetHierarchies) {
            this.assetHierarchies = assetHierarchies;
            return this;
        }

        /**
         * Sets the value of {@link CfnAssetProps#getAssetHierarchies}
         * @param assetHierarchies `AWS::IoTSiteWise::Asset.AssetHierarchies`.
         * @return {@code this}
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        public Builder assetHierarchies(java.util.List assetHierarchies) {
            this.assetHierarchies = assetHierarchies;
            return this;
        }

        /**
         * Sets the value of {@link CfnAssetProps#getAssetProperties}
         * @param assetProperties `AWS::IoTSiteWise::Asset.AssetProperties`.
         * @return {@code this}
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        public Builder assetProperties(software.amazon.awscdk.core.IResolvable assetProperties) {
            this.assetProperties = assetProperties;
            return this;
        }

        /**
         * Sets the value of {@link CfnAssetProps#getAssetProperties}
         * @param assetProperties `AWS::IoTSiteWise::Asset.AssetProperties`.
         * @return {@code this}
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        public Builder assetProperties(java.util.List assetProperties) {
            this.assetProperties = assetProperties;
            return this;
        }

        /**
         * Sets the value of {@link CfnAssetProps#getTags}
         * @param tags `AWS::IoTSiteWise::Asset.Tags`.
         * @return {@code this}
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        @SuppressWarnings("unchecked")
        public Builder tags(java.util.List tags) {
            this.tags = (java.util.List)tags;
            return this;
        }

        /**
         * Builds the configured instance.
         * @return a new instance of {@link CfnAssetProps}
         * @throws NullPointerException if any required attribute was not provided
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
        @Override
        public CfnAssetProps build() {
            return new Jsii$Proxy(assetModelId, assetName, assetHierarchies, assetProperties, tags);
        }
    }

    /**
     * An implementation for {@link CfnAssetProps}
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
    @software.amazon.jsii.Internal
    final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements CfnAssetProps {
        private final java.lang.String assetModelId;
        private final java.lang.String assetName;
        private final java.lang.Object assetHierarchies;
        private final java.lang.Object assetProperties;
        private final java.util.List tags;

        /**
         * 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.assetModelId = software.amazon.jsii.Kernel.get(this, "assetModelId", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
            this.assetName = software.amazon.jsii.Kernel.get(this, "assetName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
            this.assetHierarchies = software.amazon.jsii.Kernel.get(this, "assetHierarchies", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
            this.assetProperties = software.amazon.jsii.Kernel.get(this, "assetProperties", software.amazon.jsii.NativeType.forClass(java.lang.Object.class));
            this.tags = software.amazon.jsii.Kernel.get(this, "tags", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.core.CfnTag.class)));
        }

        /**
         * Constructor that initializes the object based on literal property values passed by the {@link Builder}.
         */
        @SuppressWarnings("unchecked")
        protected Jsii$Proxy(final java.lang.String assetModelId, final java.lang.String assetName, final java.lang.Object assetHierarchies, final java.lang.Object assetProperties, final java.util.List tags) {
            super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
            this.assetModelId = java.util.Objects.requireNonNull(assetModelId, "assetModelId is required");
            this.assetName = java.util.Objects.requireNonNull(assetName, "assetName is required");
            this.assetHierarchies = assetHierarchies;
            this.assetProperties = assetProperties;
            this.tags = (java.util.List)tags;
        }

        @Override
        public final java.lang.String getAssetModelId() {
            return this.assetModelId;
        }

        @Override
        public final java.lang.String getAssetName() {
            return this.assetName;
        }

        @Override
        public final java.lang.Object getAssetHierarchies() {
            return this.assetHierarchies;
        }

        @Override
        public final java.lang.Object getAssetProperties() {
            return this.assetProperties;
        }

        @Override
        public final java.util.List getTags() {
            return this.tags;
        }

        @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("assetModelId", om.valueToTree(this.getAssetModelId()));
            data.set("assetName", om.valueToTree(this.getAssetName()));
            if (this.getAssetHierarchies() != null) {
                data.set("assetHierarchies", om.valueToTree(this.getAssetHierarchies()));
            }
            if (this.getAssetProperties() != null) {
                data.set("assetProperties", om.valueToTree(this.getAssetProperties()));
            }
            if (this.getTags() != null) {
                data.set("tags", om.valueToTree(this.getTags()));
            }

            final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
            struct.set("fqn", om.valueToTree("@aws-cdk/aws-iotsitewise.CfnAssetProps"));
            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;

            CfnAssetProps.Jsii$Proxy that = (CfnAssetProps.Jsii$Proxy) o;

            if (!assetModelId.equals(that.assetModelId)) return false;
            if (!assetName.equals(that.assetName)) return false;
            if (this.assetHierarchies != null ? !this.assetHierarchies.equals(that.assetHierarchies) : that.assetHierarchies != null) return false;
            if (this.assetProperties != null ? !this.assetProperties.equals(that.assetProperties) : that.assetProperties != null) return false;
            return this.tags != null ? this.tags.equals(that.tags) : that.tags == null;
        }

        @Override
        public final int hashCode() {
            int result = this.assetModelId.hashCode();
            result = 31 * result + (this.assetName.hashCode());
            result = 31 * result + (this.assetHierarchies != null ? this.assetHierarchies.hashCode() : 0);
            result = 31 * result + (this.assetProperties != null ? this.assetProperties.hashCode() : 0);
            result = 31 * result + (this.tags != null ? this.tags.hashCode() : 0);
            return result;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy