@pulumi/signalfx
Version:
A Pulumi package for creating and managing SignalFx resources.
279 lines • 15.2 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* Splunk Observability Cloud GCP Integration.
*
* > **NOTE** When managing integrations, use a session token of an administrator to authenticate the Splunk Observability Cloud provider. See [Operations that require a session token for an administrator](https://dev.splunk.com/observability/docs/administration/authtokens#Operations-that-require-a-session-token-for-an-administrator). Otherwise you'll receive a 4xx error.
*
* ## Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as signalfx from "@pulumi/signalfx";
* import * as std from "@pulumi/std";
*
* const gcpMyteam = new signalfx.gcp.Integration("gcp_myteam", {
* name: "GCP - My Team",
* enabled: true,
* pollRate: 300,
* services: ["compute"],
* customMetricTypeDomains: ["istio.io"],
* importGcpMetrics: true,
* projectServiceKeys: [
* {
* projectId: "gcp_project_id_1",
* projectKey: std.file({
* input: "/path/to/gcp_credentials_1.json",
* }).result,
* },
* {
* projectId: "gcp_project_id_2",
* projectKey: std.file({
* input: "/path/to/gcp_credentials_2.json",
* }).result,
* },
* ],
* });
* ```
*/
export declare class Integration extends pulumi.CustomResource {
/**
* Get an existing Integration resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: IntegrationState, opts?: pulumi.CustomResourceOptions): Integration;
/**
* Returns true if the given object is an instance of Integration. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is Integration;
/**
* Authentication method to use in this integration. If empty, Splunk Observability backend defaults to SERVICE_ACCOUNT_KEY
*/
readonly authMethod: pulumi.Output<string | undefined>;
/**
* 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)
*/
readonly customMetricTypeDomains: pulumi.Output<string[] | undefined>;
/**
* Whether the integration is enabled.
*/
readonly enabled: pulumi.Output<boolean>;
/**
* List of label keys. GCP Compute Engine instances with any of these labels applied are excluded from metric sync. Requires the `compute.instances.list` permission on the project’s service account. Note: You shall specify GCP labels as they appear in GCP without the `gcp_label_` prefix.
*/
readonly excludeGceInstancesWithLabels: pulumi.Output<string[] | undefined>;
/**
* If enabled, Splunk Observability Cloud will sync also Google Cloud Monitoring data. If disabled, Splunk Observability Cloud will import only metadata. Defaults to true.
*/
readonly importGcpMetrics: pulumi.Output<boolean | undefined>;
/**
* [Compute Metadata Include List](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/).
*/
readonly includeLists: pulumi.Output<string[] | undefined>;
/**
* Name of the integration.
*/
readonly name: pulumi.Output<string>;
/**
* Name of the org token to be used for data ingestion. If not specified then default access token is used.
*/
readonly namedToken: pulumi.Output<string | undefined>;
/**
* GCP integration poll rate (in seconds). Value between `60` and `600`. Default: `300`.
*/
readonly pollRate: pulumi.Output<number | undefined>;
/**
* GCP projects to add.
*/
readonly projectServiceKeys: pulumi.Output<outputs.gcp.IntegrationProjectServiceKey[] | undefined>;
/**
* Please use `workloadIdentityFederationConfig` with `projects` instead.
*
* @deprecated Please use workloadIdentityFederationConfig with projects instead
*/
readonly projectWifConfigs: pulumi.Output<outputs.gcp.IntegrationProjectWifConfig[] | undefined>;
/**
* Object comprised of `syncMode` and optional `selectedProjectIds`. If you use `syncMode` `ALL_REACHABLE` then Splunk Observability Cloud will automatically discover GCP projects that the provided WIF principal has permissions to query. If `syncMode` is `SELECTED`, you need to provide a list of project ids in the `selectedProjectIds` field.
*/
readonly projects: pulumi.Output<outputs.gcp.IntegrationProjects | undefined>;
/**
* 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.
*/
readonly services: pulumi.Output<string[] | undefined>;
/**
* 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.
*/
readonly useMetricSourceProjectForQuota: pulumi.Output<boolean | undefined>;
/**
* The Splunk Observability GCP identity to include in GCP WIF provider definition.
*/
readonly wifSplunkIdentity: pulumi.Output<{
[key: string]: string;
}>;
/**
* Your Workload Identity Federation config. To easily set up WIF you can use helpers provided in the gcpWorkloadIdentityFederation repository.
*/
readonly workloadIdentityFederationConfig: pulumi.Output<string | undefined>;
/**
* Create a Integration resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: IntegrationArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering Integration resources.
*/
export interface IntegrationState {
/**
* Authentication method to use in this integration. If empty, Splunk Observability backend defaults to SERVICE_ACCOUNT_KEY
*/
authMethod?: pulumi.Input<string | undefined>;
/**
* 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)
*/
customMetricTypeDomains?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Whether the integration is enabled.
*/
enabled?: pulumi.Input<boolean | undefined>;
/**
* List of label keys. GCP Compute Engine instances with any of these labels applied are excluded from metric sync. Requires the `compute.instances.list` permission on the project’s service account. Note: You shall specify GCP labels as they appear in GCP without the `gcp_label_` prefix.
*/
excludeGceInstancesWithLabels?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* If enabled, Splunk Observability Cloud will sync also Google Cloud Monitoring data. If disabled, Splunk Observability Cloud will import only metadata. Defaults to true.
*/
importGcpMetrics?: pulumi.Input<boolean | undefined>;
/**
* [Compute Metadata Include List](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/).
*/
includeLists?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Name of the integration.
*/
name?: pulumi.Input<string | undefined>;
/**
* Name of the org token to be used for data ingestion. If not specified then default access token is used.
*/
namedToken?: pulumi.Input<string | undefined>;
/**
* GCP integration poll rate (in seconds). Value between `60` and `600`. Default: `300`.
*/
pollRate?: pulumi.Input<number | undefined>;
/**
* GCP projects to add.
*/
projectServiceKeys?: pulumi.Input<pulumi.Input<inputs.gcp.IntegrationProjectServiceKey>[] | undefined>;
/**
* Please use `workloadIdentityFederationConfig` with `projects` instead.
*
* @deprecated Please use workloadIdentityFederationConfig with projects instead
*/
projectWifConfigs?: pulumi.Input<pulumi.Input<inputs.gcp.IntegrationProjectWifConfig>[] | undefined>;
/**
* Object comprised of `syncMode` and optional `selectedProjectIds`. If you use `syncMode` `ALL_REACHABLE` then Splunk Observability Cloud will automatically discover GCP projects that the provided WIF principal has permissions to query. If `syncMode` is `SELECTED`, you need to provide a list of project ids in the `selectedProjectIds` field.
*/
projects?: pulumi.Input<inputs.gcp.IntegrationProjects | undefined>;
/**
* 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.
*/
services?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* 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.
*/
useMetricSourceProjectForQuota?: pulumi.Input<boolean | undefined>;
/**
* The Splunk Observability GCP identity to include in GCP WIF provider definition.
*/
wifSplunkIdentity?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
} | undefined>;
/**
* Your Workload Identity Federation config. To easily set up WIF you can use helpers provided in the gcpWorkloadIdentityFederation repository.
*/
workloadIdentityFederationConfig?: pulumi.Input<string | undefined>;
}
/**
* The set of arguments for constructing a Integration resource.
*/
export interface IntegrationArgs {
/**
* Authentication method to use in this integration. If empty, Splunk Observability backend defaults to SERVICE_ACCOUNT_KEY
*/
authMethod?: pulumi.Input<string | undefined>;
/**
* 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)
*/
customMetricTypeDomains?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Whether the integration is enabled.
*/
enabled: pulumi.Input<boolean>;
/**
* List of label keys. GCP Compute Engine instances with any of these labels applied are excluded from metric sync. Requires the `compute.instances.list` permission on the project’s service account. Note: You shall specify GCP labels as they appear in GCP without the `gcp_label_` prefix.
*/
excludeGceInstancesWithLabels?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* If enabled, Splunk Observability Cloud will sync also Google Cloud Monitoring data. If disabled, Splunk Observability Cloud will import only metadata. Defaults to true.
*/
importGcpMetrics?: pulumi.Input<boolean | undefined>;
/**
* [Compute Metadata Include List](https://dev.splunk.com/observability/docs/integrations/gcp_integration_overview/).
*/
includeLists?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Name of the integration.
*/
name?: pulumi.Input<string | undefined>;
/**
* Name of the org token to be used for data ingestion. If not specified then default access token is used.
*/
namedToken?: pulumi.Input<string | undefined>;
/**
* GCP integration poll rate (in seconds). Value between `60` and `600`. Default: `300`.
*/
pollRate?: pulumi.Input<number | undefined>;
/**
* GCP projects to add.
*/
projectServiceKeys?: pulumi.Input<pulumi.Input<inputs.gcp.IntegrationProjectServiceKey>[] | undefined>;
/**
* Please use `workloadIdentityFederationConfig` with `projects` instead.
*
* @deprecated Please use workloadIdentityFederationConfig with projects instead
*/
projectWifConfigs?: pulumi.Input<pulumi.Input<inputs.gcp.IntegrationProjectWifConfig>[] | undefined>;
/**
* Object comprised of `syncMode` and optional `selectedProjectIds`. If you use `syncMode` `ALL_REACHABLE` then Splunk Observability Cloud will automatically discover GCP projects that the provided WIF principal has permissions to query. If `syncMode` is `SELECTED`, you need to provide a list of project ids in the `selectedProjectIds` field.
*/
projects?: pulumi.Input<inputs.gcp.IntegrationProjects | undefined>;
/**
* 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.
*/
services?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* 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.
*/
useMetricSourceProjectForQuota?: pulumi.Input<boolean | undefined>;
/**
* The Splunk Observability GCP identity to include in GCP WIF provider definition.
*/
wifSplunkIdentity?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
} | undefined>;
/**
* Your Workload Identity Federation config. To easily set up WIF you can use helpers provided in the gcpWorkloadIdentityFederation repository.
*/
workloadIdentityFederationConfig?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=integration.d.ts.map