aws

package
v2.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2020 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ExternalIntegration

type ExternalIntegration struct {
	pulumi.CustomResourceState

	// The external ID to use with your IAM role and with `aws.Integration`.
	ExternalId pulumi.StringOutput `pulumi:"externalId"`
	// The name of this integration
	Name pulumi.StringOutput `pulumi:"name"`
	// A named token to use for ingest
	NamedToken pulumi.StringPtrOutput `pulumi:"namedToken"`
	// The AWS Account ARN to use with your policies/roles, provided by SignalFx.
	SignalfxAwsAccount pulumi.StringOutput `pulumi:"signalfxAwsAccount"`
}

SignalFx AWS CloudWatch integrations using Role ARNs. For help with this integration see [Connect to AWS CloudWatch](https://docs.signalfx.com/en/latest/integrations/amazon-web-services.html#connect-to-aws).

> **NOTE** When managing integrations you'll need to use an admin token to authenticate the SignalFx provider.

> **WARNING** This resource implements a part of a workflow. You must use it with `aws.Integration`. Check with SignalFx support for your realm's AWS account id.

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/iam"
"github.com/pulumi/pulumi-signalfx/sdk/v2/go/signalfx/aws"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		awsMyteamExtern, err := aws.NewExternalIntegration(ctx, "awsMyteamExtern", nil)
		if err != nil {
			return err
		}
		awsSfxRole, err := iam.NewRole(ctx, "awsSfxRole", &iam.RoleArgs{
			Description: pulumi.String("signalfx integration to read out data and send it to signalfxs aws account"),
			AssumeRolePolicy: signalfxAssumePolicy.ApplyT(func(signalfxAssumePolicy iam.GetPolicyDocumentResult) (string, error) {
				return signalfxAssumePolicy.Json, nil
			}).(pulumi.StringOutput),
		})
		if err != nil {
			return err
		}
		awsReadPermissions, err := iam.NewPolicy(ctx, "awsReadPermissions", &iam.PolicyArgs{
			Description: pulumi.String("farts"),
			Policy: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "	\"Version\": \"2012-10-17\",\n", "	\"Statement\": [\n", "		{\n", "			\"Action\": [\n", "				\"dynamodb:ListTables\",\n", "		    \"dynamodb:DescribeTable\",\n", "		    \"dynamodb:ListTagsOfResource\",\n", "		    \"ec2:DescribeInstances\",\n", "		    \"ec2:DescribeInstanceStatus\",\n", "		    \"ec2:DescribeVolumes\",\n", "		    \"ec2:DescribeReservedInstances\",\n", "		    \"ec2:DescribeReservedInstancesModifications\",\n", "		    \"ec2:DescribeTags\",\n", "		    \"organizations:DescribeOrganization\",\n", "		    \"cloudwatch:ListMetrics\",\n", "		    \"cloudwatch:GetMetricData\",\n", "		    \"cloudwatch:GetMetricStatistics\",\n", "		    \"cloudwatch:DescribeAlarms\",\n", "		    \"sqs:ListQueues\",\n", "		    \"sqs:GetQueueAttributes\",\n", "		    \"sqs:ListQueueTags\",\n", "		    \"elasticmapreduce:ListClusters\",\n", "		    \"elasticmapreduce:DescribeCluster\",\n", "		    \"kinesis:ListShards\",\n", "		    \"kinesis:ListStreams\",\n", "		    \"kinesis:DescribeStream\",\n", "		    \"kinesis:ListTagsForStream\",\n", "		    \"rds:DescribeDBInstances\",\n", "		    \"rds:ListTagsForResource\",\n", "		    \"elasticloadbalancing:DescribeLoadBalancers\",\n", "		    \"elasticloadbalancing:DescribeTags\",\n", "		    \"elasticache:describeCacheClusters\",\n", "		    \"redshift:DescribeClusters\",\n", "		    \"lambda:GetAlias\",\n", "		    \"lambda:ListFunctions\",\n", "		    \"lambda:ListTags\",\n", "		    \"autoscaling:DescribeAutoScalingGroups\",\n", "		    \"s3:ListAllMyBuckets\",\n", "		    \"s3:ListBucket\",\n", "		    \"s3:GetBucketLocation\",\n", "		    \"s3:GetBucketTagging\",\n", "		    \"ecs:ListServices\",\n", "		    \"ecs:ListTasks\",\n", "		    \"ecs:DescribeTasks\",\n", "		    \"ecs:DescribeServices\",\n", "		    \"ecs:ListClusters\",\n", "		    \"ecs:DescribeClusters\",\n", "		    \"ecs:ListTaskDefinitions\",\n", "		    \"ecs:ListTagsForResource\",\n", "		    \"apigateway:GET\",\n", "		    \"cloudfront:ListDistributions\",\n", "		    \"cloudfront:ListTagsForResource\",\n", "		    \"tag:GetResources\",\n", "		    \"es:ListDomainNames\",\n", "		    \"es:DescribeElasticsearchDomain\"\n", "			],\n", "			\"Effect\": \"Allow\",\n", "			\"Resource\": \"*\"\n", "		}\n", "	]\n", "}\n")),
		})
		if err != nil {
			return err
		}
		_, err = iam.NewRolePolicyAttachment(ctx, "sfx_read_attach", &iam.RolePolicyAttachmentArgs{
			Role:      awsSfxRole.Name,
			PolicyArn: awsReadPermissions.Arn,
		})
		if err != nil {
			return err
		}
		_, err = aws.NewIntegration(ctx, "awsMyteam", &aws.IntegrationArgs{
			Enabled:       pulumi.Bool(true),
			IntegrationId: awsMyteamExtern.ID(),
			ExternalId:    awsMyteamExtern.ExternalId,
			RoleArn:       awsSfxRole.Arn,
			Regions: pulumi.StringArray{
				pulumi.String("us-east-1"),
			},
			PollRate:         pulumi.Int(300),
			ImportCloudWatch: pulumi.Bool(true),
			EnableAwsUsage:   pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetExternalIntegration

func GetExternalIntegration(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ExternalIntegrationState, opts ...pulumi.ResourceOption) (*ExternalIntegration, error)

GetExternalIntegration gets an existing ExternalIntegration resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewExternalIntegration

func NewExternalIntegration(ctx *pulumi.Context,
	name string, args *ExternalIntegrationArgs, opts ...pulumi.ResourceOption) (*ExternalIntegration, error)

NewExternalIntegration registers a new resource with the given unique name, arguments, and options.

type ExternalIntegrationArgs

type ExternalIntegrationArgs struct {
	// The name of this integration
	Name pulumi.StringPtrInput
	// A named token to use for ingest
	NamedToken pulumi.StringPtrInput
}

The set of arguments for constructing a ExternalIntegration resource.

func (ExternalIntegrationArgs) ElementType

func (ExternalIntegrationArgs) ElementType() reflect.Type

type ExternalIntegrationState

type ExternalIntegrationState struct {
	// The external ID to use with your IAM role and with `aws.Integration`.
	ExternalId pulumi.StringPtrInput
	// The name of this integration
	Name pulumi.StringPtrInput
	// A named token to use for ingest
	NamedToken pulumi.StringPtrInput
	// The AWS Account ARN to use with your policies/roles, provided by SignalFx.
	SignalfxAwsAccount pulumi.StringPtrInput
}

func (ExternalIntegrationState) ElementType

func (ExternalIntegrationState) ElementType() reflect.Type

type GetServicesArgs added in v2.4.0

type GetServicesArgs struct {
	Services []GetServicesService `pulumi:"services"`
}

A collection of arguments for invoking getServices.

type GetServicesResult added in v2.4.0

type GetServicesResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id       string               `pulumi:"id"`
	Services []GetServicesService `pulumi:"services"`
}

A collection of values returned by getServices.

func GetServices added in v2.4.0

func GetServices(ctx *pulumi.Context, args *GetServicesArgs, opts ...pulumi.InvokeOption) (*GetServicesResult, error)

Use this data source to get a list of AWS service names.

type GetServicesService added in v2.4.0

type GetServicesService struct {
	Name string `pulumi:"name"`
}

type GetServicesServiceArgs added in v2.4.0

type GetServicesServiceArgs struct {
	Name pulumi.StringInput `pulumi:"name"`
}

func (GetServicesServiceArgs) ElementType added in v2.4.0

func (GetServicesServiceArgs) ElementType() reflect.Type

func (GetServicesServiceArgs) ToGetServicesServiceOutput added in v2.4.0

func (i GetServicesServiceArgs) ToGetServicesServiceOutput() GetServicesServiceOutput

func (GetServicesServiceArgs) ToGetServicesServiceOutputWithContext added in v2.4.0

func (i GetServicesServiceArgs) ToGetServicesServiceOutputWithContext(ctx context.Context) GetServicesServiceOutput

type GetServicesServiceArray added in v2.4.0

type GetServicesServiceArray []GetServicesServiceInput

func (GetServicesServiceArray) ElementType added in v2.4.0

func (GetServicesServiceArray) ElementType() reflect.Type

func (GetServicesServiceArray) ToGetServicesServiceArrayOutput added in v2.4.0

func (i GetServicesServiceArray) ToGetServicesServiceArrayOutput() GetServicesServiceArrayOutput

func (GetServicesServiceArray) ToGetServicesServiceArrayOutputWithContext added in v2.4.0

func (i GetServicesServiceArray) ToGetServicesServiceArrayOutputWithContext(ctx context.Context) GetServicesServiceArrayOutput

type GetServicesServiceArrayInput added in v2.4.0

type GetServicesServiceArrayInput interface {
	pulumi.Input

	ToGetServicesServiceArrayOutput() GetServicesServiceArrayOutput
	ToGetServicesServiceArrayOutputWithContext(context.Context) GetServicesServiceArrayOutput
}

GetServicesServiceArrayInput is an input type that accepts GetServicesServiceArray and GetServicesServiceArrayOutput values. You can construct a concrete instance of `GetServicesServiceArrayInput` via:

GetServicesServiceArray{ GetServicesServiceArgs{...} }

type GetServicesServiceArrayOutput added in v2.4.0

type GetServicesServiceArrayOutput struct{ *pulumi.OutputState }

func (GetServicesServiceArrayOutput) ElementType added in v2.4.0

func (GetServicesServiceArrayOutput) Index added in v2.4.0

func (GetServicesServiceArrayOutput) ToGetServicesServiceArrayOutput added in v2.4.0

func (o GetServicesServiceArrayOutput) ToGetServicesServiceArrayOutput() GetServicesServiceArrayOutput

func (GetServicesServiceArrayOutput) ToGetServicesServiceArrayOutputWithContext added in v2.4.0

func (o GetServicesServiceArrayOutput) ToGetServicesServiceArrayOutputWithContext(ctx context.Context) GetServicesServiceArrayOutput

type GetServicesServiceInput added in v2.4.0

type GetServicesServiceInput interface {
	pulumi.Input

	ToGetServicesServiceOutput() GetServicesServiceOutput
	ToGetServicesServiceOutputWithContext(context.Context) GetServicesServiceOutput
}

GetServicesServiceInput is an input type that accepts GetServicesServiceArgs and GetServicesServiceOutput values. You can construct a concrete instance of `GetServicesServiceInput` via:

GetServicesServiceArgs{...}

type GetServicesServiceOutput added in v2.4.0

type GetServicesServiceOutput struct{ *pulumi.OutputState }

func (GetServicesServiceOutput) ElementType added in v2.4.0

func (GetServicesServiceOutput) ElementType() reflect.Type

func (GetServicesServiceOutput) Name added in v2.4.0

func (GetServicesServiceOutput) ToGetServicesServiceOutput added in v2.4.0

func (o GetServicesServiceOutput) ToGetServicesServiceOutput() GetServicesServiceOutput

func (GetServicesServiceOutput) ToGetServicesServiceOutputWithContext added in v2.4.0

func (o GetServicesServiceOutput) ToGetServicesServiceOutputWithContext(ctx context.Context) GetServicesServiceOutput

type Integration

type Integration struct {
	pulumi.CustomResourceState

	// List of custom AWS CloudWatch namespaces to monitor. Custom namespaces contain custom metrics that you define in AWS; SignalFx imports the metrics so you can monitor them.
	CustomCloudwatchNamespaces pulumi.StringArrayOutput `pulumi:"customCloudwatchNamespaces"`
	// Each element controls the data collected by SignalFx for the specified namespace. Conflicts with the `customCloudwatchNamespaces` property.
	CustomNamespaceSyncRules IntegrationCustomNamespaceSyncRuleArrayOutput `pulumi:"customNamespaceSyncRules"`
	// Flag that controls how SignalFx imports usage metrics from AWS to use with AWS Cost Optimizer. If `true`, SignalFx imports the metrics.
	EnableAwsUsage pulumi.BoolPtrOutput `pulumi:"enableAwsUsage"`
	// Whether the integration is enabled.
	Enabled pulumi.BoolOutput `pulumi:"enabled"`
	// The `externalId` property from one of a `aws.ExternalIntegration` or `aws.TokenIntegration`
	ExternalId pulumi.StringPtrOutput `pulumi:"externalId"`
	// Flag that controls how SignalFx imports Cloud Watch metrics. If true, SignalFx imports Cloud Watch metrics from AWS.
	ImportCloudWatch pulumi.BoolPtrOutput `pulumi:"importCloudWatch"`
	// The id of one of a `aws.ExternalIntegration` or `aws.TokenIntegration`.
	IntegrationId pulumi.StringOutput `pulumi:"integrationId"`
	// If you specify `authMethod = \"SecurityToken\"` in your request to create an AWS integration object, use this property to specify the key.
	Key pulumi.StringPtrOutput `pulumi:"key"`
	// Each element in the array is an object that contains an AWS namespace name and a filter that controls the data that SignalFx collects for the namespace. Conflicts with the `services` property. If you don't specify either property, SignalFx syncs all data in all AWS namespaces.
	NamespaceSyncRules IntegrationNamespaceSyncRuleArrayOutput `pulumi:"namespaceSyncRules"`
	// AWS poll rate (in seconds). One of `60` or `300`.
	PollRate pulumi.IntPtrOutput `pulumi:"pollRate"`
	// List of AWS regions that SignalFx should monitor.
	Regions pulumi.StringArrayOutput `pulumi:"regions"`
	// 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.StringPtrOutput `pulumi:"roleArn"`
	// List of AWS services that you want SignalFx to monitor. Each element is a string designating an AWS service. Conflicts with `namespaceSyncRule`. See the documentation for [Creating Integrations](https://developers.signalfx.com/integrations_reference.html#operation/Create%20Integration) for valida values.
	Services pulumi.StringArrayOutput `pulumi:"services"`
	// Used with `signalfx_aws_token_integration`. Use this property to specify the token.
	Token pulumi.StringPtrOutput `pulumi:"token"`
	// Enable the use of Amazon's `GetMetricData` for collecting metrics. Note that this requires the inclusion of the `"cloudwatch:GetMetricData"` permission.
	UseGetMetricDataMethod pulumi.BoolPtrOutput `pulumi:"useGetMetricDataMethod"`
}

SignalFx AWS CloudWatch integrations. For help with this integration see [Monitoring Amazon Web Services](https://docs.signalfx.com/en/latest/integrations/amazon-web-services.html#monitor-amazon-web-services).

> **NOTE** When managing integrations you'll need to use an admin token to authenticate the SignalFx provider.

> **WARNING** This resource implements a part of a workflow. You must use it with one of either `aws.ExternalIntegration` or `aws.TokenIntegration`.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/iam"
"github.com/pulumi/pulumi-signalfx/sdk/v2/go/signalfx/aws"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		awsMyteamExternal, err := aws.NewExternalIntegration(ctx, "awsMyteamExternal", nil)
		if err != nil {
			return err
		}
		awsSfxRole, err := iam.NewRole(ctx, "awsSfxRole", nil)
		if err != nil {
			return err
		}
		_, err = aws.NewIntegration(ctx, "awsMyteam", &aws.IntegrationArgs{
			Enabled:       pulumi.Bool(true),
			IntegrationId: awsMyteamExternal.ID(),
			ExternalId:    awsMyteamExternal.ExternalId,
			RoleArn:       awsSfxRole.Arn,
			Regions: pulumi.StringArray{
				pulumi.String("us-east-1"),
			},
			PollRate:         pulumi.Int(300),
			ImportCloudWatch: pulumi.Bool(true),
			EnableAwsUsage:   pulumi.Bool(true),
			CustomNamespaceSyncRules: aws.IntegrationCustomNamespaceSyncRuleArray{
				&aws.IntegrationCustomNamespaceSyncRuleArgs{
					DefaultAction: pulumi.String("Exclude"),
					FilterAction:  pulumi.String("Include"),
					FilterSource:  pulumi.String("filter('code', '200')"),
					Namespace:     pulumi.String("fart"),
				},
			},
			NamespaceSyncRules: aws.IntegrationNamespaceSyncRuleArray{
				&aws.IntegrationNamespaceSyncRuleArgs{
					DefaultAction: pulumi.String("Exclude"),
					FilterAction:  pulumi.String("Include"),
					FilterSource:  pulumi.String("filter('code', '200')"),
					Namespace:     pulumi.String("AWS/EC2"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## Service Names

> **NOTE** You can use the data source "aws.getServices" to specify all services.

func GetIntegration

func GetIntegration(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *IntegrationState, opts ...pulumi.ResourceOption) (*Integration, error)

GetIntegration gets an existing Integration resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewIntegration

func NewIntegration(ctx *pulumi.Context,
	name string, args *IntegrationArgs, opts ...pulumi.ResourceOption) (*Integration, error)

NewIntegration registers a new resource with the given unique name, arguments, and options.

type IntegrationArgs

type IntegrationArgs struct {
	// List of custom AWS CloudWatch namespaces to monitor. Custom namespaces contain custom metrics that you define in AWS; SignalFx imports the metrics so you can monitor them.
	CustomCloudwatchNamespaces pulumi.StringArrayInput
	// Each element controls the data collected by SignalFx for the specified namespace. Conflicts with the `customCloudwatchNamespaces` property.
	CustomNamespaceSyncRules IntegrationCustomNamespaceSyncRuleArrayInput
	// Flag that controls how SignalFx imports usage metrics from AWS to use with AWS Cost Optimizer. If `true`, SignalFx imports the metrics.
	EnableAwsUsage pulumi.BoolPtrInput
	// Whether the integration is enabled.
	Enabled pulumi.BoolInput
	// The `externalId` property from one of a `aws.ExternalIntegration` or `aws.TokenIntegration`
	ExternalId pulumi.StringPtrInput
	// Flag that controls how SignalFx imports Cloud Watch metrics. If true, SignalFx imports Cloud Watch metrics from AWS.
	ImportCloudWatch pulumi.BoolPtrInput
	// The id of one of a `aws.ExternalIntegration` or `aws.TokenIntegration`.
	IntegrationId pulumi.StringInput
	// If you specify `authMethod = \"SecurityToken\"` in your request to create an AWS integration object, use this property to specify the key.
	Key pulumi.StringPtrInput
	// Each element in the array is an object that contains an AWS namespace name and a filter that controls the data that SignalFx collects for the namespace. Conflicts with the `services` property. If you don't specify either property, SignalFx syncs all data in all AWS namespaces.
	NamespaceSyncRules IntegrationNamespaceSyncRuleArrayInput
	// AWS poll rate (in seconds). One of `60` or `300`.
	PollRate pulumi.IntPtrInput
	// List of AWS regions that SignalFx should monitor.
	Regions pulumi.StringArrayInput
	// 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.StringPtrInput
	// List of AWS services that you want SignalFx to monitor. Each element is a string designating an AWS service. Conflicts with `namespaceSyncRule`. See the documentation for [Creating Integrations](https://developers.signalfx.com/integrations_reference.html#operation/Create%20Integration) for valida values.
	Services pulumi.StringArrayInput
	// Used with `signalfx_aws_token_integration`. Use this property to specify the token.
	Token pulumi.StringPtrInput
	// Enable the use of Amazon's `GetMetricData` for collecting metrics. Note that this requires the inclusion of the `"cloudwatch:GetMetricData"` permission.
	UseGetMetricDataMethod pulumi.BoolPtrInput
}

The set of arguments for constructing a Integration resource.

func (IntegrationArgs) ElementType

func (IntegrationArgs) ElementType() reflect.Type

type IntegrationCustomNamespaceSyncRule

type IntegrationCustomNamespaceSyncRule struct {
	// Controls the SignalFx default behavior for processing data from an AWS namespace. If you do specify a filter, use this property to control how SignalFx treats data that doesn't match the filter. The available actions are one of `"Include"` or `"Exclude"`.
	DefaultAction *string `pulumi:"defaultAction"`
	// Controls how SignalFx processes data from a custom AWS namespace. The available actions are one of `"Include"` or `"Exclude"`.
	FilterAction *string `pulumi:"filterAction"`
	// Expression that selects the data that SignalFx should sync for the custom namespace associated with this sync rule. The expression uses the syntax defined for the SignalFlow `filter()` function; it can be any valid SignalFlow filter expression.
	FilterSource *string `pulumi:"filterSource"`
	// An AWS custom namespace having custom AWS metrics that you want to sync with SignalFx. See the AWS documentation on publishing metrics for more information.
	Namespace string `pulumi:"namespace"`
}

type IntegrationCustomNamespaceSyncRuleArgs

type IntegrationCustomNamespaceSyncRuleArgs struct {
	// Controls the SignalFx default behavior for processing data from an AWS namespace. If you do specify a filter, use this property to control how SignalFx treats data that doesn't match the filter. The available actions are one of `"Include"` or `"Exclude"`.
	DefaultAction pulumi.StringPtrInput `pulumi:"defaultAction"`
	// Controls how SignalFx processes data from a custom AWS namespace. The available actions are one of `"Include"` or `"Exclude"`.
	FilterAction pulumi.StringPtrInput `pulumi:"filterAction"`
	// Expression that selects the data that SignalFx should sync for the custom namespace associated with this sync rule. The expression uses the syntax defined for the SignalFlow `filter()` function; it can be any valid SignalFlow filter expression.
	FilterSource pulumi.StringPtrInput `pulumi:"filterSource"`
	// An AWS custom namespace having custom AWS metrics that you want to sync with SignalFx. See the AWS documentation on publishing metrics for more information.
	Namespace pulumi.StringInput `pulumi:"namespace"`
}

func (IntegrationCustomNamespaceSyncRuleArgs) ElementType

func (IntegrationCustomNamespaceSyncRuleArgs) ToIntegrationCustomNamespaceSyncRuleOutput

func (i IntegrationCustomNamespaceSyncRuleArgs) ToIntegrationCustomNamespaceSyncRuleOutput() IntegrationCustomNamespaceSyncRuleOutput

func (IntegrationCustomNamespaceSyncRuleArgs) ToIntegrationCustomNamespaceSyncRuleOutputWithContext

func (i IntegrationCustomNamespaceSyncRuleArgs) ToIntegrationCustomNamespaceSyncRuleOutputWithContext(ctx context.Context) IntegrationCustomNamespaceSyncRuleOutput

type IntegrationCustomNamespaceSyncRuleArray

type IntegrationCustomNamespaceSyncRuleArray []IntegrationCustomNamespaceSyncRuleInput

func (IntegrationCustomNamespaceSyncRuleArray) ElementType

func (IntegrationCustomNamespaceSyncRuleArray) ToIntegrationCustomNamespaceSyncRuleArrayOutput

func (i IntegrationCustomNamespaceSyncRuleArray) ToIntegrationCustomNamespaceSyncRuleArrayOutput() IntegrationCustomNamespaceSyncRuleArrayOutput

func (IntegrationCustomNamespaceSyncRuleArray) ToIntegrationCustomNamespaceSyncRuleArrayOutputWithContext

func (i IntegrationCustomNamespaceSyncRuleArray) ToIntegrationCustomNamespaceSyncRuleArrayOutputWithContext(ctx context.Context) IntegrationCustomNamespaceSyncRuleArrayOutput

type IntegrationCustomNamespaceSyncRuleArrayInput

type IntegrationCustomNamespaceSyncRuleArrayInput interface {
	pulumi.Input

	ToIntegrationCustomNamespaceSyncRuleArrayOutput() IntegrationCustomNamespaceSyncRuleArrayOutput
	ToIntegrationCustomNamespaceSyncRuleArrayOutputWithContext(context.Context) IntegrationCustomNamespaceSyncRuleArrayOutput
}

IntegrationCustomNamespaceSyncRuleArrayInput is an input type that accepts IntegrationCustomNamespaceSyncRuleArray and IntegrationCustomNamespaceSyncRuleArrayOutput values. You can construct a concrete instance of `IntegrationCustomNamespaceSyncRuleArrayInput` via:

IntegrationCustomNamespaceSyncRuleArray{ IntegrationCustomNamespaceSyncRuleArgs{...} }

type IntegrationCustomNamespaceSyncRuleArrayOutput

type IntegrationCustomNamespaceSyncRuleArrayOutput struct{ *pulumi.OutputState }

func (IntegrationCustomNamespaceSyncRuleArrayOutput) ElementType

func (IntegrationCustomNamespaceSyncRuleArrayOutput) Index

func (IntegrationCustomNamespaceSyncRuleArrayOutput) ToIntegrationCustomNamespaceSyncRuleArrayOutput

func (o IntegrationCustomNamespaceSyncRuleArrayOutput) ToIntegrationCustomNamespaceSyncRuleArrayOutput() IntegrationCustomNamespaceSyncRuleArrayOutput

func (IntegrationCustomNamespaceSyncRuleArrayOutput) ToIntegrationCustomNamespaceSyncRuleArrayOutputWithContext

func (o IntegrationCustomNamespaceSyncRuleArrayOutput) ToIntegrationCustomNamespaceSyncRuleArrayOutputWithContext(ctx context.Context) IntegrationCustomNamespaceSyncRuleArrayOutput

type IntegrationCustomNamespaceSyncRuleInput

type IntegrationCustomNamespaceSyncRuleInput interface {
	pulumi.Input

	ToIntegrationCustomNamespaceSyncRuleOutput() IntegrationCustomNamespaceSyncRuleOutput
	ToIntegrationCustomNamespaceSyncRuleOutputWithContext(context.Context) IntegrationCustomNamespaceSyncRuleOutput
}

IntegrationCustomNamespaceSyncRuleInput is an input type that accepts IntegrationCustomNamespaceSyncRuleArgs and IntegrationCustomNamespaceSyncRuleOutput values. You can construct a concrete instance of `IntegrationCustomNamespaceSyncRuleInput` via:

IntegrationCustomNamespaceSyncRuleArgs{...}

type IntegrationCustomNamespaceSyncRuleOutput

type IntegrationCustomNamespaceSyncRuleOutput struct{ *pulumi.OutputState }

func (IntegrationCustomNamespaceSyncRuleOutput) DefaultAction

Controls the SignalFx default behavior for processing data from an AWS namespace. If you do specify a filter, use this property to control how SignalFx treats data that doesn't match the filter. The available actions are one of `"Include"` or `"Exclude"`.

func (IntegrationCustomNamespaceSyncRuleOutput) ElementType

func (IntegrationCustomNamespaceSyncRuleOutput) FilterAction

Controls how SignalFx processes data from a custom AWS namespace. The available actions are one of `"Include"` or `"Exclude"`.

func (IntegrationCustomNamespaceSyncRuleOutput) FilterSource

Expression that selects the data that SignalFx should sync for the custom namespace associated with this sync rule. The expression uses the syntax defined for the SignalFlow `filter()` function; it can be any valid SignalFlow filter expression.

func (IntegrationCustomNamespaceSyncRuleOutput) Namespace

An AWS custom namespace having custom AWS metrics that you want to sync with SignalFx. See the AWS documentation on publishing metrics for more information.

func (IntegrationCustomNamespaceSyncRuleOutput) ToIntegrationCustomNamespaceSyncRuleOutput

func (o IntegrationCustomNamespaceSyncRuleOutput) ToIntegrationCustomNamespaceSyncRuleOutput() IntegrationCustomNamespaceSyncRuleOutput

func (IntegrationCustomNamespaceSyncRuleOutput) ToIntegrationCustomNamespaceSyncRuleOutputWithContext

func (o IntegrationCustomNamespaceSyncRuleOutput) ToIntegrationCustomNamespaceSyncRuleOutputWithContext(ctx context.Context) IntegrationCustomNamespaceSyncRuleOutput

type IntegrationNamespaceSyncRule

type IntegrationNamespaceSyncRule struct {
	// Controls the SignalFx default behavior for processing data from an AWS namespace. If you do specify a filter, use this property to control how SignalFx treats data that doesn't match the filter. The available actions are one of `"Include"` or `"Exclude"`.
	DefaultAction *string `pulumi:"defaultAction"`
	// Controls how SignalFx processes data from a custom AWS namespace. The available actions are one of `"Include"` or `"Exclude"`.
	FilterAction *string `pulumi:"filterAction"`
	// Expression that selects the data that SignalFx should sync for the custom namespace associated with this sync rule. The expression uses the syntax defined for the SignalFlow `filter()` function; it can be any valid SignalFlow filter expression.
	FilterSource *string `pulumi:"filterSource"`
	// An AWS custom namespace having custom AWS metrics that you want to sync with SignalFx. See the AWS documentation on publishing metrics for more information.
	Namespace string `pulumi:"namespace"`
}

type IntegrationNamespaceSyncRuleArgs

type IntegrationNamespaceSyncRuleArgs struct {
	// Controls the SignalFx default behavior for processing data from an AWS namespace. If you do specify a filter, use this property to control how SignalFx treats data that doesn't match the filter. The available actions are one of `"Include"` or `"Exclude"`.
	DefaultAction pulumi.StringPtrInput `pulumi:"defaultAction"`
	// Controls how SignalFx processes data from a custom AWS namespace. The available actions are one of `"Include"` or `"Exclude"`.
	FilterAction pulumi.StringPtrInput `pulumi:"filterAction"`
	// Expression that selects the data that SignalFx should sync for the custom namespace associated with this sync rule. The expression uses the syntax defined for the SignalFlow `filter()` function; it can be any valid SignalFlow filter expression.
	FilterSource pulumi.StringPtrInput `pulumi:"filterSource"`
	// An AWS custom namespace having custom AWS metrics that you want to sync with SignalFx. See the AWS documentation on publishing metrics for more information.
	Namespace pulumi.StringInput `pulumi:"namespace"`
}

func (IntegrationNamespaceSyncRuleArgs) ElementType

func (IntegrationNamespaceSyncRuleArgs) ToIntegrationNamespaceSyncRuleOutput

func (i IntegrationNamespaceSyncRuleArgs) ToIntegrationNamespaceSyncRuleOutput() IntegrationNamespaceSyncRuleOutput

func (IntegrationNamespaceSyncRuleArgs) ToIntegrationNamespaceSyncRuleOutputWithContext

func (i IntegrationNamespaceSyncRuleArgs) ToIntegrationNamespaceSyncRuleOutputWithContext(ctx context.Context) IntegrationNamespaceSyncRuleOutput

type IntegrationNamespaceSyncRuleArray

type IntegrationNamespaceSyncRuleArray []IntegrationNamespaceSyncRuleInput

func (IntegrationNamespaceSyncRuleArray) ElementType

func (IntegrationNamespaceSyncRuleArray) ToIntegrationNamespaceSyncRuleArrayOutput

func (i IntegrationNamespaceSyncRuleArray) ToIntegrationNamespaceSyncRuleArrayOutput() IntegrationNamespaceSyncRuleArrayOutput

func (IntegrationNamespaceSyncRuleArray) ToIntegrationNamespaceSyncRuleArrayOutputWithContext

func (i IntegrationNamespaceSyncRuleArray) ToIntegrationNamespaceSyncRuleArrayOutputWithContext(ctx context.Context) IntegrationNamespaceSyncRuleArrayOutput

type IntegrationNamespaceSyncRuleArrayInput

type IntegrationNamespaceSyncRuleArrayInput interface {
	pulumi.Input

	ToIntegrationNamespaceSyncRuleArrayOutput() IntegrationNamespaceSyncRuleArrayOutput
	ToIntegrationNamespaceSyncRuleArrayOutputWithContext(context.Context) IntegrationNamespaceSyncRuleArrayOutput
}

IntegrationNamespaceSyncRuleArrayInput is an input type that accepts IntegrationNamespaceSyncRuleArray and IntegrationNamespaceSyncRuleArrayOutput values. You can construct a concrete instance of `IntegrationNamespaceSyncRuleArrayInput` via:

IntegrationNamespaceSyncRuleArray{ IntegrationNamespaceSyncRuleArgs{...} }

type IntegrationNamespaceSyncRuleArrayOutput

type IntegrationNamespaceSyncRuleArrayOutput struct{ *pulumi.OutputState }

func (IntegrationNamespaceSyncRuleArrayOutput) ElementType

func (IntegrationNamespaceSyncRuleArrayOutput) Index

func (IntegrationNamespaceSyncRuleArrayOutput) ToIntegrationNamespaceSyncRuleArrayOutput

func (o IntegrationNamespaceSyncRuleArrayOutput) ToIntegrationNamespaceSyncRuleArrayOutput() IntegrationNamespaceSyncRuleArrayOutput

func (IntegrationNamespaceSyncRuleArrayOutput) ToIntegrationNamespaceSyncRuleArrayOutputWithContext

func (o IntegrationNamespaceSyncRuleArrayOutput) ToIntegrationNamespaceSyncRuleArrayOutputWithContext(ctx context.Context) IntegrationNamespaceSyncRuleArrayOutput

type IntegrationNamespaceSyncRuleInput

type IntegrationNamespaceSyncRuleInput interface {
	pulumi.Input

	ToIntegrationNamespaceSyncRuleOutput() IntegrationNamespaceSyncRuleOutput
	ToIntegrationNamespaceSyncRuleOutputWithContext(context.Context) IntegrationNamespaceSyncRuleOutput
}

IntegrationNamespaceSyncRuleInput is an input type that accepts IntegrationNamespaceSyncRuleArgs and IntegrationNamespaceSyncRuleOutput values. You can construct a concrete instance of `IntegrationNamespaceSyncRuleInput` via:

IntegrationNamespaceSyncRuleArgs{...}

type IntegrationNamespaceSyncRuleOutput

type IntegrationNamespaceSyncRuleOutput struct{ *pulumi.OutputState }

func (IntegrationNamespaceSyncRuleOutput) DefaultAction

Controls the SignalFx default behavior for processing data from an AWS namespace. If you do specify a filter, use this property to control how SignalFx treats data that doesn't match the filter. The available actions are one of `"Include"` or `"Exclude"`.

func (IntegrationNamespaceSyncRuleOutput) ElementType

func (IntegrationNamespaceSyncRuleOutput) FilterAction

Controls how SignalFx processes data from a custom AWS namespace. The available actions are one of `"Include"` or `"Exclude"`.

func (IntegrationNamespaceSyncRuleOutput) FilterSource

Expression that selects the data that SignalFx should sync for the custom namespace associated with this sync rule. The expression uses the syntax defined for the SignalFlow `filter()` function; it can be any valid SignalFlow filter expression.

func (IntegrationNamespaceSyncRuleOutput) Namespace

An AWS custom namespace having custom AWS metrics that you want to sync with SignalFx. See the AWS documentation on publishing metrics for more information.

func (IntegrationNamespaceSyncRuleOutput) ToIntegrationNamespaceSyncRuleOutput

func (o IntegrationNamespaceSyncRuleOutput) ToIntegrationNamespaceSyncRuleOutput() IntegrationNamespaceSyncRuleOutput

func (IntegrationNamespaceSyncRuleOutput) ToIntegrationNamespaceSyncRuleOutputWithContext

func (o IntegrationNamespaceSyncRuleOutput) ToIntegrationNamespaceSyncRuleOutputWithContext(ctx context.Context) IntegrationNamespaceSyncRuleOutput

type IntegrationState

type IntegrationState struct {
	// List of custom AWS CloudWatch namespaces to monitor. Custom namespaces contain custom metrics that you define in AWS; SignalFx imports the metrics so you can monitor them.
	CustomCloudwatchNamespaces pulumi.StringArrayInput
	// Each element controls the data collected by SignalFx for the specified namespace. Conflicts with the `customCloudwatchNamespaces` property.
	CustomNamespaceSyncRules IntegrationCustomNamespaceSyncRuleArrayInput
	// Flag that controls how SignalFx imports usage metrics from AWS to use with AWS Cost Optimizer. If `true`, SignalFx imports the metrics.
	EnableAwsUsage pulumi.BoolPtrInput
	// Whether the integration is enabled.
	Enabled pulumi.BoolPtrInput
	// The `externalId` property from one of a `aws.ExternalIntegration` or `aws.TokenIntegration`
	ExternalId pulumi.StringPtrInput
	// Flag that controls how SignalFx imports Cloud Watch metrics. If true, SignalFx imports Cloud Watch metrics from AWS.
	ImportCloudWatch pulumi.BoolPtrInput
	// The id of one of a `aws.ExternalIntegration` or `aws.TokenIntegration`.
	IntegrationId pulumi.StringPtrInput
	// If you specify `authMethod = \"SecurityToken\"` in your request to create an AWS integration object, use this property to specify the key.
	Key pulumi.StringPtrInput
	// Each element in the array is an object that contains an AWS namespace name and a filter that controls the data that SignalFx collects for the namespace. Conflicts with the `services` property. If you don't specify either property, SignalFx syncs all data in all AWS namespaces.
	NamespaceSyncRules IntegrationNamespaceSyncRuleArrayInput
	// AWS poll rate (in seconds). One of `60` or `300`.
	PollRate pulumi.IntPtrInput
	// List of AWS regions that SignalFx should monitor.
	Regions pulumi.StringArrayInput
	// 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.StringPtrInput
	// List of AWS services that you want SignalFx to monitor. Each element is a string designating an AWS service. Conflicts with `namespaceSyncRule`. See the documentation for [Creating Integrations](https://developers.signalfx.com/integrations_reference.html#operation/Create%20Integration) for valida values.
	Services pulumi.StringArrayInput
	// Used with `signalfx_aws_token_integration`. Use this property to specify the token.
	Token pulumi.StringPtrInput
	// Enable the use of Amazon's `GetMetricData` for collecting metrics. Note that this requires the inclusion of the `"cloudwatch:GetMetricData"` permission.
	UseGetMetricDataMethod pulumi.BoolPtrInput
}

func (IntegrationState) ElementType

func (IntegrationState) ElementType() reflect.Type

type TokenIntegration

type TokenIntegration struct {
	pulumi.CustomResourceState

	// The name of this integration
	Name pulumi.StringOutput `pulumi:"name"`
	// A named token to use for ingest
	NamedToken pulumi.StringPtrOutput `pulumi:"namedToken"`
	// The AWS Account ARN to use with your policies/roles, provided by SignalFx.
	SignalfxAwsAccount pulumi.StringOutput `pulumi:"signalfxAwsAccount"`
	// The SignalFx-generated AWS token to use with an AWS integration.
	TokenId pulumi.StringOutput `pulumi:"tokenId"`
}

SignalFx AWS CloudWatch integrations using security tokens. For help with this integration see [Connect to AWS CloudWatch](https://docs.signalfx.com/en/latest/integrations/amazon-web-services.html#connect-to-aws).

> **NOTE** When managing integrations you'll need to use an admin token to authenticate the SignalFx provider.

> **WARNING** This resource implements a part of a workflow. You must use it with `aws.Integration`.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/iam"
"github.com/pulumi/pulumi-signalfx/sdk/v2/go/signalfx/aws"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		awsMyteamToken, err := aws.NewTokenIntegration(ctx, "awsMyteamToken", nil)
		if err != nil {
			return err
		}
		_, err = iam.NewRole(ctx, "awsSfxRole", nil)
		if err != nil {
			return err
		}
		_, err = aws.NewIntegration(ctx, "awsMyteam", &aws.IntegrationArgs{
			Enabled:       pulumi.Bool(true),
			IntegrationId: awsMyteamToken.ID(),
			Token:         pulumi.String("put_your_token_here"),
			Key:           pulumi.String("put_your_key_here"),
			Regions: pulumi.StringArray{
				pulumi.String("us-east-1"),
			},
			PollRate:         pulumi.Int(300),
			ImportCloudWatch: pulumi.Bool(true),
			EnableAwsUsage:   pulumi.Bool(true),
			CustomNamespaceSyncRules: aws.IntegrationCustomNamespaceSyncRuleArray{
				&aws.IntegrationCustomNamespaceSyncRuleArgs{
					DefaultAction: pulumi.String("Exclude"),
					FilterAction:  pulumi.String("Include"),
					FilterSource:  pulumi.String("filter('code', '200')"),
					Namespace:     pulumi.String("fart"),
				},
			},
			NamespaceSyncRules: aws.IntegrationNamespaceSyncRuleArray{
				&aws.IntegrationNamespaceSyncRuleArgs{
					DefaultAction: pulumi.String("Exclude"),
					FilterAction:  pulumi.String("Include"),
					FilterSource:  pulumi.String("filter('code', '200')"),
					Namespace:     pulumi.String("AWS/EC2"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetTokenIntegration

func GetTokenIntegration(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TokenIntegrationState, opts ...pulumi.ResourceOption) (*TokenIntegration, error)

GetTokenIntegration gets an existing TokenIntegration resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTokenIntegration

func NewTokenIntegration(ctx *pulumi.Context,
	name string, args *TokenIntegrationArgs, opts ...pulumi.ResourceOption) (*TokenIntegration, error)

NewTokenIntegration registers a new resource with the given unique name, arguments, and options.

type TokenIntegrationArgs

type TokenIntegrationArgs struct {
	// The name of this integration
	Name pulumi.StringPtrInput
	// A named token to use for ingest
	NamedToken pulumi.StringPtrInput
}

The set of arguments for constructing a TokenIntegration resource.

func (TokenIntegrationArgs) ElementType

func (TokenIntegrationArgs) ElementType() reflect.Type

type TokenIntegrationState

type TokenIntegrationState struct {
	// The name of this integration
	Name pulumi.StringPtrInput
	// A named token to use for ingest
	NamedToken pulumi.StringPtrInput
	// The AWS Account ARN to use with your policies/roles, provided by SignalFx.
	SignalfxAwsAccount pulumi.StringPtrInput
	// The SignalFx-generated AWS token to use with an AWS integration.
	TokenId pulumi.StringPtrInput
}

func (TokenIntegrationState) ElementType

func (TokenIntegrationState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL