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

com.pulumi.signalfx.gcp.IntegrationArgs Maven / Gradle / Ivy

There is a newer version: 7.8.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.signalfx.gcp;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import com.pulumi.signalfx.gcp.inputs.IntegrationProjectServiceKeyArgs;
import java.lang.Boolean;
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 IntegrationArgs extends com.pulumi.resources.ResourceArgs {

    public static final IntegrationArgs Empty = new IntegrationArgs();

    /**
     * List of additional GCP service domain names that Splunk Observability Cloud will monitor. See [Custom Metric Type Domains documentation](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/#Custom-metric-type-domains)
     * 
     */
    @Import(name="customMetricTypeDomains")
    private @Nullable Output> customMetricTypeDomains;

    /**
     * @return List of additional GCP service domain names that Splunk Observability Cloud will monitor. See [Custom Metric Type Domains documentation](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/#Custom-metric-type-domains)
     * 
     */
    public Optional>> customMetricTypeDomains() {
        return Optional.ofNullable(this.customMetricTypeDomains);
    }

    /**
     * Whether the integration is enabled.
     * 
     */
    @Import(name="enabled", required=true)
    private Output enabled;

    /**
     * @return Whether the integration is enabled.
     * 
     */
    public Output enabled() {
        return this.enabled;
    }

    /**
     * If enabled, Splunk Observability Cloud will sync also Google Cloud Monitoring data. If disabled, Splunk Observability Cloud will import only metadata. Defaults to true.
     * 
     */
    @Import(name="importGcpMetrics")
    private @Nullable Output importGcpMetrics;

    /**
     * @return If enabled, Splunk Observability Cloud will sync also Google Cloud Monitoring data. If disabled, Splunk Observability Cloud will import only metadata. Defaults to true.
     * 
     */
    public Optional> importGcpMetrics() {
        return Optional.ofNullable(this.importGcpMetrics);
    }

    /**
     * [Compute Metadata Include List](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/).
     * 
     */
    @Import(name="includeLists")
    private @Nullable Output> includeLists;

    /**
     * @return [Compute Metadata Include List](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/).
     * 
     */
    public Optional>> includeLists() {
        return Optional.ofNullable(this.includeLists);
    }

    /**
     * Name of the integration.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Name of the integration.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Name of the org token to be used for data ingestion. If not specified then default access token is used.
     * 
     */
    @Import(name="namedToken")
    private @Nullable Output namedToken;

    /**
     * @return Name of the org token to be used for data ingestion. If not specified then default access token is used.
     * 
     */
    public Optional> namedToken() {
        return Optional.ofNullable(this.namedToken);
    }

    /**
     * GCP integration poll rate (in seconds). Value between `60` and `600`. Default: `300`.
     * 
     */
    @Import(name="pollRate")
    private @Nullable Output pollRate;

    /**
     * @return GCP integration poll rate (in seconds). Value between `60` and `600`. Default: `300`.
     * 
     */
    public Optional> pollRate() {
        return Optional.ofNullable(this.pollRate);
    }

    /**
     * GCP projects to add.
     * 
     */
    @Import(name="projectServiceKeys")
    private @Nullable Output> projectServiceKeys;

    /**
     * @return GCP projects to add.
     * 
     */
    public Optional>> projectServiceKeys() {
        return Optional.ofNullable(this.projectServiceKeys);
    }

    /**
     * GCP service metrics to import. Can be an empty list, or not included, to import 'All services'. See [Google Cloud Platform services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#google-cloud-platform-services) for a list of valid values.
     * 
     */
    @Import(name="services")
    private @Nullable Output> services;

    /**
     * @return GCP service metrics to import. Can be an empty list, or not included, to import 'All services'. See [Google Cloud Platform services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#google-cloud-platform-services) for a list of valid values.
     * 
     */
    public Optional>> services() {
        return Optional.ofNullable(this.services);
    }

    /**
     * When this value is set to true Observability Cloud will force usage of a quota from the project where metrics are stored. For this to work the service account provided for the project needs to be provided with serviceusage.services.use permission or Service Usage Consumer role in this project. When set to false default quota settings are used.
     * 
     */
    @Import(name="useMetricSourceProjectForQuota")
    private @Nullable Output useMetricSourceProjectForQuota;

    /**
     * @return When this value is set to true Observability Cloud will force usage of a quota from the project where metrics are stored. For this to work the service account provided for the project needs to be provided with serviceusage.services.use permission or Service Usage Consumer role in this project. When set to false default quota settings are used.
     * 
     */
    public Optional> useMetricSourceProjectForQuota() {
        return Optional.ofNullable(this.useMetricSourceProjectForQuota);
    }

    private IntegrationArgs() {}

    private IntegrationArgs(IntegrationArgs $) {
        this.customMetricTypeDomains = $.customMetricTypeDomains;
        this.enabled = $.enabled;
        this.importGcpMetrics = $.importGcpMetrics;
        this.includeLists = $.includeLists;
        this.name = $.name;
        this.namedToken = $.namedToken;
        this.pollRate = $.pollRate;
        this.projectServiceKeys = $.projectServiceKeys;
        this.services = $.services;
        this.useMetricSourceProjectForQuota = $.useMetricSourceProjectForQuota;
    }

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

    public static final class Builder {
        private IntegrationArgs $;

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

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

        /**
         * @param customMetricTypeDomains List of additional GCP service domain names that Splunk Observability Cloud will monitor. See [Custom Metric Type Domains documentation](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/#Custom-metric-type-domains)
         * 
         * @return builder
         * 
         */
        public Builder customMetricTypeDomains(@Nullable Output> customMetricTypeDomains) {
            $.customMetricTypeDomains = customMetricTypeDomains;
            return this;
        }

        /**
         * @param customMetricTypeDomains List of additional GCP service domain names that Splunk Observability Cloud will monitor. See [Custom Metric Type Domains documentation](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/#Custom-metric-type-domains)
         * 
         * @return builder
         * 
         */
        public Builder customMetricTypeDomains(List customMetricTypeDomains) {
            return customMetricTypeDomains(Output.of(customMetricTypeDomains));
        }

        /**
         * @param customMetricTypeDomains List of additional GCP service domain names that Splunk Observability Cloud will monitor. See [Custom Metric Type Domains documentation](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/#Custom-metric-type-domains)
         * 
         * @return builder
         * 
         */
        public Builder customMetricTypeDomains(String... customMetricTypeDomains) {
            return customMetricTypeDomains(List.of(customMetricTypeDomains));
        }

        /**
         * @param enabled Whether the integration is enabled.
         * 
         * @return builder
         * 
         */
        public Builder enabled(Output enabled) {
            $.enabled = enabled;
            return this;
        }

        /**
         * @param enabled Whether the integration is enabled.
         * 
         * @return builder
         * 
         */
        public Builder enabled(Boolean enabled) {
            return enabled(Output.of(enabled));
        }

        /**
         * @param importGcpMetrics If enabled, Splunk Observability Cloud will sync also Google Cloud Monitoring data. If disabled, Splunk Observability Cloud will import only metadata. Defaults to true.
         * 
         * @return builder
         * 
         */
        public Builder importGcpMetrics(@Nullable Output importGcpMetrics) {
            $.importGcpMetrics = importGcpMetrics;
            return this;
        }

        /**
         * @param importGcpMetrics If enabled, Splunk Observability Cloud will sync also Google Cloud Monitoring data. If disabled, Splunk Observability Cloud will import only metadata. Defaults to true.
         * 
         * @return builder
         * 
         */
        public Builder importGcpMetrics(Boolean importGcpMetrics) {
            return importGcpMetrics(Output.of(importGcpMetrics));
        }

        /**
         * @param includeLists [Compute Metadata Include List](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/).
         * 
         * @return builder
         * 
         */
        public Builder includeLists(@Nullable Output> includeLists) {
            $.includeLists = includeLists;
            return this;
        }

        /**
         * @param includeLists [Compute Metadata Include List](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/).
         * 
         * @return builder
         * 
         */
        public Builder includeLists(List includeLists) {
            return includeLists(Output.of(includeLists));
        }

        /**
         * @param includeLists [Compute Metadata Include List](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/).
         * 
         * @return builder
         * 
         */
        public Builder includeLists(String... includeLists) {
            return includeLists(List.of(includeLists));
        }

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

        /**
         * @param name Name of the integration.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param namedToken Name of the org token to be used for data ingestion. If not specified then default access token is used.
         * 
         * @return builder
         * 
         */
        public Builder namedToken(@Nullable Output namedToken) {
            $.namedToken = namedToken;
            return this;
        }

        /**
         * @param namedToken Name of the org token to be used for data ingestion. If not specified then default access token is used.
         * 
         * @return builder
         * 
         */
        public Builder namedToken(String namedToken) {
            return namedToken(Output.of(namedToken));
        }

        /**
         * @param pollRate GCP integration poll rate (in seconds). Value between `60` and `600`. Default: `300`.
         * 
         * @return builder
         * 
         */
        public Builder pollRate(@Nullable Output pollRate) {
            $.pollRate = pollRate;
            return this;
        }

        /**
         * @param pollRate GCP integration poll rate (in seconds). Value between `60` and `600`. Default: `300`.
         * 
         * @return builder
         * 
         */
        public Builder pollRate(Integer pollRate) {
            return pollRate(Output.of(pollRate));
        }

        /**
         * @param projectServiceKeys GCP projects to add.
         * 
         * @return builder
         * 
         */
        public Builder projectServiceKeys(@Nullable Output> projectServiceKeys) {
            $.projectServiceKeys = projectServiceKeys;
            return this;
        }

        /**
         * @param projectServiceKeys GCP projects to add.
         * 
         * @return builder
         * 
         */
        public Builder projectServiceKeys(List projectServiceKeys) {
            return projectServiceKeys(Output.of(projectServiceKeys));
        }

        /**
         * @param projectServiceKeys GCP projects to add.
         * 
         * @return builder
         * 
         */
        public Builder projectServiceKeys(IntegrationProjectServiceKeyArgs... projectServiceKeys) {
            return projectServiceKeys(List.of(projectServiceKeys));
        }

        /**
         * @param services GCP service metrics to import. Can be an empty list, or not included, to import 'All services'. See [Google Cloud Platform services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#google-cloud-platform-services) for a list of valid values.
         * 
         * @return builder
         * 
         */
        public Builder services(@Nullable Output> services) {
            $.services = services;
            return this;
        }

        /**
         * @param services GCP service metrics to import. Can be an empty list, or not included, to import 'All services'. See [Google Cloud Platform services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#google-cloud-platform-services) for a list of valid values.
         * 
         * @return builder
         * 
         */
        public Builder services(List services) {
            return services(Output.of(services));
        }

        /**
         * @param services GCP service metrics to import. Can be an empty list, or not included, to import 'All services'. See [Google Cloud Platform services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#google-cloud-platform-services) for a list of valid values.
         * 
         * @return builder
         * 
         */
        public Builder services(String... services) {
            return services(List.of(services));
        }

        /**
         * @param useMetricSourceProjectForQuota When this value is set to true Observability Cloud will force usage of a quota from the project where metrics are stored. For this to work the service account provided for the project needs to be provided with serviceusage.services.use permission or Service Usage Consumer role in this project. When set to false default quota settings are used.
         * 
         * @return builder
         * 
         */
        public Builder useMetricSourceProjectForQuota(@Nullable Output useMetricSourceProjectForQuota) {
            $.useMetricSourceProjectForQuota = useMetricSourceProjectForQuota;
            return this;
        }

        /**
         * @param useMetricSourceProjectForQuota When this value is set to true Observability Cloud will force usage of a quota from the project where metrics are stored. For this to work the service account provided for the project needs to be provided with serviceusage.services.use permission or Service Usage Consumer role in this project. When set to false default quota settings are used.
         * 
         * @return builder
         * 
         */
        public Builder useMetricSourceProjectForQuota(Boolean useMetricSourceProjectForQuota) {
            return useMetricSourceProjectForQuota(Output.of(useMetricSourceProjectForQuota));
        }

        public IntegrationArgs build() {
            if ($.enabled == null) {
                throw new MissingRequiredPropertyException("IntegrationArgs", "enabled");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy