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

com.pulumi.azurenative.customerinsights.LinkArgs 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.customerinsights;

import com.pulumi.azurenative.customerinsights.enums.EntityType;
import com.pulumi.azurenative.customerinsights.enums.InstanceOperationType;
import com.pulumi.azurenative.customerinsights.inputs.ParticipantPropertyReferenceArgs;
import com.pulumi.azurenative.customerinsights.inputs.TypePropertiesMappingArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final LinkArgs Empty = new LinkArgs();

    /**
     * Localized descriptions for the Link.
     * 
     */
    @Import(name="description")
    private @Nullable Output> description;

    /**
     * @return Localized descriptions for the Link.
     * 
     */
    public Optional>> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * Localized display name for the Link.
     * 
     */
    @Import(name="displayName")
    private @Nullable Output> displayName;

    /**
     * @return Localized display name for the Link.
     * 
     */
    public Optional>> displayName() {
        return Optional.ofNullable(this.displayName);
    }

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

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

    /**
     * The name of the link.
     * 
     */
    @Import(name="linkName")
    private @Nullable Output linkName;

    /**
     * @return The name of the link.
     * 
     */
    public Optional> linkName() {
        return Optional.ofNullable(this.linkName);
    }

    /**
     * The set of properties mappings between the source and target Types.
     * 
     */
    @Import(name="mappings")
    private @Nullable Output> mappings;

    /**
     * @return The set of properties mappings between the source and target Types.
     * 
     */
    public Optional>> mappings() {
        return Optional.ofNullable(this.mappings);
    }

    /**
     * Determines whether this link is supposed to create or delete instances if Link is NOT Reference Only.
     * 
     */
    @Import(name="operationType")
    private @Nullable Output operationType;

    /**
     * @return Determines whether this link is supposed to create or delete instances if Link is NOT Reference Only.
     * 
     */
    public Optional> operationType() {
        return Optional.ofNullable(this.operationType);
    }

    /**
     * The properties that represent the participating profile.
     * 
     */
    @Import(name="participantPropertyReferences", required=true)
    private Output> participantPropertyReferences;

    /**
     * @return The properties that represent the participating profile.
     * 
     */
    public Output> participantPropertyReferences() {
        return this.participantPropertyReferences;
    }

    /**
     * Indicating whether the link is reference only link. This flag is ignored if the Mappings are defined. If the mappings are not defined and it is set to true, links processing will not create or update profiles.
     * 
     */
    @Import(name="referenceOnly")
    private @Nullable Output referenceOnly;

    /**
     * @return Indicating whether the link is reference only link. This flag is ignored if the Mappings are defined. If the mappings are not defined and it is set to true, links processing will not create or update profiles.
     * 
     */
    public Optional> referenceOnly() {
        return Optional.ofNullable(this.referenceOnly);
    }

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

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

    /**
     * Type of source entity.
     * 
     */
    @Import(name="sourceEntityType", required=true)
    private Output sourceEntityType;

    /**
     * @return Type of source entity.
     * 
     */
    public Output sourceEntityType() {
        return this.sourceEntityType;
    }

    /**
     * Name of the source Entity Type.
     * 
     */
    @Import(name="sourceEntityTypeName", required=true)
    private Output sourceEntityTypeName;

    /**
     * @return Name of the source Entity Type.
     * 
     */
    public Output sourceEntityTypeName() {
        return this.sourceEntityTypeName;
    }

    /**
     * Type of target entity.
     * 
     */
    @Import(name="targetEntityType", required=true)
    private Output targetEntityType;

    /**
     * @return Type of target entity.
     * 
     */
    public Output targetEntityType() {
        return this.targetEntityType;
    }

    /**
     * Name of the target Entity Type.
     * 
     */
    @Import(name="targetEntityTypeName", required=true)
    private Output targetEntityTypeName;

    /**
     * @return Name of the target Entity Type.
     * 
     */
    public Output targetEntityTypeName() {
        return this.targetEntityTypeName;
    }

    private LinkArgs() {}

    private LinkArgs(LinkArgs $) {
        this.description = $.description;
        this.displayName = $.displayName;
        this.hubName = $.hubName;
        this.linkName = $.linkName;
        this.mappings = $.mappings;
        this.operationType = $.operationType;
        this.participantPropertyReferences = $.participantPropertyReferences;
        this.referenceOnly = $.referenceOnly;
        this.resourceGroupName = $.resourceGroupName;
        this.sourceEntityType = $.sourceEntityType;
        this.sourceEntityTypeName = $.sourceEntityTypeName;
        this.targetEntityType = $.targetEntityType;
        this.targetEntityTypeName = $.targetEntityTypeName;
    }

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

    public static final class Builder {
        private LinkArgs $;

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

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

        /**
         * @param description Localized descriptions for the Link.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output> description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Localized descriptions for the Link.
         * 
         * @return builder
         * 
         */
        public Builder description(Map description) {
            return description(Output.of(description));
        }

        /**
         * @param displayName Localized display name for the Link.
         * 
         * @return builder
         * 
         */
        public Builder displayName(@Nullable Output> displayName) {
            $.displayName = displayName;
            return this;
        }

        /**
         * @param displayName Localized display name for the Link.
         * 
         * @return builder
         * 
         */
        public Builder displayName(Map displayName) {
            return displayName(Output.of(displayName));
        }

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

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

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

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

        /**
         * @param mappings The set of properties mappings between the source and target Types.
         * 
         * @return builder
         * 
         */
        public Builder mappings(@Nullable Output> mappings) {
            $.mappings = mappings;
            return this;
        }

        /**
         * @param mappings The set of properties mappings between the source and target Types.
         * 
         * @return builder
         * 
         */
        public Builder mappings(List mappings) {
            return mappings(Output.of(mappings));
        }

        /**
         * @param mappings The set of properties mappings between the source and target Types.
         * 
         * @return builder
         * 
         */
        public Builder mappings(TypePropertiesMappingArgs... mappings) {
            return mappings(List.of(mappings));
        }

        /**
         * @param operationType Determines whether this link is supposed to create or delete instances if Link is NOT Reference Only.
         * 
         * @return builder
         * 
         */
        public Builder operationType(@Nullable Output operationType) {
            $.operationType = operationType;
            return this;
        }

        /**
         * @param operationType Determines whether this link is supposed to create or delete instances if Link is NOT Reference Only.
         * 
         * @return builder
         * 
         */
        public Builder operationType(InstanceOperationType operationType) {
            return operationType(Output.of(operationType));
        }

        /**
         * @param participantPropertyReferences The properties that represent the participating profile.
         * 
         * @return builder
         * 
         */
        public Builder participantPropertyReferences(Output> participantPropertyReferences) {
            $.participantPropertyReferences = participantPropertyReferences;
            return this;
        }

        /**
         * @param participantPropertyReferences The properties that represent the participating profile.
         * 
         * @return builder
         * 
         */
        public Builder participantPropertyReferences(List participantPropertyReferences) {
            return participantPropertyReferences(Output.of(participantPropertyReferences));
        }

        /**
         * @param participantPropertyReferences The properties that represent the participating profile.
         * 
         * @return builder
         * 
         */
        public Builder participantPropertyReferences(ParticipantPropertyReferenceArgs... participantPropertyReferences) {
            return participantPropertyReferences(List.of(participantPropertyReferences));
        }

        /**
         * @param referenceOnly Indicating whether the link is reference only link. This flag is ignored if the Mappings are defined. If the mappings are not defined and it is set to true, links processing will not create or update profiles.
         * 
         * @return builder
         * 
         */
        public Builder referenceOnly(@Nullable Output referenceOnly) {
            $.referenceOnly = referenceOnly;
            return this;
        }

        /**
         * @param referenceOnly Indicating whether the link is reference only link. This flag is ignored if the Mappings are defined. If the mappings are not defined and it is set to true, links processing will not create or update profiles.
         * 
         * @return builder
         * 
         */
        public Builder referenceOnly(Boolean referenceOnly) {
            return referenceOnly(Output.of(referenceOnly));
        }

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

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

        /**
         * @param sourceEntityType Type of source entity.
         * 
         * @return builder
         * 
         */
        public Builder sourceEntityType(Output sourceEntityType) {
            $.sourceEntityType = sourceEntityType;
            return this;
        }

        /**
         * @param sourceEntityType Type of source entity.
         * 
         * @return builder
         * 
         */
        public Builder sourceEntityType(EntityType sourceEntityType) {
            return sourceEntityType(Output.of(sourceEntityType));
        }

        /**
         * @param sourceEntityTypeName Name of the source Entity Type.
         * 
         * @return builder
         * 
         */
        public Builder sourceEntityTypeName(Output sourceEntityTypeName) {
            $.sourceEntityTypeName = sourceEntityTypeName;
            return this;
        }

        /**
         * @param sourceEntityTypeName Name of the source Entity Type.
         * 
         * @return builder
         * 
         */
        public Builder sourceEntityTypeName(String sourceEntityTypeName) {
            return sourceEntityTypeName(Output.of(sourceEntityTypeName));
        }

        /**
         * @param targetEntityType Type of target entity.
         * 
         * @return builder
         * 
         */
        public Builder targetEntityType(Output targetEntityType) {
            $.targetEntityType = targetEntityType;
            return this;
        }

        /**
         * @param targetEntityType Type of target entity.
         * 
         * @return builder
         * 
         */
        public Builder targetEntityType(EntityType targetEntityType) {
            return targetEntityType(Output.of(targetEntityType));
        }

        /**
         * @param targetEntityTypeName Name of the target Entity Type.
         * 
         * @return builder
         * 
         */
        public Builder targetEntityTypeName(Output targetEntityTypeName) {
            $.targetEntityTypeName = targetEntityTypeName;
            return this;
        }

        /**
         * @param targetEntityTypeName Name of the target Entity Type.
         * 
         * @return builder
         * 
         */
        public Builder targetEntityTypeName(String targetEntityTypeName) {
            return targetEntityTypeName(Output.of(targetEntityTypeName));
        }

        public LinkArgs build() {
            if ($.hubName == null) {
                throw new MissingRequiredPropertyException("LinkArgs", "hubName");
            }
            if ($.participantPropertyReferences == null) {
                throw new MissingRequiredPropertyException("LinkArgs", "participantPropertyReferences");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("LinkArgs", "resourceGroupName");
            }
            if ($.sourceEntityType == null) {
                throw new MissingRequiredPropertyException("LinkArgs", "sourceEntityType");
            }
            if ($.sourceEntityTypeName == null) {
                throw new MissingRequiredPropertyException("LinkArgs", "sourceEntityTypeName");
            }
            if ($.targetEntityType == null) {
                throw new MissingRequiredPropertyException("LinkArgs", "targetEntityType");
            }
            if ($.targetEntityTypeName == null) {
                throw new MissingRequiredPropertyException("LinkArgs", "targetEntityTypeName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy