import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* Use this resource to integrate AWS EU Sovereign services with New Relic.
*
* ## Prerequisite
*
* Setup is required for this resource to work properly. This resource assumes you have linked an AWS EU Sovereign account to New Relic.
*
* The New Relic AWS EU Sovereign integration relies on two mechanisms to get data into New Relic:
*
* * **CloudWatch Metric Streams (PUSH)**: This is the supported method for AWS EU Sovereign Cloud to get metrics into New Relic for the majority of AWS services. Follow the [steps outlined here](https://docs-preview.newrelic.com/docs/aws-eu-sovereign-cloud-integration) to set up a metric stream.
*
* * **API Polling (PULL)**: Required for services that are **not supported** by CloudWatch Metric Streams. The following three services must be integrated via API Polling: **Billing**, **CloudTrail** and **X-Ray**. Follow the [steps outlined here](https://docs-preview.newrelic.com/docs/aws-eu-sovereign-cloud-integration).
*
* This resource is used to configure API Polling integrations for those three services that are not available through AWS CloudWatch Metric Streams.
*
* ## Example Usage
*
* The following example demonstrates the use of the `newrelic.cloud.AwsEuSovereignIntegrations` resource with multiple AWS EU Sovereign integrations supported by the resource.
*
* To view a full example with all supported AWS EU Sovereign integrations, please see the Additional Examples section. Integration blocks used in the resource may also be left empty to use the default configuration of the integration.
*
* A full example, inclusive of setup of AWS resources (from the AWS Terraform Provider) associated with this resource, may be found in our AWS EU Sovereign cloud integration guide.
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as newrelic from "@pulumi/newrelic";
*
* const foo = new newrelic.cloud.AwsEuSovereignLinkAccount("foo", {
* arn: "arn:aws-eusc:iam::123456789012:role/NewRelicInfrastructure-Integrations",
* metricCollectionMode: "PULL",
* name: "my-eu-sovereign-account",
* });
* const bar = new newrelic.cloud.AwsEuSovereignIntegrations("bar", {
* linkedAccountId: foo.id,
* billing: {
* metricsPollingInterval: 3600,
* },
* cloudtrail: {
* metricsPollingInterval: 300,
* awsRegions: ["eusc-de-east-1"],
* },
* xRay: {
* metricsPollingInterval: 300,
* awsRegions: ["eusc-de-east-1"],
* },
* });
* ```
*
* ## Supported AWS EU Sovereign Integrations
*
* > **NOTE:** CloudWatch Metric Streams is the only supported method for AWS EU Sovereign Cloud. The following three integrations are for services **not supported by CloudWatch Metric Streams** and must be configured via API Polling using this resource.
*
*
* Expand this section to view all supported AWS EU Sovereign services that may be integrated via this resource.
*
* | Block | Description |
* |------------------------|-------------------------------|
* | `billing` | Billing Integration |
* | `cloudtrail` | CloudTrail Integration |
* | `xRay` | X-Ray Integration |
*
*
*
* ## Additional Examples
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as newrelic from "@pulumi/newrelic";
*
* const bar = new newrelic.cloud.AwsEuSovereignIntegrations("bar", {
* linkedAccountId: foo.id,
* billing: {
* metricsPollingInterval: 300,
* },
* cloudtrail: {
* metricsPollingInterval: 900,
* awsRegions: ["eusc-de-east-1"],
* },
* xRay: {
* metricsPollingInterval: 300,
* awsRegions: ["eusc-de-east-1"],
* },
* });
* ```
*
* ## Import
*
* Linked AWS EU Sovereign account integrations can be imported using the `id`, e.g.
*
* ```sh
* $ pulumi import newrelic:cloud/awsEuSovereignIntegrations:AwsEuSovereignIntegrations foo
* ```
*/
export declare class AwsEuSovereignIntegrations extends pulumi.CustomResource {
/**
* Get an existing AwsEuSovereignIntegrations 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, state?: AwsEuSovereignIntegrationsState, opts?: pulumi.CustomResourceOptions): AwsEuSovereignIntegrations;
/**
* Returns true if the given object is an instance of AwsEuSovereignIntegrations. 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 AwsEuSovereignIntegrations;
/**
* The New Relic account ID to operate on. This allows the user to override the `accountId` attribute set on the provider. Defaults to the environment variable `NEW_RELIC_ACCOUNT_ID`.
*/
readonly accountId: pulumi.Output;
/**
* Billing integration
*/
readonly billing: pulumi.Output;
/**
* CloudTrail integration
*/
readonly cloudtrail: pulumi.Output;
/**
* The ID of the linked AWS EU Sovereign account in New Relic.
*/
readonly linkedAccountId: pulumi.Output;
/**
* X-Ray integration
*/
readonly xRay: pulumi.Output;
/**
* Create a AwsEuSovereignIntegrations 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: AwsEuSovereignIntegrationsArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering AwsEuSovereignIntegrations resources.
*/
export interface AwsEuSovereignIntegrationsState {
/**
* The New Relic account ID to operate on. This allows the user to override the `accountId` attribute set on the provider. Defaults to the environment variable `NEW_RELIC_ACCOUNT_ID`.
*/
accountId?: pulumi.Input;
/**
* Billing integration
*/
billing?: pulumi.Input;
/**
* CloudTrail integration
*/
cloudtrail?: pulumi.Input;
/**
* The ID of the linked AWS EU Sovereign account in New Relic.
*/
linkedAccountId?: pulumi.Input;
/**
* X-Ray integration
*/
xRay?: pulumi.Input;
}
/**
* The set of arguments for constructing a AwsEuSovereignIntegrations resource.
*/
export interface AwsEuSovereignIntegrationsArgs {
/**
* The New Relic account ID to operate on. This allows the user to override the `accountId` attribute set on the provider. Defaults to the environment variable `NEW_RELIC_ACCOUNT_ID`.
*/
accountId?: pulumi.Input;
/**
* Billing integration
*/
billing?: pulumi.Input;
/**
* CloudTrail integration
*/
cloudtrail?: pulumi.Input;
/**
* The ID of the linked AWS EU Sovereign account in New Relic.
*/
linkedAccountId: pulumi.Input;
/**
* X-Ray integration
*/
xRay?: pulumi.Input;
}
//# sourceMappingURL=awsEuSovereignIntegrations.d.ts.map