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

com.pulumi.azurenative.securityinsights.ThreatIntelligenceIndicatorArgs Maven / Gradle / Ivy

There is a newer version: 2.72.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.securityinsights;

import com.pulumi.azurenative.securityinsights.inputs.ThreatIntelligenceExternalReferenceArgs;
import com.pulumi.azurenative.securityinsights.inputs.ThreatIntelligenceGranularMarkingModelArgs;
import com.pulumi.azurenative.securityinsights.inputs.ThreatIntelligenceKillChainPhaseArgs;
import com.pulumi.azurenative.securityinsights.inputs.ThreatIntelligenceParsedPatternArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.Object;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class ThreatIntelligenceIndicatorArgs extends com.pulumi.resources.ResourceArgs {

    public static final ThreatIntelligenceIndicatorArgs Empty = new ThreatIntelligenceIndicatorArgs();

    /**
     * Confidence of threat intelligence entity
     * 
     */
    @Import(name="confidence")
    private @Nullable Output confidence;

    /**
     * @return Confidence of threat intelligence entity
     * 
     */
    public Optional> confidence() {
        return Optional.ofNullable(this.confidence);
    }

    /**
     * Created by
     * 
     */
    @Import(name="created")
    private @Nullable Output created;

    /**
     * @return Created by
     * 
     */
    public Optional> created() {
        return Optional.ofNullable(this.created);
    }

    /**
     * Created by reference of threat intelligence entity
     * 
     */
    @Import(name="createdByRef")
    private @Nullable Output createdByRef;

    /**
     * @return Created by reference of threat intelligence entity
     * 
     */
    public Optional> createdByRef() {
        return Optional.ofNullable(this.createdByRef);
    }

    /**
     * Is threat intelligence entity defanged
     * 
     */
    @Import(name="defanged")
    private @Nullable Output defanged;

    /**
     * @return Is threat intelligence entity defanged
     * 
     */
    public Optional> defanged() {
        return Optional.ofNullable(this.defanged);
    }

    /**
     * Description of a threat intelligence entity
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Description of a threat intelligence entity
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * Display name of a threat intelligence entity
     * 
     */
    @Import(name="displayName")
    private @Nullable Output displayName;

    /**
     * @return Display name of a threat intelligence entity
     * 
     */
    public Optional> displayName() {
        return Optional.ofNullable(this.displayName);
    }

    /**
     * Extensions map
     * 
     */
    @Import(name="extensions")
    private @Nullable Output extensions;

    /**
     * @return Extensions map
     * 
     */
    public Optional> extensions() {
        return Optional.ofNullable(this.extensions);
    }

    /**
     * External ID of threat intelligence entity
     * 
     */
    @Import(name="externalId")
    private @Nullable Output externalId;

    /**
     * @return External ID of threat intelligence entity
     * 
     */
    public Optional> externalId() {
        return Optional.ofNullable(this.externalId);
    }

    /**
     * External last updated time in UTC
     * 
     */
    @Import(name="externalLastUpdatedTimeUtc")
    private @Nullable Output externalLastUpdatedTimeUtc;

    /**
     * @return External last updated time in UTC
     * 
     */
    public Optional> externalLastUpdatedTimeUtc() {
        return Optional.ofNullable(this.externalLastUpdatedTimeUtc);
    }

    /**
     * External References
     * 
     */
    @Import(name="externalReferences")
    private @Nullable Output> externalReferences;

    /**
     * @return External References
     * 
     */
    public Optional>> externalReferences() {
        return Optional.ofNullable(this.externalReferences);
    }

    /**
     * Granular Markings
     * 
     */
    @Import(name="granularMarkings")
    private @Nullable Output> granularMarkings;

    /**
     * @return Granular Markings
     * 
     */
    public Optional>> granularMarkings() {
        return Optional.ofNullable(this.granularMarkings);
    }

    /**
     * Indicator types of threat intelligence entities
     * 
     */
    @Import(name="indicatorTypes")
    private @Nullable Output> indicatorTypes;

    /**
     * @return Indicator types of threat intelligence entities
     * 
     */
    public Optional>> indicatorTypes() {
        return Optional.ofNullable(this.indicatorTypes);
    }

    /**
     * Kill chain phases
     * 
     */
    @Import(name="killChainPhases")
    private @Nullable Output> killChainPhases;

    /**
     * @return Kill chain phases
     * 
     */
    public Optional>> killChainPhases() {
        return Optional.ofNullable(this.killChainPhases);
    }

    /**
     * The kind of the threat intelligence entity
     * Expected value is 'indicator'.
     * 
     */
    @Import(name="kind", required=true)
    private Output kind;

    /**
     * @return The kind of the threat intelligence entity
     * Expected value is 'indicator'.
     * 
     */
    public Output kind() {
        return this.kind;
    }

    /**
     * Labels  of threat intelligence entity
     * 
     */
    @Import(name="labels")
    private @Nullable Output> labels;

    /**
     * @return Labels  of threat intelligence entity
     * 
     */
    public Optional>> labels() {
        return Optional.ofNullable(this.labels);
    }

    /**
     * Language of threat intelligence entity
     * 
     */
    @Import(name="language")
    private @Nullable Output language;

    /**
     * @return Language of threat intelligence entity
     * 
     */
    public Optional> language() {
        return Optional.ofNullable(this.language);
    }

    /**
     * Last updated time in UTC
     * 
     */
    @Import(name="lastUpdatedTimeUtc")
    private @Nullable Output lastUpdatedTimeUtc;

    /**
     * @return Last updated time in UTC
     * 
     */
    public Optional> lastUpdatedTimeUtc() {
        return Optional.ofNullable(this.lastUpdatedTimeUtc);
    }

    /**
     * Modified by
     * 
     */
    @Import(name="modified")
    private @Nullable Output modified;

    /**
     * @return Modified by
     * 
     */
    public Optional> modified() {
        return Optional.ofNullable(this.modified);
    }

    /**
     * Threat intelligence indicator name field.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Threat intelligence indicator name field.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Threat intelligence entity object marking references
     * 
     */
    @Import(name="objectMarkingRefs")
    private @Nullable Output> objectMarkingRefs;

    /**
     * @return Threat intelligence entity object marking references
     * 
     */
    public Optional>> objectMarkingRefs() {
        return Optional.ofNullable(this.objectMarkingRefs);
    }

    /**
     * Parsed patterns
     * 
     */
    @Import(name="parsedPattern")
    private @Nullable Output> parsedPattern;

    /**
     * @return Parsed patterns
     * 
     */
    public Optional>> parsedPattern() {
        return Optional.ofNullable(this.parsedPattern);
    }

    /**
     * Pattern of a threat intelligence entity
     * 
     */
    @Import(name="pattern")
    private @Nullable Output pattern;

    /**
     * @return Pattern of a threat intelligence entity
     * 
     */
    public Optional> pattern() {
        return Optional.ofNullable(this.pattern);
    }

    /**
     * Pattern type of a threat intelligence entity
     * 
     */
    @Import(name="patternType")
    private @Nullable Output patternType;

    /**
     * @return Pattern type of a threat intelligence entity
     * 
     */
    public Optional> patternType() {
        return Optional.ofNullable(this.patternType);
    }

    /**
     * Pattern version of a threat intelligence entity
     * 
     */
    @Import(name="patternVersion")
    private @Nullable Output patternVersion;

    /**
     * @return Pattern version of a threat intelligence entity
     * 
     */
    public Optional> patternVersion() {
        return Optional.ofNullable(this.patternVersion);
    }

    /**
     * The name of the resource group. The name is case insensitive.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group. The name is case insensitive.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Is threat intelligence entity revoked
     * 
     */
    @Import(name="revoked")
    private @Nullable Output revoked;

    /**
     * @return Is threat intelligence entity revoked
     * 
     */
    public Optional> revoked() {
        return Optional.ofNullable(this.revoked);
    }

    /**
     * Source of a threat intelligence entity
     * 
     */
    @Import(name="source")
    private @Nullable Output source;

    /**
     * @return Source of a threat intelligence entity
     * 
     */
    public Optional> source() {
        return Optional.ofNullable(this.source);
    }

    /**
     * List of tags
     * 
     */
    @Import(name="threatIntelligenceTags")
    private @Nullable Output> threatIntelligenceTags;

    /**
     * @return List of tags
     * 
     */
    public Optional>> threatIntelligenceTags() {
        return Optional.ofNullable(this.threatIntelligenceTags);
    }

    /**
     * Threat types
     * 
     */
    @Import(name="threatTypes")
    private @Nullable Output> threatTypes;

    /**
     * @return Threat types
     * 
     */
    public Optional>> threatTypes() {
        return Optional.ofNullable(this.threatTypes);
    }

    /**
     * Valid from
     * 
     */
    @Import(name="validFrom")
    private @Nullable Output validFrom;

    /**
     * @return Valid from
     * 
     */
    public Optional> validFrom() {
        return Optional.ofNullable(this.validFrom);
    }

    /**
     * Valid until
     * 
     */
    @Import(name="validUntil")
    private @Nullable Output validUntil;

    /**
     * @return Valid until
     * 
     */
    public Optional> validUntil() {
        return Optional.ofNullable(this.validUntil);
    }

    /**
     * The name of the workspace.
     * 
     */
    @Import(name="workspaceName", required=true)
    private Output workspaceName;

    /**
     * @return The name of the workspace.
     * 
     */
    public Output workspaceName() {
        return this.workspaceName;
    }

    private ThreatIntelligenceIndicatorArgs() {}

    private ThreatIntelligenceIndicatorArgs(ThreatIntelligenceIndicatorArgs $) {
        this.confidence = $.confidence;
        this.created = $.created;
        this.createdByRef = $.createdByRef;
        this.defanged = $.defanged;
        this.description = $.description;
        this.displayName = $.displayName;
        this.extensions = $.extensions;
        this.externalId = $.externalId;
        this.externalLastUpdatedTimeUtc = $.externalLastUpdatedTimeUtc;
        this.externalReferences = $.externalReferences;
        this.granularMarkings = $.granularMarkings;
        this.indicatorTypes = $.indicatorTypes;
        this.killChainPhases = $.killChainPhases;
        this.kind = $.kind;
        this.labels = $.labels;
        this.language = $.language;
        this.lastUpdatedTimeUtc = $.lastUpdatedTimeUtc;
        this.modified = $.modified;
        this.name = $.name;
        this.objectMarkingRefs = $.objectMarkingRefs;
        this.parsedPattern = $.parsedPattern;
        this.pattern = $.pattern;
        this.patternType = $.patternType;
        this.patternVersion = $.patternVersion;
        this.resourceGroupName = $.resourceGroupName;
        this.revoked = $.revoked;
        this.source = $.source;
        this.threatIntelligenceTags = $.threatIntelligenceTags;
        this.threatTypes = $.threatTypes;
        this.validFrom = $.validFrom;
        this.validUntil = $.validUntil;
        this.workspaceName = $.workspaceName;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(ThreatIntelligenceIndicatorArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private ThreatIntelligenceIndicatorArgs $;

        public Builder() {
            $ = new ThreatIntelligenceIndicatorArgs();
        }

        public Builder(ThreatIntelligenceIndicatorArgs defaults) {
            $ = new ThreatIntelligenceIndicatorArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param confidence Confidence of threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder confidence(@Nullable Output confidence) {
            $.confidence = confidence;
            return this;
        }

        /**
         * @param confidence Confidence of threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder confidence(Integer confidence) {
            return confidence(Output.of(confidence));
        }

        /**
         * @param created Created by
         * 
         * @return builder
         * 
         */
        public Builder created(@Nullable Output created) {
            $.created = created;
            return this;
        }

        /**
         * @param created Created by
         * 
         * @return builder
         * 
         */
        public Builder created(String created) {
            return created(Output.of(created));
        }

        /**
         * @param createdByRef Created by reference of threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder createdByRef(@Nullable Output createdByRef) {
            $.createdByRef = createdByRef;
            return this;
        }

        /**
         * @param createdByRef Created by reference of threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder createdByRef(String createdByRef) {
            return createdByRef(Output.of(createdByRef));
        }

        /**
         * @param defanged Is threat intelligence entity defanged
         * 
         * @return builder
         * 
         */
        public Builder defanged(@Nullable Output defanged) {
            $.defanged = defanged;
            return this;
        }

        /**
         * @param defanged Is threat intelligence entity defanged
         * 
         * @return builder
         * 
         */
        public Builder defanged(Boolean defanged) {
            return defanged(Output.of(defanged));
        }

        /**
         * @param description Description of a threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Description of a threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param displayName Display name of a threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder displayName(@Nullable Output displayName) {
            $.displayName = displayName;
            return this;
        }

        /**
         * @param displayName Display name of a threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder displayName(String displayName) {
            return displayName(Output.of(displayName));
        }

        /**
         * @param extensions Extensions map
         * 
         * @return builder
         * 
         */
        public Builder extensions(@Nullable Output extensions) {
            $.extensions = extensions;
            return this;
        }

        /**
         * @param extensions Extensions map
         * 
         * @return builder
         * 
         */
        public Builder extensions(Object extensions) {
            return extensions(Output.of(extensions));
        }

        /**
         * @param externalId External ID of threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder externalId(@Nullable Output externalId) {
            $.externalId = externalId;
            return this;
        }

        /**
         * @param externalId External ID of threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder externalId(String externalId) {
            return externalId(Output.of(externalId));
        }

        /**
         * @param externalLastUpdatedTimeUtc External last updated time in UTC
         * 
         * @return builder
         * 
         */
        public Builder externalLastUpdatedTimeUtc(@Nullable Output externalLastUpdatedTimeUtc) {
            $.externalLastUpdatedTimeUtc = externalLastUpdatedTimeUtc;
            return this;
        }

        /**
         * @param externalLastUpdatedTimeUtc External last updated time in UTC
         * 
         * @return builder
         * 
         */
        public Builder externalLastUpdatedTimeUtc(String externalLastUpdatedTimeUtc) {
            return externalLastUpdatedTimeUtc(Output.of(externalLastUpdatedTimeUtc));
        }

        /**
         * @param externalReferences External References
         * 
         * @return builder
         * 
         */
        public Builder externalReferences(@Nullable Output> externalReferences) {
            $.externalReferences = externalReferences;
            return this;
        }

        /**
         * @param externalReferences External References
         * 
         * @return builder
         * 
         */
        public Builder externalReferences(List externalReferences) {
            return externalReferences(Output.of(externalReferences));
        }

        /**
         * @param externalReferences External References
         * 
         * @return builder
         * 
         */
        public Builder externalReferences(ThreatIntelligenceExternalReferenceArgs... externalReferences) {
            return externalReferences(List.of(externalReferences));
        }

        /**
         * @param granularMarkings Granular Markings
         * 
         * @return builder
         * 
         */
        public Builder granularMarkings(@Nullable Output> granularMarkings) {
            $.granularMarkings = granularMarkings;
            return this;
        }

        /**
         * @param granularMarkings Granular Markings
         * 
         * @return builder
         * 
         */
        public Builder granularMarkings(List granularMarkings) {
            return granularMarkings(Output.of(granularMarkings));
        }

        /**
         * @param granularMarkings Granular Markings
         * 
         * @return builder
         * 
         */
        public Builder granularMarkings(ThreatIntelligenceGranularMarkingModelArgs... granularMarkings) {
            return granularMarkings(List.of(granularMarkings));
        }

        /**
         * @param indicatorTypes Indicator types of threat intelligence entities
         * 
         * @return builder
         * 
         */
        public Builder indicatorTypes(@Nullable Output> indicatorTypes) {
            $.indicatorTypes = indicatorTypes;
            return this;
        }

        /**
         * @param indicatorTypes Indicator types of threat intelligence entities
         * 
         * @return builder
         * 
         */
        public Builder indicatorTypes(List indicatorTypes) {
            return indicatorTypes(Output.of(indicatorTypes));
        }

        /**
         * @param indicatorTypes Indicator types of threat intelligence entities
         * 
         * @return builder
         * 
         */
        public Builder indicatorTypes(String... indicatorTypes) {
            return indicatorTypes(List.of(indicatorTypes));
        }

        /**
         * @param killChainPhases Kill chain phases
         * 
         * @return builder
         * 
         */
        public Builder killChainPhases(@Nullable Output> killChainPhases) {
            $.killChainPhases = killChainPhases;
            return this;
        }

        /**
         * @param killChainPhases Kill chain phases
         * 
         * @return builder
         * 
         */
        public Builder killChainPhases(List killChainPhases) {
            return killChainPhases(Output.of(killChainPhases));
        }

        /**
         * @param killChainPhases Kill chain phases
         * 
         * @return builder
         * 
         */
        public Builder killChainPhases(ThreatIntelligenceKillChainPhaseArgs... killChainPhases) {
            return killChainPhases(List.of(killChainPhases));
        }

        /**
         * @param kind The kind of the threat intelligence entity
         * Expected value is 'indicator'.
         * 
         * @return builder
         * 
         */
        public Builder kind(Output kind) {
            $.kind = kind;
            return this;
        }

        /**
         * @param kind The kind of the threat intelligence entity
         * Expected value is 'indicator'.
         * 
         * @return builder
         * 
         */
        public Builder kind(String kind) {
            return kind(Output.of(kind));
        }

        /**
         * @param labels Labels  of threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder labels(@Nullable Output> labels) {
            $.labels = labels;
            return this;
        }

        /**
         * @param labels Labels  of threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder labels(List labels) {
            return labels(Output.of(labels));
        }

        /**
         * @param labels Labels  of threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder labels(String... labels) {
            return labels(List.of(labels));
        }

        /**
         * @param language Language of threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder language(@Nullable Output language) {
            $.language = language;
            return this;
        }

        /**
         * @param language Language of threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder language(String language) {
            return language(Output.of(language));
        }

        /**
         * @param lastUpdatedTimeUtc Last updated time in UTC
         * 
         * @return builder
         * 
         */
        public Builder lastUpdatedTimeUtc(@Nullable Output lastUpdatedTimeUtc) {
            $.lastUpdatedTimeUtc = lastUpdatedTimeUtc;
            return this;
        }

        /**
         * @param lastUpdatedTimeUtc Last updated time in UTC
         * 
         * @return builder
         * 
         */
        public Builder lastUpdatedTimeUtc(String lastUpdatedTimeUtc) {
            return lastUpdatedTimeUtc(Output.of(lastUpdatedTimeUtc));
        }

        /**
         * @param modified Modified by
         * 
         * @return builder
         * 
         */
        public Builder modified(@Nullable Output modified) {
            $.modified = modified;
            return this;
        }

        /**
         * @param modified Modified by
         * 
         * @return builder
         * 
         */
        public Builder modified(String modified) {
            return modified(Output.of(modified));
        }

        /**
         * @param name Threat intelligence indicator name field.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Threat intelligence indicator name field.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param objectMarkingRefs Threat intelligence entity object marking references
         * 
         * @return builder
         * 
         */
        public Builder objectMarkingRefs(@Nullable Output> objectMarkingRefs) {
            $.objectMarkingRefs = objectMarkingRefs;
            return this;
        }

        /**
         * @param objectMarkingRefs Threat intelligence entity object marking references
         * 
         * @return builder
         * 
         */
        public Builder objectMarkingRefs(List objectMarkingRefs) {
            return objectMarkingRefs(Output.of(objectMarkingRefs));
        }

        /**
         * @param objectMarkingRefs Threat intelligence entity object marking references
         * 
         * @return builder
         * 
         */
        public Builder objectMarkingRefs(String... objectMarkingRefs) {
            return objectMarkingRefs(List.of(objectMarkingRefs));
        }

        /**
         * @param parsedPattern Parsed patterns
         * 
         * @return builder
         * 
         */
        public Builder parsedPattern(@Nullable Output> parsedPattern) {
            $.parsedPattern = parsedPattern;
            return this;
        }

        /**
         * @param parsedPattern Parsed patterns
         * 
         * @return builder
         * 
         */
        public Builder parsedPattern(List parsedPattern) {
            return parsedPattern(Output.of(parsedPattern));
        }

        /**
         * @param parsedPattern Parsed patterns
         * 
         * @return builder
         * 
         */
        public Builder parsedPattern(ThreatIntelligenceParsedPatternArgs... parsedPattern) {
            return parsedPattern(List.of(parsedPattern));
        }

        /**
         * @param pattern Pattern of a threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder pattern(@Nullable Output pattern) {
            $.pattern = pattern;
            return this;
        }

        /**
         * @param pattern Pattern of a threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder pattern(String pattern) {
            return pattern(Output.of(pattern));
        }

        /**
         * @param patternType Pattern type of a threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder patternType(@Nullable Output patternType) {
            $.patternType = patternType;
            return this;
        }

        /**
         * @param patternType Pattern type of a threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder patternType(String patternType) {
            return patternType(Output.of(patternType));
        }

        /**
         * @param patternVersion Pattern version of a threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder patternVersion(@Nullable Output patternVersion) {
            $.patternVersion = patternVersion;
            return this;
        }

        /**
         * @param patternVersion Pattern version of a threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder patternVersion(String patternVersion) {
            return patternVersion(Output.of(patternVersion));
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group. The name is case insensitive.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param revoked Is threat intelligence entity revoked
         * 
         * @return builder
         * 
         */
        public Builder revoked(@Nullable Output revoked) {
            $.revoked = revoked;
            return this;
        }

        /**
         * @param revoked Is threat intelligence entity revoked
         * 
         * @return builder
         * 
         */
        public Builder revoked(Boolean revoked) {
            return revoked(Output.of(revoked));
        }

        /**
         * @param source Source of a threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder source(@Nullable Output source) {
            $.source = source;
            return this;
        }

        /**
         * @param source Source of a threat intelligence entity
         * 
         * @return builder
         * 
         */
        public Builder source(String source) {
            return source(Output.of(source));
        }

        /**
         * @param threatIntelligenceTags List of tags
         * 
         * @return builder
         * 
         */
        public Builder threatIntelligenceTags(@Nullable Output> threatIntelligenceTags) {
            $.threatIntelligenceTags = threatIntelligenceTags;
            return this;
        }

        /**
         * @param threatIntelligenceTags List of tags
         * 
         * @return builder
         * 
         */
        public Builder threatIntelligenceTags(List threatIntelligenceTags) {
            return threatIntelligenceTags(Output.of(threatIntelligenceTags));
        }

        /**
         * @param threatIntelligenceTags List of tags
         * 
         * @return builder
         * 
         */
        public Builder threatIntelligenceTags(String... threatIntelligenceTags) {
            return threatIntelligenceTags(List.of(threatIntelligenceTags));
        }

        /**
         * @param threatTypes Threat types
         * 
         * @return builder
         * 
         */
        public Builder threatTypes(@Nullable Output> threatTypes) {
            $.threatTypes = threatTypes;
            return this;
        }

        /**
         * @param threatTypes Threat types
         * 
         * @return builder
         * 
         */
        public Builder threatTypes(List threatTypes) {
            return threatTypes(Output.of(threatTypes));
        }

        /**
         * @param threatTypes Threat types
         * 
         * @return builder
         * 
         */
        public Builder threatTypes(String... threatTypes) {
            return threatTypes(List.of(threatTypes));
        }

        /**
         * @param validFrom Valid from
         * 
         * @return builder
         * 
         */
        public Builder validFrom(@Nullable Output validFrom) {
            $.validFrom = validFrom;
            return this;
        }

        /**
         * @param validFrom Valid from
         * 
         * @return builder
         * 
         */
        public Builder validFrom(String validFrom) {
            return validFrom(Output.of(validFrom));
        }

        /**
         * @param validUntil Valid until
         * 
         * @return builder
         * 
         */
        public Builder validUntil(@Nullable Output validUntil) {
            $.validUntil = validUntil;
            return this;
        }

        /**
         * @param validUntil Valid until
         * 
         * @return builder
         * 
         */
        public Builder validUntil(String validUntil) {
            return validUntil(Output.of(validUntil));
        }

        /**
         * @param workspaceName The name of the workspace.
         * 
         * @return builder
         * 
         */
        public Builder workspaceName(Output workspaceName) {
            $.workspaceName = workspaceName;
            return this;
        }

        /**
         * @param workspaceName The name of the workspace.
         * 
         * @return builder
         * 
         */
        public Builder workspaceName(String workspaceName) {
            return workspaceName(Output.of(workspaceName));
        }

        public ThreatIntelligenceIndicatorArgs build() {
            $.kind = Codegen.stringProp("kind").output().arg($.kind).require();
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ThreatIntelligenceIndicatorArgs", "resourceGroupName");
            }
            if ($.workspaceName == null) {
                throw new MissingRequiredPropertyException("ThreatIntelligenceIndicatorArgs", "workspaceName");
            }
            return $;
        }
    }

}