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

com.pulumi.googlenative.dialogflow.v3.SecuritySettingArgs Maven / Gradle / Ivy

// *** 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.googlenative.dialogflow.v3;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.dialogflow.v3.enums.SecuritySettingPurgeDataTypesItem;
import com.pulumi.googlenative.dialogflow.v3.enums.SecuritySettingRedactionScope;
import com.pulumi.googlenative.dialogflow.v3.enums.SecuritySettingRedactionStrategy;
import com.pulumi.googlenative.dialogflow.v3.inputs.GoogleCloudDialogflowCxV3SecuritySettingsAudioExportSettingsArgs;
import com.pulumi.googlenative.dialogflow.v3.inputs.GoogleCloudDialogflowCxV3SecuritySettingsInsightsExportSettingsArgs;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final SecuritySettingArgs Empty = new SecuritySettingArgs();

    /**
     * Controls audio export settings for post-conversation analytics when ingesting audio to conversations via Participants.AnalyzeContent or Participants.StreamingAnalyzeContent. If retention_strategy is set to REMOVE_AFTER_CONVERSATION or audio_export_settings.gcs_bucket is empty, audio export is disabled. If audio export is enabled, audio is recorded and saved to audio_export_settings.gcs_bucket, subject to retention policy of audio_export_settings.gcs_bucket. This setting won't effect audio input for implicit sessions via Sessions.DetectIntent or Sessions.StreamingDetectIntent.
     * 
     */
    @Import(name="audioExportSettings")
    private @Nullable Output audioExportSettings;

    /**
     * @return Controls audio export settings for post-conversation analytics when ingesting audio to conversations via Participants.AnalyzeContent or Participants.StreamingAnalyzeContent. If retention_strategy is set to REMOVE_AFTER_CONVERSATION or audio_export_settings.gcs_bucket is empty, audio export is disabled. If audio export is enabled, audio is recorded and saved to audio_export_settings.gcs_bucket, subject to retention policy of audio_export_settings.gcs_bucket. This setting won't effect audio input for implicit sessions via Sessions.DetectIntent or Sessions.StreamingDetectIntent.
     * 
     */
    public Optional> audioExportSettings() {
        return Optional.ofNullable(this.audioExportSettings);
    }

    /**
     * [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this template to define de-identification configuration for the content. The `DLP De-identify Templates Reader` role is needed on the Dialogflow service identity service account (has the form `[email protected]`) for your agent's project. If empty, Dialogflow replaces sensitive info with `[redacted]` text. The template name will have one of the following formats: `projects//locations//deidentifyTemplates/` OR `organizations//locations//deidentifyTemplates/` Note: `deidentify_template` must be located in the same region as the `SecuritySettings`.
     * 
     */
    @Import(name="deidentifyTemplate")
    private @Nullable Output deidentifyTemplate;

    /**
     * @return [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this template to define de-identification configuration for the content. The `DLP De-identify Templates Reader` role is needed on the Dialogflow service identity service account (has the form `[email protected]`) for your agent's project. If empty, Dialogflow replaces sensitive info with `[redacted]` text. The template name will have one of the following formats: `projects//locations//deidentifyTemplates/` OR `organizations//locations//deidentifyTemplates/` Note: `deidentify_template` must be located in the same region as the `SecuritySettings`.
     * 
     */
    public Optional> deidentifyTemplate() {
        return Optional.ofNullable(this.deidentifyTemplate);
    }

    /**
     * The human-readable name of the security settings, unique within the location.
     * 
     */
    @Import(name="displayName", required=true)
    private Output displayName;

    /**
     * @return The human-readable name of the security settings, unique within the location.
     * 
     */
    public Output displayName() {
        return this.displayName;
    }

    /**
     * Controls conversation exporting settings to Insights after conversation is completed. If retention_strategy is set to REMOVE_AFTER_CONVERSATION, Insights export is disabled no matter what you configure here.
     * 
     */
    @Import(name="insightsExportSettings")
    private @Nullable Output insightsExportSettings;

    /**
     * @return Controls conversation exporting settings to Insights after conversation is completed. If retention_strategy is set to REMOVE_AFTER_CONVERSATION, Insights export is disabled no matter what you configure here.
     * 
     */
    public Optional> insightsExportSettings() {
        return Optional.ofNullable(this.insightsExportSettings);
    }

    /**
     * [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this template to define inspect base settings. The `DLP Inspect Templates Reader` role is needed on the Dialogflow service identity service account (has the form `[email protected]`) for your agent's project. If empty, we use the default DLP inspect config. The template name will have one of the following formats: `projects//locations//inspectTemplates/` OR `organizations//locations//inspectTemplates/` Note: `inspect_template` must be located in the same region as the `SecuritySettings`.
     * 
     */
    @Import(name="inspectTemplate")
    private @Nullable Output inspectTemplate;

    /**
     * @return [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this template to define inspect base settings. The `DLP Inspect Templates Reader` role is needed on the Dialogflow service identity service account (has the form `[email protected]`) for your agent's project. If empty, we use the default DLP inspect config. The template name will have one of the following formats: `projects//locations//inspectTemplates/` OR `organizations//locations//inspectTemplates/` Note: `inspect_template` must be located in the same region as the `SecuritySettings`.
     * 
     */
    public Optional> inspectTemplate() {
        return Optional.ofNullable(this.inspectTemplate);
    }

    @Import(name="location")
    private @Nullable Output location;

    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Resource name of the settings. Required for the SecuritySettingsService.UpdateSecuritySettings method. SecuritySettingsService.CreateSecuritySettings populates the name automatically. Format: `projects//locations//securitySettings/`.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Resource name of the settings. Required for the SecuritySettingsService.UpdateSecuritySettings method. SecuritySettingsService.CreateSecuritySettings populates the name automatically. Format: `projects//locations//securitySettings/`.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    @Import(name="project")
    private @Nullable Output project;

    public Optional> project() {
        return Optional.ofNullable(this.project);
    }

    /**
     * List of types of data to remove when retention settings triggers purge.
     * 
     */
    @Import(name="purgeDataTypes")
    private @Nullable Output> purgeDataTypes;

    /**
     * @return List of types of data to remove when retention settings triggers purge.
     * 
     */
    public Optional>> purgeDataTypes() {
        return Optional.ofNullable(this.purgeDataTypes);
    }

    /**
     * Defines the data for which Dialogflow applies redaction. Dialogflow does not redact data that it does not have access to – for example, Cloud logging.
     * 
     */
    @Import(name="redactionScope")
    private @Nullable Output redactionScope;

    /**
     * @return Defines the data for which Dialogflow applies redaction. Dialogflow does not redact data that it does not have access to – for example, Cloud logging.
     * 
     */
    public Optional> redactionScope() {
        return Optional.ofNullable(this.redactionScope);
    }

    /**
     * Strategy that defines how we do redaction.
     * 
     */
    @Import(name="redactionStrategy")
    private @Nullable Output redactionStrategy;

    /**
     * @return Strategy that defines how we do redaction.
     * 
     */
    public Optional> redactionStrategy() {
        return Optional.ofNullable(this.redactionStrategy);
    }

    /**
     * Retains the data for the specified number of days. User must set a value lower than Dialogflow's default 365d TTL (30 days for Agent Assist traffic), higher value will be ignored and use default. Setting a value higher than that has no effect. A missing value or setting to 0 also means we use default TTL.
     * 
     */
    @Import(name="retentionWindowDays")
    private @Nullable Output retentionWindowDays;

    /**
     * @return Retains the data for the specified number of days. User must set a value lower than Dialogflow's default 365d TTL (30 days for Agent Assist traffic), higher value will be ignored and use default. Setting a value higher than that has no effect. A missing value or setting to 0 also means we use default TTL.
     * 
     */
    public Optional> retentionWindowDays() {
        return Optional.ofNullable(this.retentionWindowDays);
    }

    private SecuritySettingArgs() {}

    private SecuritySettingArgs(SecuritySettingArgs $) {
        this.audioExportSettings = $.audioExportSettings;
        this.deidentifyTemplate = $.deidentifyTemplate;
        this.displayName = $.displayName;
        this.insightsExportSettings = $.insightsExportSettings;
        this.inspectTemplate = $.inspectTemplate;
        this.location = $.location;
        this.name = $.name;
        this.project = $.project;
        this.purgeDataTypes = $.purgeDataTypes;
        this.redactionScope = $.redactionScope;
        this.redactionStrategy = $.redactionStrategy;
        this.retentionWindowDays = $.retentionWindowDays;
    }

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

    public static final class Builder {
        private SecuritySettingArgs $;

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

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

        /**
         * @param audioExportSettings Controls audio export settings for post-conversation analytics when ingesting audio to conversations via Participants.AnalyzeContent or Participants.StreamingAnalyzeContent. If retention_strategy is set to REMOVE_AFTER_CONVERSATION or audio_export_settings.gcs_bucket is empty, audio export is disabled. If audio export is enabled, audio is recorded and saved to audio_export_settings.gcs_bucket, subject to retention policy of audio_export_settings.gcs_bucket. This setting won't effect audio input for implicit sessions via Sessions.DetectIntent or Sessions.StreamingDetectIntent.
         * 
         * @return builder
         * 
         */
        public Builder audioExportSettings(@Nullable Output audioExportSettings) {
            $.audioExportSettings = audioExportSettings;
            return this;
        }

        /**
         * @param audioExportSettings Controls audio export settings for post-conversation analytics when ingesting audio to conversations via Participants.AnalyzeContent or Participants.StreamingAnalyzeContent. If retention_strategy is set to REMOVE_AFTER_CONVERSATION or audio_export_settings.gcs_bucket is empty, audio export is disabled. If audio export is enabled, audio is recorded and saved to audio_export_settings.gcs_bucket, subject to retention policy of audio_export_settings.gcs_bucket. This setting won't effect audio input for implicit sessions via Sessions.DetectIntent or Sessions.StreamingDetectIntent.
         * 
         * @return builder
         * 
         */
        public Builder audioExportSettings(GoogleCloudDialogflowCxV3SecuritySettingsAudioExportSettingsArgs audioExportSettings) {
            return audioExportSettings(Output.of(audioExportSettings));
        }

        /**
         * @param deidentifyTemplate [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this template to define de-identification configuration for the content. The `DLP De-identify Templates Reader` role is needed on the Dialogflow service identity service account (has the form `[email protected]`) for your agent's project. If empty, Dialogflow replaces sensitive info with `[redacted]` text. The template name will have one of the following formats: `projects//locations//deidentifyTemplates/` OR `organizations//locations//deidentifyTemplates/` Note: `deidentify_template` must be located in the same region as the `SecuritySettings`.
         * 
         * @return builder
         * 
         */
        public Builder deidentifyTemplate(@Nullable Output deidentifyTemplate) {
            $.deidentifyTemplate = deidentifyTemplate;
            return this;
        }

        /**
         * @param deidentifyTemplate [DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this template to define de-identification configuration for the content. The `DLP De-identify Templates Reader` role is needed on the Dialogflow service identity service account (has the form `[email protected]`) for your agent's project. If empty, Dialogflow replaces sensitive info with `[redacted]` text. The template name will have one of the following formats: `projects//locations//deidentifyTemplates/` OR `organizations//locations//deidentifyTemplates/` Note: `deidentify_template` must be located in the same region as the `SecuritySettings`.
         * 
         * @return builder
         * 
         */
        public Builder deidentifyTemplate(String deidentifyTemplate) {
            return deidentifyTemplate(Output.of(deidentifyTemplate));
        }

        /**
         * @param displayName The human-readable name of the security settings, unique within the location.
         * 
         * @return builder
         * 
         */
        public Builder displayName(Output displayName) {
            $.displayName = displayName;
            return this;
        }

        /**
         * @param displayName The human-readable name of the security settings, unique within the location.
         * 
         * @return builder
         * 
         */
        public Builder displayName(String displayName) {
            return displayName(Output.of(displayName));
        }

        /**
         * @param insightsExportSettings Controls conversation exporting settings to Insights after conversation is completed. If retention_strategy is set to REMOVE_AFTER_CONVERSATION, Insights export is disabled no matter what you configure here.
         * 
         * @return builder
         * 
         */
        public Builder insightsExportSettings(@Nullable Output insightsExportSettings) {
            $.insightsExportSettings = insightsExportSettings;
            return this;
        }

        /**
         * @param insightsExportSettings Controls conversation exporting settings to Insights after conversation is completed. If retention_strategy is set to REMOVE_AFTER_CONVERSATION, Insights export is disabled no matter what you configure here.
         * 
         * @return builder
         * 
         */
        public Builder insightsExportSettings(GoogleCloudDialogflowCxV3SecuritySettingsInsightsExportSettingsArgs insightsExportSettings) {
            return insightsExportSettings(Output.of(insightsExportSettings));
        }

        /**
         * @param inspectTemplate [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this template to define inspect base settings. The `DLP Inspect Templates Reader` role is needed on the Dialogflow service identity service account (has the form `[email protected]`) for your agent's project. If empty, we use the default DLP inspect config. The template name will have one of the following formats: `projects//locations//inspectTemplates/` OR `organizations//locations//inspectTemplates/` Note: `inspect_template` must be located in the same region as the `SecuritySettings`.
         * 
         * @return builder
         * 
         */
        public Builder inspectTemplate(@Nullable Output inspectTemplate) {
            $.inspectTemplate = inspectTemplate;
            return this;
        }

        /**
         * @param inspectTemplate [DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this template to define inspect base settings. The `DLP Inspect Templates Reader` role is needed on the Dialogflow service identity service account (has the form `[email protected]`) for your agent's project. If empty, we use the default DLP inspect config. The template name will have one of the following formats: `projects//locations//inspectTemplates/` OR `organizations//locations//inspectTemplates/` Note: `inspect_template` must be located in the same region as the `SecuritySettings`.
         * 
         * @return builder
         * 
         */
        public Builder inspectTemplate(String inspectTemplate) {
            return inspectTemplate(Output.of(inspectTemplate));
        }

        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param name Resource name of the settings. Required for the SecuritySettingsService.UpdateSecuritySettings method. SecuritySettingsService.CreateSecuritySettings populates the name automatically. Format: `projects//locations//securitySettings/`.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Resource name of the settings. Required for the SecuritySettingsService.UpdateSecuritySettings method. SecuritySettingsService.CreateSecuritySettings populates the name automatically. Format: `projects//locations//securitySettings/`.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        public Builder project(@Nullable Output project) {
            $.project = project;
            return this;
        }

        public Builder project(String project) {
            return project(Output.of(project));
        }

        /**
         * @param purgeDataTypes List of types of data to remove when retention settings triggers purge.
         * 
         * @return builder
         * 
         */
        public Builder purgeDataTypes(@Nullable Output> purgeDataTypes) {
            $.purgeDataTypes = purgeDataTypes;
            return this;
        }

        /**
         * @param purgeDataTypes List of types of data to remove when retention settings triggers purge.
         * 
         * @return builder
         * 
         */
        public Builder purgeDataTypes(List purgeDataTypes) {
            return purgeDataTypes(Output.of(purgeDataTypes));
        }

        /**
         * @param purgeDataTypes List of types of data to remove when retention settings triggers purge.
         * 
         * @return builder
         * 
         */
        public Builder purgeDataTypes(SecuritySettingPurgeDataTypesItem... purgeDataTypes) {
            return purgeDataTypes(List.of(purgeDataTypes));
        }

        /**
         * @param redactionScope Defines the data for which Dialogflow applies redaction. Dialogflow does not redact data that it does not have access to – for example, Cloud logging.
         * 
         * @return builder
         * 
         */
        public Builder redactionScope(@Nullable Output redactionScope) {
            $.redactionScope = redactionScope;
            return this;
        }

        /**
         * @param redactionScope Defines the data for which Dialogflow applies redaction. Dialogflow does not redact data that it does not have access to – for example, Cloud logging.
         * 
         * @return builder
         * 
         */
        public Builder redactionScope(SecuritySettingRedactionScope redactionScope) {
            return redactionScope(Output.of(redactionScope));
        }

        /**
         * @param redactionStrategy Strategy that defines how we do redaction.
         * 
         * @return builder
         * 
         */
        public Builder redactionStrategy(@Nullable Output redactionStrategy) {
            $.redactionStrategy = redactionStrategy;
            return this;
        }

        /**
         * @param redactionStrategy Strategy that defines how we do redaction.
         * 
         * @return builder
         * 
         */
        public Builder redactionStrategy(SecuritySettingRedactionStrategy redactionStrategy) {
            return redactionStrategy(Output.of(redactionStrategy));
        }

        /**
         * @param retentionWindowDays Retains the data for the specified number of days. User must set a value lower than Dialogflow's default 365d TTL (30 days for Agent Assist traffic), higher value will be ignored and use default. Setting a value higher than that has no effect. A missing value or setting to 0 also means we use default TTL.
         * 
         * @return builder
         * 
         */
        public Builder retentionWindowDays(@Nullable Output retentionWindowDays) {
            $.retentionWindowDays = retentionWindowDays;
            return this;
        }

        /**
         * @param retentionWindowDays Retains the data for the specified number of days. User must set a value lower than Dialogflow's default 365d TTL (30 days for Agent Assist traffic), higher value will be ignored and use default. Setting a value higher than that has no effect. A missing value or setting to 0 also means we use default TTL.
         * 
         * @return builder
         * 
         */
        public Builder retentionWindowDays(Integer retentionWindowDays) {
            return retentionWindowDays(Output.of(retentionWindowDays));
        }

        public SecuritySettingArgs build() {
            $.displayName = Objects.requireNonNull($.displayName, "expected parameter 'displayName' to be non-null");
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy