// *** 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.aws.appflow.inputs;

import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesAmplitudeArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesCustomConnectorArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesDatadogArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesDynatraceArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesGoogleAnalyticsArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesInforNexusArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesMarketoArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesS3Args;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesSalesforceArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesSapoDataArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesServiceNowArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesSingularArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesSlackArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesTrendmicroArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesVeevaArgs;
import com.pulumi.aws.appflow.inputs.FlowSourceFlowConfigSourceConnectorPropertiesZendeskArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final FlowSourceFlowConfigSourceConnectorPropertiesArgs Empty = new FlowSourceFlowConfigSourceConnectorPropertiesArgs();

    /**
     * Information that is required for querying Amplitude. See Generic Source Properties for more details.
     * 
     */
    @Import(name="amplitude")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesAmplitudeArgs> amplitude;

    /**
     * @return Information that is required for querying Amplitude. See Generic Source Properties for more details.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesAmplitudeArgs>> amplitude() {
        return Optional.ofNullable(this.amplitude);
    }

    /**
     * Properties that are applied when the custom connector is being used as a source. See Custom Connector Source Properties.
     * 
     */
    @Import(name="customConnector")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesCustomConnectorArgs> customConnector;

    /**
     * @return Properties that are applied when the custom connector is being used as a source. See Custom Connector Source Properties.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesCustomConnectorArgs>> customConnector() {
        return Optional.ofNullable(this.customConnector);
    }

    /**
     * Information that is required for querying Datadog. See Generic Source Properties for more details.
     * 
     */
    @Import(name="datadog")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesDatadogArgs> datadog;

    /**
     * @return Information that is required for querying Datadog. See Generic Source Properties for more details.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesDatadogArgs>> datadog() {
        return Optional.ofNullable(this.datadog);
    }

    /**
     * Operation to be performed on the provided Dynatrace source fields. Valid values are `PROJECTION`, `BETWEEN`, `EQUAL_TO`, `ADDITION`, `MULTIPLICATION`, `DIVISION`, `SUBTRACTION`, `MASK_ALL`, `MASK_FIRST_N`, `MASK_LAST_N`, `VALIDATE_NON_NULL`, `VALIDATE_NON_ZERO`, `VALIDATE_NON_NEGATIVE`, `VALIDATE_NUMERIC`, and `NO_OP`.
     * 
     */
    @Import(name="dynatrace")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesDynatraceArgs> dynatrace;

    /**
     * @return Operation to be performed on the provided Dynatrace source fields. Valid values are `PROJECTION`, `BETWEEN`, `EQUAL_TO`, `ADDITION`, `MULTIPLICATION`, `DIVISION`, `SUBTRACTION`, `MASK_ALL`, `MASK_FIRST_N`, `MASK_LAST_N`, `VALIDATE_NON_NULL`, `VALIDATE_NON_ZERO`, `VALIDATE_NON_NEGATIVE`, `VALIDATE_NUMERIC`, and `NO_OP`.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesDynatraceArgs>> dynatrace() {
        return Optional.ofNullable(this.dynatrace);
    }

    /**
     * Operation to be performed on the provided Google Analytics source fields. Valid values are `PROJECTION` and `BETWEEN`.
     * 
     */
    @Import(name="googleAnalytics")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesGoogleAnalyticsArgs> googleAnalytics;

    /**
     * @return Operation to be performed on the provided Google Analytics source fields. Valid values are `PROJECTION` and `BETWEEN`.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesGoogleAnalyticsArgs>> googleAnalytics() {
        return Optional.ofNullable(this.googleAnalytics);
    }

    /**
     * Information that is required for querying Infor Nexus. See Generic Source Properties for more details.
     * 
     */
    @Import(name="inforNexus")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesInforNexusArgs> inforNexus;

    /**
     * @return Information that is required for querying Infor Nexus. See Generic Source Properties for more details.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesInforNexusArgs>> inforNexus() {
        return Optional.ofNullable(this.inforNexus);
    }

    /**
     * Information that is required for querying Marketo. See Generic Source Properties for more details.
     * 
     */
    @Import(name="marketo")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesMarketoArgs> marketo;

    /**
     * @return Information that is required for querying Marketo. See Generic Source Properties for more details.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesMarketoArgs>> marketo() {
        return Optional.ofNullable(this.marketo);
    }

    /**
     * Information that is required for querying Amazon S3. See S3 Source Properties for more details.
     * 
     */
    @Import(name="s3")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesS3Args> s3;

    /**
     * @return Information that is required for querying Amazon S3. See S3 Source Properties for more details.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesS3Args>> s3() {
        return Optional.ofNullable(this.s3);
    }

    /**
     * Information that is required for querying Salesforce. See Salesforce Source Properties for more details.
     * 
     */
    @Import(name="salesforce")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesSalesforceArgs> salesforce;

    /**
     * @return Information that is required for querying Salesforce. See Salesforce Source Properties for more details.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesSalesforceArgs>> salesforce() {
        return Optional.ofNullable(this.salesforce);
    }

    /**
     * Information that is required for querying SAPOData as a flow source. See SAPO Source Properties for more details.
     * 
     */
    @Import(name="sapoData")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesSapoDataArgs> sapoData;

    /**
     * @return Information that is required for querying SAPOData as a flow source. See SAPO Source Properties for more details.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesSapoDataArgs>> sapoData() {
        return Optional.ofNullable(this.sapoData);
    }

    /**
     * Information that is required for querying ServiceNow. See Generic Source Properties for more details.
     * 
     */
    @Import(name="serviceNow")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesServiceNowArgs> serviceNow;

    /**
     * @return Information that is required for querying ServiceNow. See Generic Source Properties for more details.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesServiceNowArgs>> serviceNow() {
        return Optional.ofNullable(this.serviceNow);
    }

    /**
     * Information that is required for querying Singular. See Generic Source Properties for more details.
     * 
     */
    @Import(name="singular")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesSingularArgs> singular;

    /**
     * @return Information that is required for querying Singular. See Generic Source Properties for more details.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesSingularArgs>> singular() {
        return Optional.ofNullable(this.singular);
    }

    /**
     * Information that is required for querying Slack. See Generic Source Properties for more details.
     * 
     */
    @Import(name="slack")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesSlackArgs> slack;

    /**
     * @return Information that is required for querying Slack. See Generic Source Properties for more details.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesSlackArgs>> slack() {
        return Optional.ofNullable(this.slack);
    }

    /**
     * Operation to be performed on the provided Trend Micro source fields. Valid values are `PROJECTION`, `EQUAL_TO`, `ADDITION`, `MULTIPLICATION`, `DIVISION`, `SUBTRACTION`, `MASK_ALL`, `MASK_FIRST_N`, `MASK_LAST_N`, `VALIDATE_NON_NULL`, `VALIDATE_NON_ZERO`, `VALIDATE_NON_NEGATIVE`, `VALIDATE_NUMERIC`, and `NO_OP`.
     * 
     */
    @Import(name="trendmicro")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesTrendmicroArgs> trendmicro;

    /**
     * @return Operation to be performed on the provided Trend Micro source fields. Valid values are `PROJECTION`, `EQUAL_TO`, `ADDITION`, `MULTIPLICATION`, `DIVISION`, `SUBTRACTION`, `MASK_ALL`, `MASK_FIRST_N`, `MASK_LAST_N`, `VALIDATE_NON_NULL`, `VALIDATE_NON_ZERO`, `VALIDATE_NON_NEGATIVE`, `VALIDATE_NUMERIC`, and `NO_OP`.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesTrendmicroArgs>> trendmicro() {
        return Optional.ofNullable(this.trendmicro);
    }

    /**
     * Information that is required for querying Veeva. See Veeva Source Properties for more details.
     * 
     */
    @Import(name="veeva")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesVeevaArgs> veeva;

    /**
     * @return Information that is required for querying Veeva. See Veeva Source Properties for more details.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesVeevaArgs>> veeva() {
        return Optional.ofNullable(this.veeva);
    }

    /**
     * Information that is required for querying Zendesk. See Generic Source Properties for more details.
     * 
     */
    @Import(name="zendesk")
    private @Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesZendeskArgs> zendesk;

    /**
     * @return Information that is required for querying Zendesk. See Generic Source Properties for more details.
     * 
     */
    public Optional<Output<FlowSourceFlowConfigSourceConnectorPropertiesZendeskArgs>> zendesk() {
        return Optional.ofNullable(this.zendesk);
    }

    private FlowSourceFlowConfigSourceConnectorPropertiesArgs() {}

    private FlowSourceFlowConfigSourceConnectorPropertiesArgs(FlowSourceFlowConfigSourceConnectorPropertiesArgs $) {
        this.amplitude = $.amplitude;
        this.customConnector = $.customConnector;
        this.datadog = $.datadog;
        this.dynatrace = $.dynatrace;
        this.googleAnalytics = $.googleAnalytics;
        this.inforNexus = $.inforNexus;
        this.marketo = $.marketo;
        this.s3 = $.s3;
        this.salesforce = $.salesforce;
        this.sapoData = $.sapoData;
        this.serviceNow = $.serviceNow;
        this.singular = $.singular;
        this.slack = $.slack;
        this.trendmicro = $.trendmicro;
        this.veeva = $.veeva;
        this.zendesk = $.zendesk;
    }

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

    public static final class Builder {
        private FlowSourceFlowConfigSourceConnectorPropertiesArgs $;

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

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

        /**
         * @param amplitude Information that is required for querying Amplitude. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder amplitude(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesAmplitudeArgs> amplitude) {
            $.amplitude = amplitude;
            return this;
        }

        /**
         * @param amplitude Information that is required for querying Amplitude. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder amplitude(FlowSourceFlowConfigSourceConnectorPropertiesAmplitudeArgs amplitude) {
            return amplitude(Output.of(amplitude));
        }

        /**
         * @param customConnector Properties that are applied when the custom connector is being used as a source. See Custom Connector Source Properties.
         * 
         * @return builder
         * 
         */
        public Builder customConnector(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesCustomConnectorArgs> customConnector) {
            $.customConnector = customConnector;
            return this;
        }

        /**
         * @param customConnector Properties that are applied when the custom connector is being used as a source. See Custom Connector Source Properties.
         * 
         * @return builder
         * 
         */
        public Builder customConnector(FlowSourceFlowConfigSourceConnectorPropertiesCustomConnectorArgs customConnector) {
            return customConnector(Output.of(customConnector));
        }

        /**
         * @param datadog Information that is required for querying Datadog. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder datadog(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesDatadogArgs> datadog) {
            $.datadog = datadog;
            return this;
        }

        /**
         * @param datadog Information that is required for querying Datadog. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder datadog(FlowSourceFlowConfigSourceConnectorPropertiesDatadogArgs datadog) {
            return datadog(Output.of(datadog));
        }

        /**
         * @param dynatrace Operation to be performed on the provided Dynatrace source fields. Valid values are `PROJECTION`, `BETWEEN`, `EQUAL_TO`, `ADDITION`, `MULTIPLICATION`, `DIVISION`, `SUBTRACTION`, `MASK_ALL`, `MASK_FIRST_N`, `MASK_LAST_N`, `VALIDATE_NON_NULL`, `VALIDATE_NON_ZERO`, `VALIDATE_NON_NEGATIVE`, `VALIDATE_NUMERIC`, and `NO_OP`.
         * 
         * @return builder
         * 
         */
        public Builder dynatrace(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesDynatraceArgs> dynatrace) {
            $.dynatrace = dynatrace;
            return this;
        }

        /**
         * @param dynatrace Operation to be performed on the provided Dynatrace source fields. Valid values are `PROJECTION`, `BETWEEN`, `EQUAL_TO`, `ADDITION`, `MULTIPLICATION`, `DIVISION`, `SUBTRACTION`, `MASK_ALL`, `MASK_FIRST_N`, `MASK_LAST_N`, `VALIDATE_NON_NULL`, `VALIDATE_NON_ZERO`, `VALIDATE_NON_NEGATIVE`, `VALIDATE_NUMERIC`, and `NO_OP`.
         * 
         * @return builder
         * 
         */
        public Builder dynatrace(FlowSourceFlowConfigSourceConnectorPropertiesDynatraceArgs dynatrace) {
            return dynatrace(Output.of(dynatrace));
        }

        /**
         * @param googleAnalytics Operation to be performed on the provided Google Analytics source fields. Valid values are `PROJECTION` and `BETWEEN`.
         * 
         * @return builder
         * 
         */
        public Builder googleAnalytics(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesGoogleAnalyticsArgs> googleAnalytics) {
            $.googleAnalytics = googleAnalytics;
            return this;
        }

        /**
         * @param googleAnalytics Operation to be performed on the provided Google Analytics source fields. Valid values are `PROJECTION` and `BETWEEN`.
         * 
         * @return builder
         * 
         */
        public Builder googleAnalytics(FlowSourceFlowConfigSourceConnectorPropertiesGoogleAnalyticsArgs googleAnalytics) {
            return googleAnalytics(Output.of(googleAnalytics));
        }

        /**
         * @param inforNexus Information that is required for querying Infor Nexus. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder inforNexus(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesInforNexusArgs> inforNexus) {
            $.inforNexus = inforNexus;
            return this;
        }

        /**
         * @param inforNexus Information that is required for querying Infor Nexus. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder inforNexus(FlowSourceFlowConfigSourceConnectorPropertiesInforNexusArgs inforNexus) {
            return inforNexus(Output.of(inforNexus));
        }

        /**
         * @param marketo Information that is required for querying Marketo. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder marketo(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesMarketoArgs> marketo) {
            $.marketo = marketo;
            return this;
        }

        /**
         * @param marketo Information that is required for querying Marketo. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder marketo(FlowSourceFlowConfigSourceConnectorPropertiesMarketoArgs marketo) {
            return marketo(Output.of(marketo));
        }

        /**
         * @param s3 Information that is required for querying Amazon S3. See S3 Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder s3(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesS3Args> s3) {
            $.s3 = s3;
            return this;
        }

        /**
         * @param s3 Information that is required for querying Amazon S3. See S3 Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder s3(FlowSourceFlowConfigSourceConnectorPropertiesS3Args s3) {
            return s3(Output.of(s3));
        }

        /**
         * @param salesforce Information that is required for querying Salesforce. See Salesforce Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder salesforce(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesSalesforceArgs> salesforce) {
            $.salesforce = salesforce;
            return this;
        }

        /**
         * @param salesforce Information that is required for querying Salesforce. See Salesforce Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder salesforce(FlowSourceFlowConfigSourceConnectorPropertiesSalesforceArgs salesforce) {
            return salesforce(Output.of(salesforce));
        }

        /**
         * @param sapoData Information that is required for querying SAPOData as a flow source. See SAPO Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder sapoData(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesSapoDataArgs> sapoData) {
            $.sapoData = sapoData;
            return this;
        }

        /**
         * @param sapoData Information that is required for querying SAPOData as a flow source. See SAPO Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder sapoData(FlowSourceFlowConfigSourceConnectorPropertiesSapoDataArgs sapoData) {
            return sapoData(Output.of(sapoData));
        }

        /**
         * @param serviceNow Information that is required for querying ServiceNow. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder serviceNow(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesServiceNowArgs> serviceNow) {
            $.serviceNow = serviceNow;
            return this;
        }

        /**
         * @param serviceNow Information that is required for querying ServiceNow. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder serviceNow(FlowSourceFlowConfigSourceConnectorPropertiesServiceNowArgs serviceNow) {
            return serviceNow(Output.of(serviceNow));
        }

        /**
         * @param singular Information that is required for querying Singular. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder singular(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesSingularArgs> singular) {
            $.singular = singular;
            return this;
        }

        /**
         * @param singular Information that is required for querying Singular. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder singular(FlowSourceFlowConfigSourceConnectorPropertiesSingularArgs singular) {
            return singular(Output.of(singular));
        }

        /**
         * @param slack Information that is required for querying Slack. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder slack(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesSlackArgs> slack) {
            $.slack = slack;
            return this;
        }

        /**
         * @param slack Information that is required for querying Slack. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder slack(FlowSourceFlowConfigSourceConnectorPropertiesSlackArgs slack) {
            return slack(Output.of(slack));
        }

        /**
         * @param trendmicro Operation to be performed on the provided Trend Micro source fields. Valid values are `PROJECTION`, `EQUAL_TO`, `ADDITION`, `MULTIPLICATION`, `DIVISION`, `SUBTRACTION`, `MASK_ALL`, `MASK_FIRST_N`, `MASK_LAST_N`, `VALIDATE_NON_NULL`, `VALIDATE_NON_ZERO`, `VALIDATE_NON_NEGATIVE`, `VALIDATE_NUMERIC`, and `NO_OP`.
         * 
         * @return builder
         * 
         */
        public Builder trendmicro(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesTrendmicroArgs> trendmicro) {
            $.trendmicro = trendmicro;
            return this;
        }

        /**
         * @param trendmicro Operation to be performed on the provided Trend Micro source fields. Valid values are `PROJECTION`, `EQUAL_TO`, `ADDITION`, `MULTIPLICATION`, `DIVISION`, `SUBTRACTION`, `MASK_ALL`, `MASK_FIRST_N`, `MASK_LAST_N`, `VALIDATE_NON_NULL`, `VALIDATE_NON_ZERO`, `VALIDATE_NON_NEGATIVE`, `VALIDATE_NUMERIC`, and `NO_OP`.
         * 
         * @return builder
         * 
         */
        public Builder trendmicro(FlowSourceFlowConfigSourceConnectorPropertiesTrendmicroArgs trendmicro) {
            return trendmicro(Output.of(trendmicro));
        }

        /**
         * @param veeva Information that is required for querying Veeva. See Veeva Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder veeva(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesVeevaArgs> veeva) {
            $.veeva = veeva;
            return this;
        }

        /**
         * @param veeva Information that is required for querying Veeva. See Veeva Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder veeva(FlowSourceFlowConfigSourceConnectorPropertiesVeevaArgs veeva) {
            return veeva(Output.of(veeva));
        }

        /**
         * @param zendesk Information that is required for querying Zendesk. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder zendesk(@Nullable Output<FlowSourceFlowConfigSourceConnectorPropertiesZendeskArgs> zendesk) {
            $.zendesk = zendesk;
            return this;
        }

        /**
         * @param zendesk Information that is required for querying Zendesk. See Generic Source Properties for more details.
         * 
         * @return builder
         * 
         */
        public Builder zendesk(FlowSourceFlowConfigSourceConnectorPropertiesZendeskArgs zendesk) {
            return zendesk(Output.of(zendesk));
        }

        public FlowSourceFlowConfigSourceConnectorPropertiesArgs build() {
            return $;
        }
    }

}
