Class TelemetryRuleForOrganization


  • public class TelemetryRuleForOrganization
    extends com.pulumi.resources.CustomResource
    Manages an AWS CloudWatch Observability Admin Telemetry Rule for an AWS Organization. An organization-wide telemetry rule defines how telemetry data (logs, metrics, or traces) should be collected for AWS resources across the accounts in your organization. The rule can target one or more Regions and configure a destination (such as CloudWatch Logs or S3) along with source-specific parameters for VPC flow logs, WAF logs, CloudTrail events, ELB access logs, and more. > **NOTE:** Before using this resource, telemetry evaluation for organization must be enabled. Use the `aws.observabilityadmin.TelemetryEvaluationForOrganization` resource to enable it. > **NOTE:** This resource can only be used from the organization management account. ## Example Usage ### Basic Usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.observabilityadmin.TelemetryEvaluationForOrganization;
     import com.pulumi.aws.observabilityadmin.TelemetryRuleForOrganization;
     import com.pulumi.aws.observabilityadmin.TelemetryRuleForOrganizationArgs;
     import com.pulumi.aws.observabilityadmin.inputs.TelemetryRuleForOrganizationRuleArgs;
     import com.pulumi.resources.CustomResourceOptions;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new TelemetryEvaluationForOrganization("example");
     
             var exampleTelemetryRuleForOrganization = new TelemetryRuleForOrganization("exampleTelemetryRuleForOrganization", TelemetryRuleForOrganizationArgs.builder()
                 .rule(TelemetryRuleForOrganizationRuleArgs.builder()
                     .telemetryType("Logs")
                     .resourceType("AWS::EC2::VPC")
                     .build())
                 .ruleName("example-org-telemetry-rule")
                 .build(), CustomResourceOptions.builder()
                     .dependsOn(example)
                     .build());
     
         }
     }
     
     
    ### VPC Flow Logs to CloudWatch Logs
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.observabilityadmin.TelemetryEvaluationForOrganization;
     import com.pulumi.aws.observabilityadmin.TelemetryRuleForOrganization;
     import com.pulumi.aws.observabilityadmin.TelemetryRuleForOrganizationArgs;
     import com.pulumi.aws.observabilityadmin.inputs.TelemetryRuleForOrganizationRuleArgs;
     import com.pulumi.aws.observabilityadmin.inputs.TelemetryRuleForOrganizationRuleDestinationConfigurationArgs;
     import com.pulumi.aws.observabilityadmin.inputs.TelemetryRuleForOrganizationRuleDestinationConfigurationVpcFlowLogParametersArgs;
     import com.pulumi.resources.CustomResourceOptions;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new TelemetryEvaluationForOrganization("example");
     
             var exampleTelemetryRuleForOrganization = new TelemetryRuleForOrganization("exampleTelemetryRuleForOrganization", TelemetryRuleForOrganizationArgs.builder()
                 .rule(TelemetryRuleForOrganizationRuleArgs.builder()
                     .destinationConfiguration(TelemetryRuleForOrganizationRuleDestinationConfigurationArgs.builder()
                         .vpcFlowLogParameters(TelemetryRuleForOrganizationRuleDestinationConfigurationVpcFlowLogParametersArgs.builder()
                             .trafficType("ALL")
                             .maxAggregationInterval(60)
                             .build())
                         .destinationType("cloud-watch-logs")
                         .destinationPattern("/aws/vpcflowlogs/<resourceId>")
                         .retentionInDays(30)
                         .build())
                     .telemetryType("Logs")
                     .resourceType("AWS::EC2::VPC")
                     .telemetrySourceTypes("VPC_FLOW_LOGS")
                     .allRegions(true)
                     .allowFieldUpdates(true)
                     .build())
                 .ruleName("org-vpc-flow-logs-rule")
                 .build(), CustomResourceOptions.builder()
                     .dependsOn(example)
                     .build());
     
         }
     }
     
     
    ### Scoped to Specific Organizational Units
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.organizations.OrganizationsFunctions;
     import com.pulumi.aws.organizations.inputs.GetOrganizationArgs;
     import com.pulumi.aws.observabilityadmin.TelemetryEvaluationForOrganization;
     import com.pulumi.aws.observabilityadmin.TelemetryRuleForOrganization;
     import com.pulumi.aws.observabilityadmin.TelemetryRuleForOrganizationArgs;
     import com.pulumi.aws.observabilityadmin.inputs.TelemetryRuleForOrganizationRuleArgs;
     import com.pulumi.resources.CustomResourceOptions;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             final var current = OrganizationsFunctions.getOrganization(GetOrganizationArgs.builder()
                 .build());
     
             var example = new TelemetryEvaluationForOrganization("example");
     
             var exampleTelemetryRuleForOrganization = new TelemetryRuleForOrganization("exampleTelemetryRuleForOrganization", TelemetryRuleForOrganizationArgs.builder()
                 .rule(TelemetryRuleForOrganizationRuleArgs.builder()
                     .telemetryType("Logs")
                     .resourceType("AWS::EKS::Cluster")
                     .scope(String.format("OrganizationId = '%s'", current.id()))
                     .selectionCriteria("ResourceTags.Environment = 'production'")
                     .regions(                
                         "us-east-1",
                         "us-west-2")
                     .build())
                 .ruleName("org-scoped-rule")
                 .build(), CustomResourceOptions.builder()
                     .dependsOn(example)
                     .build());
     
         }
     }
     
     
    ### With Tags
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.observabilityadmin.TelemetryEvaluationForOrganization;
     import com.pulumi.aws.observabilityadmin.TelemetryRuleForOrganization;
     import com.pulumi.aws.observabilityadmin.TelemetryRuleForOrganizationArgs;
     import com.pulumi.aws.observabilityadmin.inputs.TelemetryRuleForOrganizationRuleArgs;
     import com.pulumi.resources.CustomResourceOptions;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new TelemetryEvaluationForOrganization("example");
     
             var exampleTelemetryRuleForOrganization = new TelemetryRuleForOrganization("exampleTelemetryRuleForOrganization", TelemetryRuleForOrganizationArgs.builder()
                 .rule(TelemetryRuleForOrganizationRuleArgs.builder()
                     .telemetryType("Logs")
                     .resourceType("AWS::EC2::VPC")
                     .build())
                 .ruleName("org-tagged-rule")
                 .tags(Map.ofEntries(
                     Map.entry("Environment", "production"),
                     Map.entry("Purpose", "organization-monitoring")
                 ))
                 .build(), CustomResourceOptions.builder()
                     .dependsOn(example)
                     .build());
     
         }
     }
     
     
    ## Import ### Identity Schema #### Required - `ruleName` (String) Name of the telemetry rule. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import CloudWatch Observability Admin Telemetry Rules for Organization using `ruleName`. For example: ```sh $ pulumi import aws:observabilityadmin/telemetryRuleForOrganization:TelemetryRuleForOrganization example example-org-telemetry-rule ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static TelemetryRuleForOrganization get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, TelemetryRuleForOrganizationState state, com.pulumi.resources.CustomResourceOptions options)
      Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
      com.pulumi.core.Output<java.lang.String> region()  
      com.pulumi.core.Output<TelemetryRuleForOrganizationRule> rule()  
      com.pulumi.core.Output<java.lang.String> ruleArn()  
      com.pulumi.core.Output<java.lang.String> ruleName()  
      com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()  
      com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()  
      com.pulumi.core.Output<java.util.Optional<TelemetryRuleForOrganizationTimeouts>> timeouts()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • TelemetryRuleForOrganization

        public TelemetryRuleForOrganization​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • TelemetryRuleForOrganization

        public TelemetryRuleForOrganization​(java.lang.String name,
                                            TelemetryRuleForOrganizationArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • TelemetryRuleForOrganization

        public TelemetryRuleForOrganization​(java.lang.String name,
                                            TelemetryRuleForOrganizationArgs args,
                                            @Nullable
                                            com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • rule

        public com.pulumi.core.Output<TelemetryRuleForOrganizationRule> rule()
        Returns:
        Configuration block for the organization telemetry rule. See `rule` below.
      • ruleArn

        public com.pulumi.core.Output<java.lang.String> ruleArn()
        Returns:
        ARN of the organization telemetry rule.
      • ruleName

        public com.pulumi.core.Output<java.lang.String> ruleName()
        Returns:
        Name of the organization telemetry rule. Must be between 1 and 100 characters and contain only alphanumeric characters, hyphens, underscores, periods, hash symbols, and forward slashes. Changing this argument forces a new resource to be created. The following arguments are optional:
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
        Returns:
        Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
      • get

        public static TelemetryRuleForOrganization get​(java.lang.String name,
                                                       com.pulumi.core.Output<java.lang.String> id,
                                                       @Nullable
                                                       TelemetryRuleForOrganizationState state,
                                                       @Nullable
                                                       com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.