@pulumi/signalfx
Version:
A Pulumi package for creating and managing SignalFx resources.
368 lines (367 loc) • 24.2 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* AWS CloudWatch integrations for Splunk Observability Cloud. For help with this integration see [Monitoring Amazon Web Services](https://docs.splunk.com/observability/en/gdi/get-data-in/connect/aws/get-awstoc.html).
*
* This resource implements a part of a workflow. Use it with one of either `signalfx.aws.ExternalIntegration` or `signalfx.aws.TokenIntegration`.
*
* > **NOTE** When managing integrations, use a session token of an administrator to authenticate the Splunk Observability 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).
*
* ## Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* import * as signalfx from "@pulumi/signalfx";
*
* // This resource returns an account id in `external_id`…
* const awsMyteamExternal = new signalfx.aws.ExternalIntegration("aws_myteam_external", {name: "My AWS integration"});
* // Make yourself an AWS IAM role here, use `signalfx_aws_external_integration.aws_myteam_external.external_id`
* const awsSfxExample = new aws.index.IamRole("aws_sfx_example", {});
* const awsMyteam = new signalfx.aws.Integration("aws_myteam", {
* enabled: true,
* integrationId: awsMyteamExternal.id,
* externalId: awsMyteamExternal.externalId,
* roleArn: awsSfxRole.arn,
* regions: ["us-east-1"],
* pollRate: 300,
* importCloudWatch: true,
* enableAwsUsage: true,
* customNamespaceSyncRules: [{
* defaultAction: "Exclude",
* filterAction: "Include",
* filterSource: "filter('code', '200')",
* namespace: "my-custom-namespace",
* }],
* namespaceSyncRules: [{
* defaultAction: "Exclude",
* filterAction: "Include",
* filterSource: "filter('code', '200')",
* namespace: "AWS/EC2",
* }],
* metricStatsToSyncs: [{
* namespace: "AWS/EC2",
* metric: "NetworkPacketsIn",
* stats: ["upper"],
* }],
* });
* ```
*/
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;
/**
* The mechanism used to authenticate with AWS. Use one of `signalfx.aws.ExternalIntegration` or
* `signalfx.aws.TokenIntegration` to define this
*/
readonly authMethod: pulumi.Output<string>;
/**
* The integration will only ingest the recommended statistics published by AWS
*/
readonly collectOnlyRecommendedStats: pulumi.Output<boolean | undefined>;
/**
* List of custom AWS CloudWatch namespaces to monitor. Custom namespaces contain custom metrics that you define in AWS; Splunk Observability Cloud imports the metrics so you can monitor them.
*/
readonly customCloudwatchNamespaces: pulumi.Output<string[] | undefined>;
/**
* Each element controls the data collected by Splunk Observability Cloud for the specified namespace. Conflicts with the `customCloudwatchNamespaces` property.
*/
readonly customNamespaceSyncRules: pulumi.Output<outputs.aws.IntegrationCustomNamespaceSyncRule[] | undefined>;
/**
* Flag that controls how Splunk Observability Cloud imports usage metrics from AWS to use with AWS Cost Optimizer. If `true`, Splunk Observability Cloud imports the metrics.
*/
readonly enableAwsUsage: pulumi.Output<boolean | undefined>;
/**
* Controls how Splunk Observability Cloud checks for large amounts of data for this AWS integration. If `true`, Splunk Observability Cloud monitors the amount of data coming in from the integration.
*/
readonly enableCheckLargeVolume: pulumi.Output<boolean | undefined>;
/**
* Enable the AWS logs synchronization. Note that this requires the inclusion of `"logs:DescribeLogGroups"`, `"logs:DeleteSubscriptionFilter"`, `"logs:DescribeSubscriptionFilters"`, `"logs:PutSubscriptionFilter"`, and `"s3:GetBucketLogging"`, `"s3:GetBucketNotification"`, `"s3:PutBucketNotification"` permissions. Additional permissions may be required to capture logs from specific AWS services.
*/
readonly enableLogsSync: pulumi.Output<boolean>;
/**
* Whether the integration is enabled.
*/
readonly enabled: pulumi.Output<boolean>;
/**
* The `externalId` property from one of a `signalfx.aws.ExternalIntegration` or `signalfx.aws.TokenIntegration`
*/
readonly externalId: pulumi.Output<string | undefined>;
/**
* Flag that controls how Splunk Observability Cloud imports Cloud Watch metrics. If true, Splunk Observability Cloud imports Cloud Watch metrics from AWS.
*/
readonly importCloudWatch: pulumi.Output<boolean | undefined>;
/**
* The id of one of a `signalfx.aws.ExternalIntegration` or `signalfx.aws.TokenIntegration`.
*/
readonly integrationId: pulumi.Output<string>;
/**
* If you specify `authMethod = \"SecurityToken\"` in your request to create an AWS integration object, use this property to specify the key (this is typically equivalent to the `AWS_SECRET_ACCESS_KEY` environment variable).
*/
readonly key: pulumi.Output<string | undefined>;
/**
* Each element in the array is an object that contains an AWS namespace name, AWS metric name and a list of statistics that Splunk Observability Cloud collects for this metric. If you specify this property, Splunk Observability Cloud retrieves only specified AWS statistics when AWS metric streams are not used. When AWS metric streams are used this property specifies additional extended statistics to collect (please note that AWS metric streams API supports percentile stats only; other stats are ignored). If you don't specify this property, Splunk Observability Cloud retrieves the AWS standard set of statistics.
*/
readonly metricStatsToSyncs: pulumi.Output<outputs.aws.IntegrationMetricStatsToSync[] | undefined>;
/**
* If set to true, Splunk Observability Cloud accepts data from Metric Streams managed from the AWS console. The AWS account sending the Metric Streams and the AWS account in the Splunk Observability Cloud integration have to match. Requires `useMetricStreamsSync` set to true to work.
*/
readonly metricStreamsManagedExternally: pulumi.Output<boolean | 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>;
/**
* Each element in the array is an object that contains an AWS namespace name and a filter that controls the data that Splunk Observability Cloud collects for the namespace. Conflicts with the `services` property. If you don't specify either property, Splunk Observability Cloud syncs all data in all AWS namespaces.
*/
readonly namespaceSyncRules: pulumi.Output<outputs.aws.IntegrationNamespaceSyncRule[] | undefined>;
/**
* AWS poll rate (in seconds). Value between `60` and `600`. Default: `300`.
*/
readonly pollRate: pulumi.Output<number | undefined>;
/**
* List of AWS regions that Splunk Observability Cloud should monitor. It cannot be empty.
*/
readonly regions: pulumi.Output<string[]>;
/**
* Role ARN that you add to an existing AWS integration object. **Note**: Ensure you use the `arn` property of your role, not the id!
*/
readonly roleArn: pulumi.Output<string | undefined>;
/**
* List of AWS services that you want Splunk Observability Cloud to monitor. Each element is a string designating an AWS service. Can be an empty list to import data for all supported services. Conflicts with `namespaceSyncRule`. See [Amazon Web Services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#amazon-web-services) for a list of valid values.
*/
readonly services: pulumi.Output<string[] | undefined>;
/**
* Indicates that Splunk Observability Cloud should sync metrics and metadata from custom AWS namespaces only (see the `customNamespaceSyncRule` above). Defaults to `false`.
*/
readonly syncCustomNamespacesOnly: pulumi.Output<boolean | undefined>;
/**
* If you specify `authMethod = \"SecurityToken\"` in your request to create an AWS integration object, use this property to specify the token (this is typically equivalent to the `AWS_ACCESS_KEY_ID` environment variable).
*/
readonly token: pulumi.Output<string | undefined>;
/**
* Enable the use of Amazon Cloudwatch Metric Streams for ingesting metrics.<br> Note that this requires the inclusion of `"cloudwatch:ListMetricStreams"`,`"cloudwatch:GetMetricStream"`, `"cloudwatch:PutMetricStream"`, `"cloudwatch:DeleteMetricStream"`, `"cloudwatch:StartMetricStreams"`, `"cloudwatch:StopMetricStreams"` and `"iam:PassRole"` permissions.<br> Note you need to deploy additional resources on your AWS account to enable CloudWatch metrics streaming. Select one of the [CloudFormation templates](https://docs.splunk.com/Observability/gdi/get-data-in/connect/aws/aws-cloudformation.html) to deploy all the required resources.
*/
readonly useMetricStreamsSync: pulumi.Output<boolean>;
/**
* 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 {
/**
* The mechanism used to authenticate with AWS. Use one of `signalfx.aws.ExternalIntegration` or
* `signalfx.aws.TokenIntegration` to define this
*/
authMethod?: pulumi.Input<string>;
/**
* The integration will only ingest the recommended statistics published by AWS
*/
collectOnlyRecommendedStats?: pulumi.Input<boolean>;
/**
* List of custom AWS CloudWatch namespaces to monitor. Custom namespaces contain custom metrics that you define in AWS; Splunk Observability Cloud imports the metrics so you can monitor them.
*/
customCloudwatchNamespaces?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Each element controls the data collected by Splunk Observability Cloud for the specified namespace. Conflicts with the `customCloudwatchNamespaces` property.
*/
customNamespaceSyncRules?: pulumi.Input<pulumi.Input<inputs.aws.IntegrationCustomNamespaceSyncRule>[]>;
/**
* Flag that controls how Splunk Observability Cloud imports usage metrics from AWS to use with AWS Cost Optimizer. If `true`, Splunk Observability Cloud imports the metrics.
*/
enableAwsUsage?: pulumi.Input<boolean>;
/**
* Controls how Splunk Observability Cloud checks for large amounts of data for this AWS integration. If `true`, Splunk Observability Cloud monitors the amount of data coming in from the integration.
*/
enableCheckLargeVolume?: pulumi.Input<boolean>;
/**
* Enable the AWS logs synchronization. Note that this requires the inclusion of `"logs:DescribeLogGroups"`, `"logs:DeleteSubscriptionFilter"`, `"logs:DescribeSubscriptionFilters"`, `"logs:PutSubscriptionFilter"`, and `"s3:GetBucketLogging"`, `"s3:GetBucketNotification"`, `"s3:PutBucketNotification"` permissions. Additional permissions may be required to capture logs from specific AWS services.
*/
enableLogsSync?: pulumi.Input<boolean>;
/**
* Whether the integration is enabled.
*/
enabled?: pulumi.Input<boolean>;
/**
* The `externalId` property from one of a `signalfx.aws.ExternalIntegration` or `signalfx.aws.TokenIntegration`
*/
externalId?: pulumi.Input<string>;
/**
* Flag that controls how Splunk Observability Cloud imports Cloud Watch metrics. If true, Splunk Observability Cloud imports Cloud Watch metrics from AWS.
*/
importCloudWatch?: pulumi.Input<boolean>;
/**
* The id of one of a `signalfx.aws.ExternalIntegration` or `signalfx.aws.TokenIntegration`.
*/
integrationId?: pulumi.Input<string>;
/**
* If you specify `authMethod = \"SecurityToken\"` in your request to create an AWS integration object, use this property to specify the key (this is typically equivalent to the `AWS_SECRET_ACCESS_KEY` environment variable).
*/
key?: pulumi.Input<string>;
/**
* Each element in the array is an object that contains an AWS namespace name, AWS metric name and a list of statistics that Splunk Observability Cloud collects for this metric. If you specify this property, Splunk Observability Cloud retrieves only specified AWS statistics when AWS metric streams are not used. When AWS metric streams are used this property specifies additional extended statistics to collect (please note that AWS metric streams API supports percentile stats only; other stats are ignored). If you don't specify this property, Splunk Observability Cloud retrieves the AWS standard set of statistics.
*/
metricStatsToSyncs?: pulumi.Input<pulumi.Input<inputs.aws.IntegrationMetricStatsToSync>[]>;
/**
* If set to true, Splunk Observability Cloud accepts data from Metric Streams managed from the AWS console. The AWS account sending the Metric Streams and the AWS account in the Splunk Observability Cloud integration have to match. Requires `useMetricStreamsSync` set to true to work.
*/
metricStreamsManagedExternally?: pulumi.Input<boolean>;
/**
* Name of the integration.
*/
name?: pulumi.Input<string>;
/**
* Name of the org token to be used for data ingestion. If not specified then default access token is used.
*/
namedToken?: pulumi.Input<string>;
/**
* Each element in the array is an object that contains an AWS namespace name and a filter that controls the data that Splunk Observability Cloud collects for the namespace. Conflicts with the `services` property. If you don't specify either property, Splunk Observability Cloud syncs all data in all AWS namespaces.
*/
namespaceSyncRules?: pulumi.Input<pulumi.Input<inputs.aws.IntegrationNamespaceSyncRule>[]>;
/**
* AWS poll rate (in seconds). Value between `60` and `600`. Default: `300`.
*/
pollRate?: pulumi.Input<number>;
/**
* List of AWS regions that Splunk Observability Cloud should monitor. It cannot be empty.
*/
regions?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Role ARN that you add to an existing AWS integration object. **Note**: Ensure you use the `arn` property of your role, not the id!
*/
roleArn?: pulumi.Input<string>;
/**
* List of AWS services that you want Splunk Observability Cloud to monitor. Each element is a string designating an AWS service. Can be an empty list to import data for all supported services. Conflicts with `namespaceSyncRule`. See [Amazon Web Services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#amazon-web-services) for a list of valid values.
*/
services?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Indicates that Splunk Observability Cloud should sync metrics and metadata from custom AWS namespaces only (see the `customNamespaceSyncRule` above). Defaults to `false`.
*/
syncCustomNamespacesOnly?: pulumi.Input<boolean>;
/**
* If you specify `authMethod = \"SecurityToken\"` in your request to create an AWS integration object, use this property to specify the token (this is typically equivalent to the `AWS_ACCESS_KEY_ID` environment variable).
*/
token?: pulumi.Input<string>;
/**
* Enable the use of Amazon Cloudwatch Metric Streams for ingesting metrics.<br> Note that this requires the inclusion of `"cloudwatch:ListMetricStreams"`,`"cloudwatch:GetMetricStream"`, `"cloudwatch:PutMetricStream"`, `"cloudwatch:DeleteMetricStream"`, `"cloudwatch:StartMetricStreams"`, `"cloudwatch:StopMetricStreams"` and `"iam:PassRole"` permissions.<br> Note you need to deploy additional resources on your AWS account to enable CloudWatch metrics streaming. Select one of the [CloudFormation templates](https://docs.splunk.com/Observability/gdi/get-data-in/connect/aws/aws-cloudformation.html) to deploy all the required resources.
*/
useMetricStreamsSync?: pulumi.Input<boolean>;
}
/**
* The set of arguments for constructing a Integration resource.
*/
export interface IntegrationArgs {
/**
* The integration will only ingest the recommended statistics published by AWS
*/
collectOnlyRecommendedStats?: pulumi.Input<boolean>;
/**
* List of custom AWS CloudWatch namespaces to monitor. Custom namespaces contain custom metrics that you define in AWS; Splunk Observability Cloud imports the metrics so you can monitor them.
*/
customCloudwatchNamespaces?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Each element controls the data collected by Splunk Observability Cloud for the specified namespace. Conflicts with the `customCloudwatchNamespaces` property.
*/
customNamespaceSyncRules?: pulumi.Input<pulumi.Input<inputs.aws.IntegrationCustomNamespaceSyncRule>[]>;
/**
* Flag that controls how Splunk Observability Cloud imports usage metrics from AWS to use with AWS Cost Optimizer. If `true`, Splunk Observability Cloud imports the metrics.
*/
enableAwsUsage?: pulumi.Input<boolean>;
/**
* Controls how Splunk Observability Cloud checks for large amounts of data for this AWS integration. If `true`, Splunk Observability Cloud monitors the amount of data coming in from the integration.
*/
enableCheckLargeVolume?: pulumi.Input<boolean>;
/**
* Enable the AWS logs synchronization. Note that this requires the inclusion of `"logs:DescribeLogGroups"`, `"logs:DeleteSubscriptionFilter"`, `"logs:DescribeSubscriptionFilters"`, `"logs:PutSubscriptionFilter"`, and `"s3:GetBucketLogging"`, `"s3:GetBucketNotification"`, `"s3:PutBucketNotification"` permissions. Additional permissions may be required to capture logs from specific AWS services.
*/
enableLogsSync?: pulumi.Input<boolean>;
/**
* Whether the integration is enabled.
*/
enabled: pulumi.Input<boolean>;
/**
* The `externalId` property from one of a `signalfx.aws.ExternalIntegration` or `signalfx.aws.TokenIntegration`
*/
externalId?: pulumi.Input<string>;
/**
* Flag that controls how Splunk Observability Cloud imports Cloud Watch metrics. If true, Splunk Observability Cloud imports Cloud Watch metrics from AWS.
*/
importCloudWatch?: pulumi.Input<boolean>;
/**
* The id of one of a `signalfx.aws.ExternalIntegration` or `signalfx.aws.TokenIntegration`.
*/
integrationId: pulumi.Input<string>;
/**
* If you specify `authMethod = \"SecurityToken\"` in your request to create an AWS integration object, use this property to specify the key (this is typically equivalent to the `AWS_SECRET_ACCESS_KEY` environment variable).
*/
key?: pulumi.Input<string>;
/**
* Each element in the array is an object that contains an AWS namespace name, AWS metric name and a list of statistics that Splunk Observability Cloud collects for this metric. If you specify this property, Splunk Observability Cloud retrieves only specified AWS statistics when AWS metric streams are not used. When AWS metric streams are used this property specifies additional extended statistics to collect (please note that AWS metric streams API supports percentile stats only; other stats are ignored). If you don't specify this property, Splunk Observability Cloud retrieves the AWS standard set of statistics.
*/
metricStatsToSyncs?: pulumi.Input<pulumi.Input<inputs.aws.IntegrationMetricStatsToSync>[]>;
/**
* If set to true, Splunk Observability Cloud accepts data from Metric Streams managed from the AWS console. The AWS account sending the Metric Streams and the AWS account in the Splunk Observability Cloud integration have to match. Requires `useMetricStreamsSync` set to true to work.
*/
metricStreamsManagedExternally?: pulumi.Input<boolean>;
/**
* Name of the org token to be used for data ingestion. If not specified then default access token is used.
*/
namedToken?: pulumi.Input<string>;
/**
* Each element in the array is an object that contains an AWS namespace name and a filter that controls the data that Splunk Observability Cloud collects for the namespace. Conflicts with the `services` property. If you don't specify either property, Splunk Observability Cloud syncs all data in all AWS namespaces.
*/
namespaceSyncRules?: pulumi.Input<pulumi.Input<inputs.aws.IntegrationNamespaceSyncRule>[]>;
/**
* AWS poll rate (in seconds). Value between `60` and `600`. Default: `300`.
*/
pollRate?: pulumi.Input<number>;
/**
* List of AWS regions that Splunk Observability Cloud should monitor. It cannot be empty.
*/
regions: pulumi.Input<pulumi.Input<string>[]>;
/**
* Role ARN that you add to an existing AWS integration object. **Note**: Ensure you use the `arn` property of your role, not the id!
*/
roleArn?: pulumi.Input<string>;
/**
* List of AWS services that you want Splunk Observability Cloud to monitor. Each element is a string designating an AWS service. Can be an empty list to import data for all supported services. Conflicts with `namespaceSyncRule`. See [Amazon Web Services](https://docs.splunk.com/Observability/gdi/get-data-in/integrations.html#amazon-web-services) for a list of valid values.
*/
services?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Indicates that Splunk Observability Cloud should sync metrics and metadata from custom AWS namespaces only (see the `customNamespaceSyncRule` above). Defaults to `false`.
*/
syncCustomNamespacesOnly?: pulumi.Input<boolean>;
/**
* If you specify `authMethod = \"SecurityToken\"` in your request to create an AWS integration object, use this property to specify the token (this is typically equivalent to the `AWS_ACCESS_KEY_ID` environment variable).
*/
token?: pulumi.Input<string>;
/**
* Enable the use of Amazon Cloudwatch Metric Streams for ingesting metrics.<br> Note that this requires the inclusion of `"cloudwatch:ListMetricStreams"`,`"cloudwatch:GetMetricStream"`, `"cloudwatch:PutMetricStream"`, `"cloudwatch:DeleteMetricStream"`, `"cloudwatch:StartMetricStreams"`, `"cloudwatch:StopMetricStreams"` and `"iam:PassRole"` permissions.<br> Note you need to deploy additional resources on your AWS account to enable CloudWatch metrics streaming. Select one of the [CloudFormation templates](https://docs.splunk.com/Observability/gdi/get-data-in/connect/aws/aws-cloudformation.html) to deploy all the required resources.
*/
useMetricStreamsSync?: pulumi.Input<boolean>;
}