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

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

There is a newer version: 2.78.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.enums.Kind;
import com.pulumi.azurenative.securityinsights.enums.PackageKind;
import com.pulumi.azurenative.securityinsights.inputs.MetadataAuthorArgs;
import com.pulumi.azurenative.securityinsights.inputs.MetadataCategoriesArgs;
import com.pulumi.azurenative.securityinsights.inputs.MetadataDependenciesArgs;
import com.pulumi.azurenative.securityinsights.inputs.MetadataSourceArgs;
import com.pulumi.azurenative.securityinsights.inputs.MetadataSupportArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
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 ContentTemplateArgs extends com.pulumi.resources.ResourceArgs {

    public static final ContentTemplateArgs Empty = new ContentTemplateArgs();

    /**
     * The creator of the content item.
     * 
     */
    @Import(name="author")
    private @Nullable Output author;

    /**
     * @return The creator of the content item.
     * 
     */
    public Optional> author() {
        return Optional.ofNullable(this.author);
    }

    /**
     * Categories for the item
     * 
     */
    @Import(name="categories")
    private @Nullable Output categories;

    /**
     * @return Categories for the item
     * 
     */
    public Optional> categories() {
        return Optional.ofNullable(this.categories);
    }

    /**
     * Static ID for the content.  Used to identify dependencies and content from solutions or community.  Hard-coded/static for out of the box content and solutions. Dynamic for user-created.  This is the resource name
     * 
     */
    @Import(name="contentId", required=true)
    private Output contentId;

    /**
     * @return Static ID for the content.  Used to identify dependencies and content from solutions or community.  Hard-coded/static for out of the box content and solutions. Dynamic for user-created.  This is the resource name
     * 
     */
    public Output contentId() {
        return this.contentId;
    }

    /**
     * The kind of content the template is for.
     * 
     */
    @Import(name="contentKind", required=true)
    private Output> contentKind;

    /**
     * @return The kind of content the template is for.
     * 
     */
    public Output> contentKind() {
        return this.contentKind;
    }

    /**
     * Schema version of the content. Can be used to distinguish between different flow based on the schema version
     * 
     */
    @Import(name="contentSchemaVersion")
    private @Nullable Output contentSchemaVersion;

    /**
     * @return Schema version of the content. Can be used to distinguish between different flow based on the schema version
     * 
     */
    public Optional> contentSchemaVersion() {
        return Optional.ofNullable(this.contentSchemaVersion);
    }

    /**
     * The custom version of the content. A optional free text
     * 
     */
    @Import(name="customVersion")
    private @Nullable Output customVersion;

    /**
     * @return The custom version of the content. A optional free text
     * 
     */
    public Optional> customVersion() {
        return Optional.ofNullable(this.customVersion);
    }

    /**
     * Dependencies for the content item, what other content items it requires to work.  Can describe more complex dependencies using a recursive/nested structure. For a single dependency an id/kind/version can be supplied or operator/criteria for complex formats.
     * 
     */
    @Import(name="dependencies")
    private @Nullable Output dependencies;

    /**
     * @return Dependencies for the content item, what other content items it requires to work.  Can describe more complex dependencies using a recursive/nested structure. For a single dependency an id/kind/version can be supplied or operator/criteria for complex formats.
     * 
     */
    public Optional> dependencies() {
        return Optional.ofNullable(this.dependencies);
    }

    /**
     * The display name of the template
     * 
     */
    @Import(name="displayName", required=true)
    private Output displayName;

    /**
     * @return The display name of the template
     * 
     */
    public Output displayName() {
        return this.displayName;
    }

    /**
     * first publish date content item
     * 
     */
    @Import(name="firstPublishDate")
    private @Nullable Output firstPublishDate;

    /**
     * @return first publish date content item
     * 
     */
    public Optional> firstPublishDate() {
        return Optional.ofNullable(this.firstPublishDate);
    }

    /**
     * the icon identifier. this id can later be fetched from the content metadata
     * 
     */
    @Import(name="icon")
    private @Nullable Output icon;

    /**
     * @return the icon identifier. this id can later be fetched from the content metadata
     * 
     */
    public Optional> icon() {
        return Optional.ofNullable(this.icon);
    }

    /**
     * last publish date for the content item
     * 
     */
    @Import(name="lastPublishDate")
    private @Nullable Output lastPublishDate;

    /**
     * @return last publish date for the content item
     * 
     */
    public Optional> lastPublishDate() {
        return Optional.ofNullable(this.lastPublishDate);
    }

    /**
     * The JSON of the ARM template to deploy active content
     * 
     */
    @Import(name="mainTemplate")
    private @Nullable Output mainTemplate;

    /**
     * @return The JSON of the ARM template to deploy active content
     * 
     */
    public Optional> mainTemplate() {
        return Optional.ofNullable(this.mainTemplate);
    }

    /**
     * the package Id contains this template
     * 
     */
    @Import(name="packageId", required=true)
    private Output packageId;

    /**
     * @return the package Id contains this template
     * 
     */
    public Output packageId() {
        return this.packageId;
    }

    /**
     * the packageKind of the package contains this template
     * 
     */
    @Import(name="packageKind")
    private @Nullable Output> packageKind;

    /**
     * @return the packageKind of the package contains this template
     * 
     */
    public Optional>> packageKind() {
        return Optional.ofNullable(this.packageKind);
    }

    /**
     * the name of the package contains this template
     * 
     */
    @Import(name="packageName")
    private @Nullable Output packageName;

    /**
     * @return the name of the package contains this template
     * 
     */
    public Optional> packageName() {
        return Optional.ofNullable(this.packageName);
    }

    /**
     * preview image file names. These will be taken from the solution artifacts
     * 
     */
    @Import(name="previewImages")
    private @Nullable Output> previewImages;

    /**
     * @return preview image file names. These will be taken from the solution artifacts
     * 
     */
    public Optional>> previewImages() {
        return Optional.ofNullable(this.previewImages);
    }

    /**
     * preview image file names. These will be taken from the solution artifacts. used for dark theme support
     * 
     */
    @Import(name="previewImagesDark")
    private @Nullable Output> previewImagesDark;

    /**
     * @return preview image file names. These will be taken from the solution artifacts. used for dark theme support
     * 
     */
    public Optional>> previewImagesDark() {
        return Optional.ofNullable(this.previewImagesDark);
    }

    /**
     * Providers for the content item
     * 
     */
    @Import(name="providers")
    private @Nullable Output> providers;

    /**
     * @return Providers for the content item
     * 
     */
    public Optional>> providers() {
        return Optional.ofNullable(this.providers);
    }

    /**
     * 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;
    }

    /**
     * Source of the content.  This is where/how it was created.
     * 
     */
    @Import(name="source", required=true)
    private Output source;

    /**
     * @return Source of the content.  This is where/how it was created.
     * 
     */
    public Output source() {
        return this.source;
    }

    /**
     * Support information for the template - type, name, contact information
     * 
     */
    @Import(name="support")
    private @Nullable Output support;

    /**
     * @return Support information for the template - type, name, contact information
     * 
     */
    public Optional> support() {
        return Optional.ofNullable(this.support);
    }

    /**
     * template Id
     * 
     */
    @Import(name="templateId")
    private @Nullable Output templateId;

    /**
     * @return template Id
     * 
     */
    public Optional> templateId() {
        return Optional.ofNullable(this.templateId);
    }

    /**
     * the tactics the resource covers
     * 
     */
    @Import(name="threatAnalysisTactics")
    private @Nullable Output> threatAnalysisTactics;

    /**
     * @return the tactics the resource covers
     * 
     */
    public Optional>> threatAnalysisTactics() {
        return Optional.ofNullable(this.threatAnalysisTactics);
    }

    /**
     * the techniques the resource covers, these have to be aligned with the tactics being used
     * 
     */
    @Import(name="threatAnalysisTechniques")
    private @Nullable Output> threatAnalysisTechniques;

    /**
     * @return the techniques the resource covers, these have to be aligned with the tactics being used
     * 
     */
    public Optional>> threatAnalysisTechniques() {
        return Optional.ofNullable(this.threatAnalysisTechniques);
    }

    /**
     * Version of the content.  Default and recommended format is numeric (e.g. 1, 1.0, 1.0.0, 1.0.0.0), following ARM metadata best practices.  Can also be any string, but then we cannot guarantee any version checks
     * 
     */
    @Import(name="version", required=true)
    private Output version;

    /**
     * @return Version of the content.  Default and recommended format is numeric (e.g. 1, 1.0, 1.0.0, 1.0.0.0), following ARM metadata best practices.  Can also be any string, but then we cannot guarantee any version checks
     * 
     */
    public Output version() {
        return this.version;
    }

    /**
     * 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 ContentTemplateArgs() {}

    private ContentTemplateArgs(ContentTemplateArgs $) {
        this.author = $.author;
        this.categories = $.categories;
        this.contentId = $.contentId;
        this.contentKind = $.contentKind;
        this.contentSchemaVersion = $.contentSchemaVersion;
        this.customVersion = $.customVersion;
        this.dependencies = $.dependencies;
        this.displayName = $.displayName;
        this.firstPublishDate = $.firstPublishDate;
        this.icon = $.icon;
        this.lastPublishDate = $.lastPublishDate;
        this.mainTemplate = $.mainTemplate;
        this.packageId = $.packageId;
        this.packageKind = $.packageKind;
        this.packageName = $.packageName;
        this.previewImages = $.previewImages;
        this.previewImagesDark = $.previewImagesDark;
        this.providers = $.providers;
        this.resourceGroupName = $.resourceGroupName;
        this.source = $.source;
        this.support = $.support;
        this.templateId = $.templateId;
        this.threatAnalysisTactics = $.threatAnalysisTactics;
        this.threatAnalysisTechniques = $.threatAnalysisTechniques;
        this.version = $.version;
        this.workspaceName = $.workspaceName;
    }

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

    public static final class Builder {
        private ContentTemplateArgs $;

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

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

        /**
         * @param author The creator of the content item.
         * 
         * @return builder
         * 
         */
        public Builder author(@Nullable Output author) {
            $.author = author;
            return this;
        }

        /**
         * @param author The creator of the content item.
         * 
         * @return builder
         * 
         */
        public Builder author(MetadataAuthorArgs author) {
            return author(Output.of(author));
        }

        /**
         * @param categories Categories for the item
         * 
         * @return builder
         * 
         */
        public Builder categories(@Nullable Output categories) {
            $.categories = categories;
            return this;
        }

        /**
         * @param categories Categories for the item
         * 
         * @return builder
         * 
         */
        public Builder categories(MetadataCategoriesArgs categories) {
            return categories(Output.of(categories));
        }

        /**
         * @param contentId Static ID for the content.  Used to identify dependencies and content from solutions or community.  Hard-coded/static for out of the box content and solutions. Dynamic for user-created.  This is the resource name
         * 
         * @return builder
         * 
         */
        public Builder contentId(Output contentId) {
            $.contentId = contentId;
            return this;
        }

        /**
         * @param contentId Static ID for the content.  Used to identify dependencies and content from solutions or community.  Hard-coded/static for out of the box content and solutions. Dynamic for user-created.  This is the resource name
         * 
         * @return builder
         * 
         */
        public Builder contentId(String contentId) {
            return contentId(Output.of(contentId));
        }

        /**
         * @param contentKind The kind of content the template is for.
         * 
         * @return builder
         * 
         */
        public Builder contentKind(Output> contentKind) {
            $.contentKind = contentKind;
            return this;
        }

        /**
         * @param contentKind The kind of content the template is for.
         * 
         * @return builder
         * 
         */
        public Builder contentKind(Either contentKind) {
            return contentKind(Output.of(contentKind));
        }

        /**
         * @param contentKind The kind of content the template is for.
         * 
         * @return builder
         * 
         */
        public Builder contentKind(String contentKind) {
            return contentKind(Either.ofLeft(contentKind));
        }

        /**
         * @param contentKind The kind of content the template is for.
         * 
         * @return builder
         * 
         */
        public Builder contentKind(Kind contentKind) {
            return contentKind(Either.ofRight(contentKind));
        }

        /**
         * @param contentSchemaVersion Schema version of the content. Can be used to distinguish between different flow based on the schema version
         * 
         * @return builder
         * 
         */
        public Builder contentSchemaVersion(@Nullable Output contentSchemaVersion) {
            $.contentSchemaVersion = contentSchemaVersion;
            return this;
        }

        /**
         * @param contentSchemaVersion Schema version of the content. Can be used to distinguish between different flow based on the schema version
         * 
         * @return builder
         * 
         */
        public Builder contentSchemaVersion(String contentSchemaVersion) {
            return contentSchemaVersion(Output.of(contentSchemaVersion));
        }

        /**
         * @param customVersion The custom version of the content. A optional free text
         * 
         * @return builder
         * 
         */
        public Builder customVersion(@Nullable Output customVersion) {
            $.customVersion = customVersion;
            return this;
        }

        /**
         * @param customVersion The custom version of the content. A optional free text
         * 
         * @return builder
         * 
         */
        public Builder customVersion(String customVersion) {
            return customVersion(Output.of(customVersion));
        }

        /**
         * @param dependencies Dependencies for the content item, what other content items it requires to work.  Can describe more complex dependencies using a recursive/nested structure. For a single dependency an id/kind/version can be supplied or operator/criteria for complex formats.
         * 
         * @return builder
         * 
         */
        public Builder dependencies(@Nullable Output dependencies) {
            $.dependencies = dependencies;
            return this;
        }

        /**
         * @param dependencies Dependencies for the content item, what other content items it requires to work.  Can describe more complex dependencies using a recursive/nested structure. For a single dependency an id/kind/version can be supplied or operator/criteria for complex formats.
         * 
         * @return builder
         * 
         */
        public Builder dependencies(MetadataDependenciesArgs dependencies) {
            return dependencies(Output.of(dependencies));
        }

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

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

        /**
         * @param firstPublishDate first publish date content item
         * 
         * @return builder
         * 
         */
        public Builder firstPublishDate(@Nullable Output firstPublishDate) {
            $.firstPublishDate = firstPublishDate;
            return this;
        }

        /**
         * @param firstPublishDate first publish date content item
         * 
         * @return builder
         * 
         */
        public Builder firstPublishDate(String firstPublishDate) {
            return firstPublishDate(Output.of(firstPublishDate));
        }

        /**
         * @param icon the icon identifier. this id can later be fetched from the content metadata
         * 
         * @return builder
         * 
         */
        public Builder icon(@Nullable Output icon) {
            $.icon = icon;
            return this;
        }

        /**
         * @param icon the icon identifier. this id can later be fetched from the content metadata
         * 
         * @return builder
         * 
         */
        public Builder icon(String icon) {
            return icon(Output.of(icon));
        }

        /**
         * @param lastPublishDate last publish date for the content item
         * 
         * @return builder
         * 
         */
        public Builder lastPublishDate(@Nullable Output lastPublishDate) {
            $.lastPublishDate = lastPublishDate;
            return this;
        }

        /**
         * @param lastPublishDate last publish date for the content item
         * 
         * @return builder
         * 
         */
        public Builder lastPublishDate(String lastPublishDate) {
            return lastPublishDate(Output.of(lastPublishDate));
        }

        /**
         * @param mainTemplate The JSON of the ARM template to deploy active content
         * 
         * @return builder
         * 
         */
        public Builder mainTemplate(@Nullable Output mainTemplate) {
            $.mainTemplate = mainTemplate;
            return this;
        }

        /**
         * @param mainTemplate The JSON of the ARM template to deploy active content
         * 
         * @return builder
         * 
         */
        public Builder mainTemplate(Object mainTemplate) {
            return mainTemplate(Output.of(mainTemplate));
        }

        /**
         * @param packageId the package Id contains this template
         * 
         * @return builder
         * 
         */
        public Builder packageId(Output packageId) {
            $.packageId = packageId;
            return this;
        }

        /**
         * @param packageId the package Id contains this template
         * 
         * @return builder
         * 
         */
        public Builder packageId(String packageId) {
            return packageId(Output.of(packageId));
        }

        /**
         * @param packageKind the packageKind of the package contains this template
         * 
         * @return builder
         * 
         */
        public Builder packageKind(@Nullable Output> packageKind) {
            $.packageKind = packageKind;
            return this;
        }

        /**
         * @param packageKind the packageKind of the package contains this template
         * 
         * @return builder
         * 
         */
        public Builder packageKind(Either packageKind) {
            return packageKind(Output.of(packageKind));
        }

        /**
         * @param packageKind the packageKind of the package contains this template
         * 
         * @return builder
         * 
         */
        public Builder packageKind(String packageKind) {
            return packageKind(Either.ofLeft(packageKind));
        }

        /**
         * @param packageKind the packageKind of the package contains this template
         * 
         * @return builder
         * 
         */
        public Builder packageKind(PackageKind packageKind) {
            return packageKind(Either.ofRight(packageKind));
        }

        /**
         * @param packageName the name of the package contains this template
         * 
         * @return builder
         * 
         */
        public Builder packageName(@Nullable Output packageName) {
            $.packageName = packageName;
            return this;
        }

        /**
         * @param packageName the name of the package contains this template
         * 
         * @return builder
         * 
         */
        public Builder packageName(String packageName) {
            return packageName(Output.of(packageName));
        }

        /**
         * @param previewImages preview image file names. These will be taken from the solution artifacts
         * 
         * @return builder
         * 
         */
        public Builder previewImages(@Nullable Output> previewImages) {
            $.previewImages = previewImages;
            return this;
        }

        /**
         * @param previewImages preview image file names. These will be taken from the solution artifacts
         * 
         * @return builder
         * 
         */
        public Builder previewImages(List previewImages) {
            return previewImages(Output.of(previewImages));
        }

        /**
         * @param previewImages preview image file names. These will be taken from the solution artifacts
         * 
         * @return builder
         * 
         */
        public Builder previewImages(String... previewImages) {
            return previewImages(List.of(previewImages));
        }

        /**
         * @param previewImagesDark preview image file names. These will be taken from the solution artifacts. used for dark theme support
         * 
         * @return builder
         * 
         */
        public Builder previewImagesDark(@Nullable Output> previewImagesDark) {
            $.previewImagesDark = previewImagesDark;
            return this;
        }

        /**
         * @param previewImagesDark preview image file names. These will be taken from the solution artifacts. used for dark theme support
         * 
         * @return builder
         * 
         */
        public Builder previewImagesDark(List previewImagesDark) {
            return previewImagesDark(Output.of(previewImagesDark));
        }

        /**
         * @param previewImagesDark preview image file names. These will be taken from the solution artifacts. used for dark theme support
         * 
         * @return builder
         * 
         */
        public Builder previewImagesDark(String... previewImagesDark) {
            return previewImagesDark(List.of(previewImagesDark));
        }

        /**
         * @param providers Providers for the content item
         * 
         * @return builder
         * 
         */
        public Builder providers(@Nullable Output> providers) {
            $.providers = providers;
            return this;
        }

        /**
         * @param providers Providers for the content item
         * 
         * @return builder
         * 
         */
        public Builder providers(List providers) {
            return providers(Output.of(providers));
        }

        /**
         * @param providers Providers for the content item
         * 
         * @return builder
         * 
         */
        public Builder providers(String... providers) {
            return providers(List.of(providers));
        }

        /**
         * @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 source Source of the content.  This is where/how it was created.
         * 
         * @return builder
         * 
         */
        public Builder source(Output source) {
            $.source = source;
            return this;
        }

        /**
         * @param source Source of the content.  This is where/how it was created.
         * 
         * @return builder
         * 
         */
        public Builder source(MetadataSourceArgs source) {
            return source(Output.of(source));
        }

        /**
         * @param support Support information for the template - type, name, contact information
         * 
         * @return builder
         * 
         */
        public Builder support(@Nullable Output support) {
            $.support = support;
            return this;
        }

        /**
         * @param support Support information for the template - type, name, contact information
         * 
         * @return builder
         * 
         */
        public Builder support(MetadataSupportArgs support) {
            return support(Output.of(support));
        }

        /**
         * @param templateId template Id
         * 
         * @return builder
         * 
         */
        public Builder templateId(@Nullable Output templateId) {
            $.templateId = templateId;
            return this;
        }

        /**
         * @param templateId template Id
         * 
         * @return builder
         * 
         */
        public Builder templateId(String templateId) {
            return templateId(Output.of(templateId));
        }

        /**
         * @param threatAnalysisTactics the tactics the resource covers
         * 
         * @return builder
         * 
         */
        public Builder threatAnalysisTactics(@Nullable Output> threatAnalysisTactics) {
            $.threatAnalysisTactics = threatAnalysisTactics;
            return this;
        }

        /**
         * @param threatAnalysisTactics the tactics the resource covers
         * 
         * @return builder
         * 
         */
        public Builder threatAnalysisTactics(List threatAnalysisTactics) {
            return threatAnalysisTactics(Output.of(threatAnalysisTactics));
        }

        /**
         * @param threatAnalysisTactics the tactics the resource covers
         * 
         * @return builder
         * 
         */
        public Builder threatAnalysisTactics(String... threatAnalysisTactics) {
            return threatAnalysisTactics(List.of(threatAnalysisTactics));
        }

        /**
         * @param threatAnalysisTechniques the techniques the resource covers, these have to be aligned with the tactics being used
         * 
         * @return builder
         * 
         */
        public Builder threatAnalysisTechniques(@Nullable Output> threatAnalysisTechniques) {
            $.threatAnalysisTechniques = threatAnalysisTechniques;
            return this;
        }

        /**
         * @param threatAnalysisTechniques the techniques the resource covers, these have to be aligned with the tactics being used
         * 
         * @return builder
         * 
         */
        public Builder threatAnalysisTechniques(List threatAnalysisTechniques) {
            return threatAnalysisTechniques(Output.of(threatAnalysisTechniques));
        }

        /**
         * @param threatAnalysisTechniques the techniques the resource covers, these have to be aligned with the tactics being used
         * 
         * @return builder
         * 
         */
        public Builder threatAnalysisTechniques(String... threatAnalysisTechniques) {
            return threatAnalysisTechniques(List.of(threatAnalysisTechniques));
        }

        /**
         * @param version Version of the content.  Default and recommended format is numeric (e.g. 1, 1.0, 1.0.0, 1.0.0.0), following ARM metadata best practices.  Can also be any string, but then we cannot guarantee any version checks
         * 
         * @return builder
         * 
         */
        public Builder version(Output version) {
            $.version = version;
            return this;
        }

        /**
         * @param version Version of the content.  Default and recommended format is numeric (e.g. 1, 1.0, 1.0.0, 1.0.0.0), following ARM metadata best practices.  Can also be any string, but then we cannot guarantee any version checks
         * 
         * @return builder
         * 
         */
        public Builder version(String version) {
            return version(Output.of(version));
        }

        /**
         * @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 ContentTemplateArgs build() {
            if ($.contentId == null) {
                throw new MissingRequiredPropertyException("ContentTemplateArgs", "contentId");
            }
            if ($.contentKind == null) {
                throw new MissingRequiredPropertyException("ContentTemplateArgs", "contentKind");
            }
            if ($.displayName == null) {
                throw new MissingRequiredPropertyException("ContentTemplateArgs", "displayName");
            }
            if ($.packageId == null) {
                throw new MissingRequiredPropertyException("ContentTemplateArgs", "packageId");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ContentTemplateArgs", "resourceGroupName");
            }
            if ($.source == null) {
                throw new MissingRequiredPropertyException("ContentTemplateArgs", "source");
            }
            if ($.version == null) {
                throw new MissingRequiredPropertyException("ContentTemplateArgs", "version");
            }
            if ($.workspaceName == null) {
                throw new MissingRequiredPropertyException("ContentTemplateArgs", "workspaceName");
            }
            return $;
        }
    }

}