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

com.pulumi.azurenative.datafactory.inputs.GoogleAdWordsLinkedServiceArgs 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.enums.GoogleAdWordsAuthenticationType;
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;


/**
 * Google AdWords service linked service.
 * 
 */
public final class GoogleAdWordsLinkedServiceArgs extends com.pulumi.resources.ResourceArgs {

    public static final GoogleAdWordsLinkedServiceArgs Empty = new GoogleAdWordsLinkedServiceArgs();

    /**
     * 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 OAuth 2.0 authentication mechanism used for authentication. ServiceAuthentication can only be used on self-hosted IR.
     * 
     */
    @Import(name="authenticationType")
    private @Nullable Output> authenticationType;

    /**
     * @return The OAuth 2.0 authentication mechanism used for authentication. ServiceAuthentication can only be used on self-hosted IR.
     * 
     */
    public Optional>> authenticationType() {
        return Optional.ofNullable(this.authenticationType);
    }

    /**
     * The Client customer ID of the AdWords account that you want to fetch report data for. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="clientCustomerID")
    private @Nullable Output clientCustomerID;

    /**
     * @return The Client customer ID of the AdWords account that you want to fetch report data for. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> clientCustomerID() {
        return Optional.ofNullable(this.clientCustomerID);
    }

    /**
     * The client id of the google application used to acquire the refresh token. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="clientId")
    private @Nullable Output clientId;

    /**
     * @return The client id of the google application used to acquire the refresh token. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> clientId() {
        return Optional.ofNullable(this.clientId);
    }

    /**
     * The client secret of the google application used to acquire the refresh token.
     * 
     */
    @Import(name="clientSecret")
    private @Nullable Output> clientSecret;

    /**
     * @return The client secret of the google application used to acquire the refresh token.
     * 
     */
    public Optional>> clientSecret() {
        return Optional.ofNullable(this.clientSecret);
    }

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

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

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

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

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

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

    /**
     * The developer token associated with the manager account that you use to grant access to the AdWords API.
     * 
     */
    @Import(name="developerToken")
    private @Nullable Output> developerToken;

    /**
     * @return The developer token associated with the manager account that you use to grant access to the AdWords API.
     * 
     */
    public Optional>> developerToken() {
        return Optional.ofNullable(this.developerToken);
    }

    /**
     * The service account email ID that is used for ServiceAuthentication and can only be used on self-hosted IR. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="email")
    private @Nullable Output email;

    /**
     * @return The service account email ID that is used for ServiceAuthentication and can only be used on self-hosted IR. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> email() {
        return Optional.ofNullable(this.email);
    }

    /**
     * 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 Google Ads API major version such as v14. The supported major versions could be found on https://developers.google.com/google-ads/api/docs/release-notes. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="googleAdsApiVersion")
    private @Nullable Output googleAdsApiVersion;

    /**
     * @return The Google Ads API major version such as v14. The supported major versions could be found on https://developers.google.com/google-ads/api/docs/release-notes. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> googleAdsApiVersion() {
        return Optional.ofNullable(this.googleAdsApiVersion);
    }

    /**
     * (Deprecated) The full path to the .p12 key file that is used to authenticate the service account email address and can only be used on self-hosted IR. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="keyFilePath")
    private @Nullable Output keyFilePath;

    /**
     * @return (Deprecated) The full path to the .p12 key file that is used to authenticate the service account email address and can only be used on self-hosted IR. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> keyFilePath() {
        return Optional.ofNullable(this.keyFilePath);
    }

    /**
     * The customer ID of the Google Ads Manager account through which you want to fetch report data of specific Customer. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="loginCustomerID")
    private @Nullable Output loginCustomerID;

    /**
     * @return The customer ID of the Google Ads Manager account through which you want to fetch report data of specific Customer. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> loginCustomerID() {
        return Optional.ofNullable(this.loginCustomerID);
    }

    /**
     * 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 that is used to authenticate the service account email address and can only be used on self-hosted IR.
     * 
     */
    @Import(name="privateKey")
    private @Nullable Output> privateKey;

    /**
     * @return The private key that is used to authenticate the service account email address and can only be used on self-hosted IR.
     * 
     */
    public Optional>> privateKey() {
        return Optional.ofNullable(this.privateKey);
    }

    /**
     * The refresh token obtained from Google for authorizing access to AdWords for UserAuthentication.
     * 
     */
    @Import(name="refreshToken")
    private @Nullable Output> refreshToken;

    /**
     * @return The refresh token obtained from Google for authorizing access to AdWords for UserAuthentication.
     * 
     */
    public Optional>> refreshToken() {
        return Optional.ofNullable(this.refreshToken);
    }

    /**
     * Specifies whether to use the legacy data type mappings, which maps float, int32 and int64 from Google to string. Do not set this to true unless you want to keep backward compatibility with legacy driver's data type mappings. Type: boolean (or Expression with resultType boolean).
     * 
     */
    @Import(name="supportLegacyDataTypes")
    private @Nullable Output supportLegacyDataTypes;

    /**
     * @return Specifies whether to use the legacy data type mappings, which maps float, int32 and int64 from Google to string. Do not set this to true unless you want to keep backward compatibility with legacy driver's data type mappings. Type: boolean (or Expression with resultType boolean).
     * 
     */
    public Optional> supportLegacyDataTypes() {
        return Optional.ofNullable(this.supportLegacyDataTypes);
    }

    /**
     * (Deprecated) The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. Type: string (or Expression with resultType string).
     * 
     */
    @Import(name="trustedCertPath")
    private @Nullable Output trustedCertPath;

    /**
     * @return (Deprecated) The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. Type: string (or Expression with resultType string).
     * 
     */
    public Optional> trustedCertPath() {
        return Optional.ofNullable(this.trustedCertPath);
    }

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

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

    /**
     * (Deprecated) Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. Type: boolean (or Expression with resultType boolean).
     * 
     */
    @Import(name="useSystemTrustStore")
    private @Nullable Output useSystemTrustStore;

    /**
     * @return (Deprecated) Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. Type: boolean (or Expression with resultType boolean).
     * 
     */
    public Optional> useSystemTrustStore() {
        return Optional.ofNullable(this.useSystemTrustStore);
    }

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

    private GoogleAdWordsLinkedServiceArgs(GoogleAdWordsLinkedServiceArgs $) {
        this.annotations = $.annotations;
        this.authenticationType = $.authenticationType;
        this.clientCustomerID = $.clientCustomerID;
        this.clientId = $.clientId;
        this.clientSecret = $.clientSecret;
        this.connectVia = $.connectVia;
        this.connectionProperties = $.connectionProperties;
        this.description = $.description;
        this.developerToken = $.developerToken;
        this.email = $.email;
        this.encryptedCredential = $.encryptedCredential;
        this.googleAdsApiVersion = $.googleAdsApiVersion;
        this.keyFilePath = $.keyFilePath;
        this.loginCustomerID = $.loginCustomerID;
        this.parameters = $.parameters;
        this.privateKey = $.privateKey;
        this.refreshToken = $.refreshToken;
        this.supportLegacyDataTypes = $.supportLegacyDataTypes;
        this.trustedCertPath = $.trustedCertPath;
        this.type = $.type;
        this.useSystemTrustStore = $.useSystemTrustStore;
        this.version = $.version;
    }

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

    public static final class Builder {
        private GoogleAdWordsLinkedServiceArgs $;

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

        public Builder(GoogleAdWordsLinkedServiceArgs defaults) {
            $ = new GoogleAdWordsLinkedServiceArgs(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 authenticationType The OAuth 2.0 authentication mechanism used for authentication. ServiceAuthentication can only be used on self-hosted IR.
         * 
         * @return builder
         * 
         */
        public Builder authenticationType(@Nullable Output> authenticationType) {
            $.authenticationType = authenticationType;
            return this;
        }

        /**
         * @param authenticationType The OAuth 2.0 authentication mechanism used for authentication. ServiceAuthentication can only be used on self-hosted IR.
         * 
         * @return builder
         * 
         */
        public Builder authenticationType(Either authenticationType) {
            return authenticationType(Output.of(authenticationType));
        }

        /**
         * @param authenticationType The OAuth 2.0 authentication mechanism used for authentication. ServiceAuthentication can only be used on self-hosted IR.
         * 
         * @return builder
         * 
         */
        public Builder authenticationType(String authenticationType) {
            return authenticationType(Either.ofLeft(authenticationType));
        }

        /**
         * @param authenticationType The OAuth 2.0 authentication mechanism used for authentication. ServiceAuthentication can only be used on self-hosted IR.
         * 
         * @return builder
         * 
         */
        public Builder authenticationType(GoogleAdWordsAuthenticationType authenticationType) {
            return authenticationType(Either.ofRight(authenticationType));
        }

        /**
         * @param clientCustomerID The Client customer ID of the AdWords account that you want to fetch report data for. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder clientCustomerID(@Nullable Output clientCustomerID) {
            $.clientCustomerID = clientCustomerID;
            return this;
        }

        /**
         * @param clientCustomerID The Client customer ID of the AdWords account that you want to fetch report data for. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder clientCustomerID(Object clientCustomerID) {
            return clientCustomerID(Output.of(clientCustomerID));
        }

        /**
         * @param clientId The client id of the google application used to acquire the refresh token. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder clientId(@Nullable Output clientId) {
            $.clientId = clientId;
            return this;
        }

        /**
         * @param clientId The client id of the google application used to acquire the refresh token. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder clientId(Object clientId) {
            return clientId(Output.of(clientId));
        }

        /**
         * @param clientSecret The client secret of the google application used to acquire the refresh token.
         * 
         * @return builder
         * 
         */
        public Builder clientSecret(@Nullable Output> clientSecret) {
            $.clientSecret = clientSecret;
            return this;
        }

        /**
         * @param clientSecret The client secret of the google application used to acquire the refresh token.
         * 
         * @return builder
         * 
         */
        public Builder clientSecret(Either clientSecret) {
            return clientSecret(Output.of(clientSecret));
        }

        /**
         * @param clientSecret The client secret of the google application used to acquire the refresh token.
         * 
         * @return builder
         * 
         */
        public Builder clientSecret(AzureKeyVaultSecretReferenceArgs clientSecret) {
            return clientSecret(Either.ofLeft(clientSecret));
        }

        /**
         * @param clientSecret The client secret of the google application used to acquire the refresh token.
         * 
         * @return builder
         * 
         */
        public Builder clientSecret(SecureStringArgs clientSecret) {
            return clientSecret(Either.ofRight(clientSecret));
        }

        /**
         * @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 (Deprecated) Properties used to connect to GoogleAds. 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 (Deprecated) Properties used to connect to GoogleAds. 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 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 developerToken The developer token associated with the manager account that you use to grant access to the AdWords API.
         * 
         * @return builder
         * 
         */
        public Builder developerToken(@Nullable Output> developerToken) {
            $.developerToken = developerToken;
            return this;
        }

        /**
         * @param developerToken The developer token associated with the manager account that you use to grant access to the AdWords API.
         * 
         * @return builder
         * 
         */
        public Builder developerToken(Either developerToken) {
            return developerToken(Output.of(developerToken));
        }

        /**
         * @param developerToken The developer token associated with the manager account that you use to grant access to the AdWords API.
         * 
         * @return builder
         * 
         */
        public Builder developerToken(AzureKeyVaultSecretReferenceArgs developerToken) {
            return developerToken(Either.ofLeft(developerToken));
        }

        /**
         * @param developerToken The developer token associated with the manager account that you use to grant access to the AdWords API.
         * 
         * @return builder
         * 
         */
        public Builder developerToken(SecureStringArgs developerToken) {
            return developerToken(Either.ofRight(developerToken));
        }

        /**
         * @param email The service account email ID that is used for ServiceAuthentication and can only be used on self-hosted IR. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder email(@Nullable Output email) {
            $.email = email;
            return this;
        }

        /**
         * @param email The service account email ID that is used for ServiceAuthentication and can only be used on self-hosted IR. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder email(Object email) {
            return email(Output.of(email));
        }

        /**
         * @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 googleAdsApiVersion The Google Ads API major version such as v14. The supported major versions could be found on https://developers.google.com/google-ads/api/docs/release-notes. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder googleAdsApiVersion(@Nullable Output googleAdsApiVersion) {
            $.googleAdsApiVersion = googleAdsApiVersion;
            return this;
        }

        /**
         * @param googleAdsApiVersion The Google Ads API major version such as v14. The supported major versions could be found on https://developers.google.com/google-ads/api/docs/release-notes. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder googleAdsApiVersion(Object googleAdsApiVersion) {
            return googleAdsApiVersion(Output.of(googleAdsApiVersion));
        }

        /**
         * @param keyFilePath (Deprecated) The full path to the .p12 key file that is used to authenticate the service account email address and can only be used on self-hosted IR. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder keyFilePath(@Nullable Output keyFilePath) {
            $.keyFilePath = keyFilePath;
            return this;
        }

        /**
         * @param keyFilePath (Deprecated) The full path to the .p12 key file that is used to authenticate the service account email address and can only be used on self-hosted IR. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder keyFilePath(Object keyFilePath) {
            return keyFilePath(Output.of(keyFilePath));
        }

        /**
         * @param loginCustomerID The customer ID of the Google Ads Manager account through which you want to fetch report data of specific Customer. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder loginCustomerID(@Nullable Output loginCustomerID) {
            $.loginCustomerID = loginCustomerID;
            return this;
        }

        /**
         * @param loginCustomerID The customer ID of the Google Ads Manager account through which you want to fetch report data of specific Customer. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder loginCustomerID(Object loginCustomerID) {
            return loginCustomerID(Output.of(loginCustomerID));
        }

        /**
         * @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 that is used to authenticate the service account email address and can only be used on self-hosted IR.
         * 
         * @return builder
         * 
         */
        public Builder privateKey(@Nullable Output> privateKey) {
            $.privateKey = privateKey;
            return this;
        }

        /**
         * @param privateKey The private key that is used to authenticate the service account email address and can only be used on self-hosted IR.
         * 
         * @return builder
         * 
         */
        public Builder privateKey(Either privateKey) {
            return privateKey(Output.of(privateKey));
        }

        /**
         * @param privateKey The private key that is used to authenticate the service account email address and can only be used on self-hosted IR.
         * 
         * @return builder
         * 
         */
        public Builder privateKey(AzureKeyVaultSecretReferenceArgs privateKey) {
            return privateKey(Either.ofLeft(privateKey));
        }

        /**
         * @param privateKey The private key that is used to authenticate the service account email address and can only be used on self-hosted IR.
         * 
         * @return builder
         * 
         */
        public Builder privateKey(SecureStringArgs privateKey) {
            return privateKey(Either.ofRight(privateKey));
        }

        /**
         * @param refreshToken The refresh token obtained from Google for authorizing access to AdWords for UserAuthentication.
         * 
         * @return builder
         * 
         */
        public Builder refreshToken(@Nullable Output> refreshToken) {
            $.refreshToken = refreshToken;
            return this;
        }

        /**
         * @param refreshToken The refresh token obtained from Google for authorizing access to AdWords for UserAuthentication.
         * 
         * @return builder
         * 
         */
        public Builder refreshToken(Either refreshToken) {
            return refreshToken(Output.of(refreshToken));
        }

        /**
         * @param refreshToken The refresh token obtained from Google for authorizing access to AdWords for UserAuthentication.
         * 
         * @return builder
         * 
         */
        public Builder refreshToken(AzureKeyVaultSecretReferenceArgs refreshToken) {
            return refreshToken(Either.ofLeft(refreshToken));
        }

        /**
         * @param refreshToken The refresh token obtained from Google for authorizing access to AdWords for UserAuthentication.
         * 
         * @return builder
         * 
         */
        public Builder refreshToken(SecureStringArgs refreshToken) {
            return refreshToken(Either.ofRight(refreshToken));
        }

        /**
         * @param supportLegacyDataTypes Specifies whether to use the legacy data type mappings, which maps float, int32 and int64 from Google to string. Do not set this to true unless you want to keep backward compatibility with legacy driver's data type mappings. Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder supportLegacyDataTypes(@Nullable Output supportLegacyDataTypes) {
            $.supportLegacyDataTypes = supportLegacyDataTypes;
            return this;
        }

        /**
         * @param supportLegacyDataTypes Specifies whether to use the legacy data type mappings, which maps float, int32 and int64 from Google to string. Do not set this to true unless you want to keep backward compatibility with legacy driver's data type mappings. Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder supportLegacyDataTypes(Object supportLegacyDataTypes) {
            return supportLegacyDataTypes(Output.of(supportLegacyDataTypes));
        }

        /**
         * @param trustedCertPath (Deprecated) The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder trustedCertPath(@Nullable Output trustedCertPath) {
            $.trustedCertPath = trustedCertPath;
            return this;
        }

        /**
         * @param trustedCertPath (Deprecated) The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over SSL. This property can only be set when using SSL on self-hosted IR. The default value is the cacerts.pem file installed with the IR. Type: string (or Expression with resultType string).
         * 
         * @return builder
         * 
         */
        public Builder trustedCertPath(Object trustedCertPath) {
            return trustedCertPath(Output.of(trustedCertPath));
        }

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

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

        /**
         * @param useSystemTrustStore (Deprecated) Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder useSystemTrustStore(@Nullable Output useSystemTrustStore) {
            $.useSystemTrustStore = useSystemTrustStore;
            return this;
        }

        /**
         * @param useSystemTrustStore (Deprecated) Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. The default value is false. Type: boolean (or Expression with resultType boolean).
         * 
         * @return builder
         * 
         */
        public Builder useSystemTrustStore(Object useSystemTrustStore) {
            return useSystemTrustStore(Output.of(useSystemTrustStore));
        }

        /**
         * @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 GoogleAdWordsLinkedServiceArgs build() {
            $.type = Codegen.stringProp("type").output().arg($.type).require();
            return $;
        }
    }

}