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

com.pulumi.azurenative.datafactory.inputs.XeroLinkedServiceArgs 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.datafactory.inputs;

import com.pulumi.azurenative.datafactory.inputs.AzureKeyVaultSecretReferenceArgs;
import com.pulumi.azurenative.datafactory.inputs.IntegrationRuntimeReferenceArgs;
import com.pulumi.azurenative.datafactory.inputs.ParameterSpecificationArgs;
import com.pulumi.azurenative.datafactory.inputs.SecureStringArgs;
import com.pulumi.core.Either;
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.Object;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Xero Service linked service.
 * 
 */
public final class XeroLinkedServiceArgs extends com.pulumi.resources.ResourceArgs {

    public static final XeroLinkedServiceArgs Empty = new XeroLinkedServiceArgs();

    /**
     * List of tags that can be used for describing the linked service.
     * 
     */
    @Import(name="annotations")
    private @Nullable Output> annotations;

    /**
     * @return List of tags that can be used for describing the linked service.
     * 
     */
    public Optional>> annotations() {
        return Optional.ofNullable(this.annotations);
    }

    /**
     * The integration runtime reference.
     * 
     */
    @Import(name="connectVia")
    private @Nullable Output connectVia;

    /**
     * @return The integration runtime reference.
     * 
     */
    public Optional> connectVia() {
        return Optional.ofNullable(this.connectVia);
    }

    /**
     * Properties used to connect to Xero. It is mutually exclusive with any other properties in the linked service. Type: object.
     * 
     */
    @Import(name="connectionProperties")
    private @Nullable Output connectionProperties;

    /**
     * @return Properties used to connect to Xero. It is mutually exclusive with any other properties in the linked service. Type: object.
     * 
     */
    public Optional> connectionProperties() {
        return Optional.ofNullable(this.connectionProperties);
    }

    /**
     * The consumer key associated with the Xero application.
     * 
     */
    @Import(name="consumerKey")
    private @Nullable Output> consumerKey;

    /**
     * @return The consumer key associated with the Xero application.
     * 
     */
    public Optional>> consumerKey() {
        return Optional.ofNullable(this.consumerKey);
    }

    /**
     * Linked service description.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Linked service description.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string.
     * 
     */
    @Import(name="encryptedCredential")
    private @Nullable Output encryptedCredential;

    /**
     * @return The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string.
     * 
     */
    public Optional> encryptedCredential() {
        return Optional.ofNullable(this.encryptedCredential);
    }

    /**
     * The endpoint of the Xero server. (i.e. api.xero.com)
     * 
     */
    @Import(name="host")
    private @Nullable Output host;

    /**
     * @return The endpoint of the Xero server. (i.e. api.xero.com)
     * 
     */
    public Optional> host() {
        return Optional.ofNullable(this.host);
    }

    /**
     * Parameters for linked service.
     * 
     */
    @Import(name="parameters")
    private @Nullable Output> parameters;

    /**
     * @return Parameters for linked service.
     * 
     */
    public Optional>> parameters() {
        return Optional.ofNullable(this.parameters);
    }

    /**
     * The private key from the .pem file that was generated for your Xero private application. You must include all the text from the .pem file, including the Unix line endings(
     * ).
     * 
     */
    @Import(name="privateKey")
    private @Nullable Output> privateKey;

    /**
     * @return The private key from the .pem file that was generated for your Xero private application. You must include all the text from the .pem file, including the Unix line endings(
     * ).
     * 
     */
    public Optional>> privateKey() {
        return Optional.ofNullable(this.privateKey);
    }

    /**
     * Type of linked service.
     * Expected value is 'Xero'.
     * 
     */
    @Import(name="type", required=true)
    private Output type;

    /**
     * @return Type of linked service.
     * Expected value is 'Xero'.
     * 
     */
    public Output type() {
        return this.type;
    }

    /**
     * Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
     * 
     */
    @Import(name="useEncryptedEndpoints")
    private @Nullable Output useEncryptedEndpoints;

    /**
     * @return Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
     * 
     */
    public Optional> useEncryptedEndpoints() {
        return Optional.ofNullable(this.useEncryptedEndpoints);
    }

    /**
     * Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
     * 
     */
    @Import(name="useHostVerification")
    private @Nullable Output useHostVerification;

    /**
     * @return Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
     * 
     */
    public Optional> useHostVerification() {
        return Optional.ofNullable(this.useHostVerification);
    }

    /**
     * Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
     * 
     */
    @Import(name="usePeerVerification")
    private @Nullable Output usePeerVerification;

    /**
     * @return Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
     * 
     */
    public Optional> usePeerVerification() {
        return Optional.ofNullable(this.usePeerVerification);
    }

    /**
     * Version of the linked service.
     * 
     */
    @Import(name="version")
    private @Nullable Output version;

    /**
     * @return Version of the linked service.
     * 
     */
    public Optional> version() {
        return Optional.ofNullable(this.version);
    }

    private XeroLinkedServiceArgs() {}

    private XeroLinkedServiceArgs(XeroLinkedServiceArgs $) {
        this.annotations = $.annotations;
        this.connectVia = $.connectVia;
        this.connectionProperties = $.connectionProperties;
        this.consumerKey = $.consumerKey;
        this.description = $.description;
        this.encryptedCredential = $.encryptedCredential;
        this.host = $.host;
        this.parameters = $.parameters;
        this.privateKey = $.privateKey;
        this.type = $.type;
        this.useEncryptedEndpoints = $.useEncryptedEndpoints;
        this.useHostVerification = $.useHostVerification;
        this.usePeerVerification = $.usePeerVerification;
        this.version = $.version;
    }

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

    public static final class Builder {
        private XeroLinkedServiceArgs $;

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

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

        /**
         * @param annotations List of tags that can be used for describing the linked service.
         * 
         * @return builder
         * 
         */
        public Builder annotations(@Nullable Output> annotations) {
            $.annotations = annotations;
            return this;
        }

        /**
         * @param annotations List of tags that can be used for describing the linked service.
         * 
         * @return builder
         * 
         */
        public Builder annotations(List annotations) {
            return annotations(Output.of(annotations));
        }

        /**
         * @param annotations List of tags that can be used for describing the linked service.
         * 
         * @return builder
         * 
         */
        public Builder annotations(Object... annotations) {
            return annotations(List.of(annotations));
        }

        /**
         * @param connectVia The integration runtime reference.
         * 
         * @return builder
         * 
         */
        public Builder connectVia(@Nullable Output connectVia) {
            $.connectVia = connectVia;
            return this;
        }

        /**
         * @param connectVia The integration runtime reference.
         * 
         * @return builder
         * 
         */
        public Builder connectVia(IntegrationRuntimeReferenceArgs connectVia) {
            return connectVia(Output.of(connectVia));
        }

        /**
         * @param connectionProperties Properties used to connect to Xero. It is mutually exclusive with any other properties in the linked service. Type: object.
         * 
         * @return builder
         * 
         */
        public Builder connectionProperties(@Nullable Output connectionProperties) {
            $.connectionProperties = connectionProperties;
            return this;
        }

        /**
         * @param connectionProperties Properties used to connect to Xero. It is mutually exclusive with any other properties in the linked service. Type: object.
         * 
         * @return builder
         * 
         */
        public Builder connectionProperties(Object connectionProperties) {
            return connectionProperties(Output.of(connectionProperties));
        }

        /**
         * @param consumerKey The consumer key associated with the Xero application.
         * 
         * @return builder
         * 
         */
        public Builder consumerKey(@Nullable Output> consumerKey) {
            $.consumerKey = consumerKey;
            return this;
        }

        /**
         * @param consumerKey The consumer key associated with the Xero application.
         * 
         * @return builder
         * 
         */
        public Builder consumerKey(Either consumerKey) {
            return consumerKey(Output.of(consumerKey));
        }

        /**
         * @param consumerKey The consumer key associated with the Xero application.
         * 
         * @return builder
         * 
         */
        public Builder consumerKey(AzureKeyVaultSecretReferenceArgs consumerKey) {
            return consumerKey(Either.ofLeft(consumerKey));
        }

        /**
         * @param consumerKey The consumer key associated with the Xero application.
         * 
         * @return builder
         * 
         */
        public Builder consumerKey(SecureStringArgs consumerKey) {
            return consumerKey(Either.ofRight(consumerKey));
        }

        /**
         * @param description Linked service description.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Linked service description.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param encryptedCredential The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string.
         * 
         * @return builder
         * 
         */
        public Builder encryptedCredential(@Nullable Output encryptedCredential) {
            $.encryptedCredential = encryptedCredential;
            return this;
        }

        /**
         * @param encryptedCredential The encrypted credential used for authentication. Credentials are encrypted using the integration runtime credential manager. Type: string.
         * 
         * @return builder
         * 
         */
        public Builder encryptedCredential(String encryptedCredential) {
            return encryptedCredential(Output.of(encryptedCredential));
        }

        /**
         * @param host The endpoint of the Xero server. (i.e. api.xero.com)
         * 
         * @return builder
         * 
         */
        public Builder host(@Nullable Output host) {
            $.host = host;
            return this;
        }

        /**
         * @param host The endpoint of the Xero server. (i.e. api.xero.com)
         * 
         * @return builder
         * 
         */
        public Builder host(Object host) {
            return host(Output.of(host));
        }

        /**
         * @param parameters Parameters for linked service.
         * 
         * @return builder
         * 
         */
        public Builder parameters(@Nullable Output> parameters) {
            $.parameters = parameters;
            return this;
        }

        /**
         * @param parameters Parameters for linked service.
         * 
         * @return builder
         * 
         */
        public Builder parameters(Map parameters) {
            return parameters(Output.of(parameters));
        }

        /**
         * @param privateKey The private key from the .pem file that was generated for your Xero private application. You must include all the text from the .pem file, including the Unix line endings(
         * ).
         * 
         * @return builder
         * 
         */
        public Builder privateKey(@Nullable Output> privateKey) {
            $.privateKey = privateKey;
            return this;
        }

        /**
         * @param privateKey The private key from the .pem file that was generated for your Xero private application. You must include all the text from the .pem file, including the Unix line endings(
         * ).
         * 
         * @return builder
         * 
         */
        public Builder privateKey(Either privateKey) {
            return privateKey(Output.of(privateKey));
        }

        /**
         * @param privateKey The private key from the .pem file that was generated for your Xero private application. You must include all the text from the .pem file, including the Unix line endings(
         * ).
         * 
         * @return builder
         * 
         */
        public Builder privateKey(AzureKeyVaultSecretReferenceArgs privateKey) {
            return privateKey(Either.ofLeft(privateKey));
        }

        /**
         * @param privateKey The private key from the .pem file that was generated for your Xero private application. You must include all the text from the .pem file, including the Unix line endings(
         * ).
         * 
         * @return builder
         * 
         */
        public Builder privateKey(SecureStringArgs privateKey) {
            return privateKey(Either.ofRight(privateKey));
        }

        /**
         * @param type Type of linked service.
         * Expected value is 'Xero'.
         * 
         * @return builder
         * 
         */
        public Builder type(Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type Type of linked service.
         * Expected value is 'Xero'.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Output.of(type));
        }

        /**
         * @param useEncryptedEndpoints Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
         * 
         * @return builder
         * 
         */
        public Builder useEncryptedEndpoints(@Nullable Output useEncryptedEndpoints) {
            $.useEncryptedEndpoints = useEncryptedEndpoints;
            return this;
        }

        /**
         * @param useEncryptedEndpoints Specifies whether the data source endpoints are encrypted using HTTPS. The default value is true.
         * 
         * @return builder
         * 
         */
        public Builder useEncryptedEndpoints(Object useEncryptedEndpoints) {
            return useEncryptedEndpoints(Output.of(useEncryptedEndpoints));
        }

        /**
         * @param useHostVerification Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
         * 
         * @return builder
         * 
         */
        public Builder useHostVerification(@Nullable Output useHostVerification) {
            $.useHostVerification = useHostVerification;
            return this;
        }

        /**
         * @param useHostVerification Specifies whether to require the host name in the server's certificate to match the host name of the server when connecting over SSL. The default value is true.
         * 
         * @return builder
         * 
         */
        public Builder useHostVerification(Object useHostVerification) {
            return useHostVerification(Output.of(useHostVerification));
        }

        /**
         * @param usePeerVerification Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
         * 
         * @return builder
         * 
         */
        public Builder usePeerVerification(@Nullable Output usePeerVerification) {
            $.usePeerVerification = usePeerVerification;
            return this;
        }

        /**
         * @param usePeerVerification Specifies whether to verify the identity of the server when connecting over SSL. The default value is true.
         * 
         * @return builder
         * 
         */
        public Builder usePeerVerification(Object usePeerVerification) {
            return usePeerVerification(Output.of(usePeerVerification));
        }

        /**
         * @param version Version of the linked service.
         * 
         * @return builder
         * 
         */
        public Builder version(@Nullable Output version) {
            $.version = version;
            return this;
        }

        /**
         * @param version Version of the linked service.
         * 
         * @return builder
         * 
         */
        public Builder version(String version) {
            return version(Output.of(version));
        }

        public XeroLinkedServiceArgs build() {
            $.type = Codegen.stringProp("type").output().arg($.type).require();
            return $;
        }
    }

}