Class ProactiveEngagement


  • public class ProactiveEngagement
    extends com.pulumi.resources.CustomResource
    Resource for managing a AWS Shield Proactive Engagement. Proactive engagement authorizes the Shield Response Team (SRT) to use email and phone to notify contacts about escalations to the SRT and to initiate proactive customer support. ## Example Usage ### Basic Usage <!--Start PulumiCodeChooser -->
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.iam.Role;
     import com.pulumi.aws.iam.RoleArgs;
     import com.pulumi.aws.shield.DrtAccessRoleArnAssociation;
     import com.pulumi.aws.shield.DrtAccessRoleArnAssociationArgs;
     import com.pulumi.aws.shield.ProactiveEngagement;
     import com.pulumi.aws.shield.ProactiveEngagementArgs;
     import com.pulumi.aws.shield.inputs.ProactiveEngagementEmergencyContactArgs;
     import com.pulumi.aws.iam.RolePolicyAttachment;
     import com.pulumi.aws.iam.RolePolicyAttachmentArgs;
     import com.pulumi.aws.shield.ProtectionGroup;
     import com.pulumi.aws.shield.ProtectionGroupArgs;
     import static com.pulumi.codegen.internal.Serialization.*;
     import com.pulumi.resources.CustomResourceOptions;
     import java.util.List;
     import java.util.ArrayList;
     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 exampleRole = new Role("exampleRole", RoleArgs.builder()
                 .name("example-role")
                 .assumeRolePolicy(serializeJson(
                     jsonObject(
                         jsonProperty("Version", "2012-10-17"),
                         jsonProperty("Statement", jsonArray(jsonObject(
                             jsonProperty("Sid", ""),
                             jsonProperty("Effect", "Allow"),
                             jsonProperty("Principal", jsonObject(
                                 jsonProperty("Service", "drt.shield.amazonaws.com")
                             )),
                             jsonProperty("Action", "sts:AssumeRole")
                         )))
                     )))
                 .build());
     
             var exampleDrtAccessRoleArnAssociation = new DrtAccessRoleArnAssociation("exampleDrtAccessRoleArnAssociation", DrtAccessRoleArnAssociationArgs.builder()
                 .roleArn(exampleRole.arn())
                 .build());
     
             var example = new ProactiveEngagement("example", ProactiveEngagementArgs.builder()
                 .enabled(true)
                 .emergencyContacts(            
                     ProactiveEngagementEmergencyContactArgs.builder()
                         .contactNotes("Notes")
                         .emailAddress("contact1@example.com")
                         .phoneNumber("+12358132134")
                         .build(),
                     ProactiveEngagementEmergencyContactArgs.builder()
                         .contactNotes("Notes 2")
                         .emailAddress("contact2@example.com")
                         .phoneNumber("+12358132134")
                         .build())
                 .build(), CustomResourceOptions.builder()
                     .dependsOn(exampleDrtAccessRoleArnAssociation)
                     .build());
     
             var exampleRolePolicyAttachment = new RolePolicyAttachment("exampleRolePolicyAttachment", RolePolicyAttachmentArgs.builder()
                 .role(exampleRole.name())
                 .policyArn("arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy")
                 .build());
     
             var exampleProtectionGroup = new ProtectionGroup("exampleProtectionGroup", ProtectionGroupArgs.builder()
                 .protectionGroupId("example")
                 .aggregation("MAX")
                 .pattern("ALL")
                 .build());
     
         }
     }
     
     
    <!--End PulumiCodeChooser --> ## Import Using `pulumi import`, import Shield proactive engagement using the AWS account ID. For example: ```sh $ pulumi import aws:shield/proactiveEngagement:ProactiveEngagement example 123456789012 ```
    • 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
      com.pulumi.core.Output<java.util.Optional<java.util.List<ProactiveEngagementEmergencyContact>>> emergencyContacts()  
      com.pulumi.core.Output<java.lang.Boolean> enabled()  
      static ProactiveEngagement get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, ProactiveEngagementState 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.
      • 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

      • ProactiveEngagement

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

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

        public ProactiveEngagement​(java.lang.String name,
                                   ProactiveEngagementArgs 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

      • emergencyContacts

        public com.pulumi.core.Output<java.util.Optional<java.util.List<ProactiveEngagementEmergencyContact>>> emergencyContacts()
        Returns:
        One or more emergency contacts. You must provide at least one phone number in the emergency contact list. See `emergency_contacts`.
      • enabled

        public com.pulumi.core.Output<java.lang.Boolean> enabled()
        Returns:
        Boolean value indicating if Proactive Engagement should be enabled or not.
      • get

        public static ProactiveEngagement get​(java.lang.String name,
                                              com.pulumi.core.Output<java.lang.String> id,
                                              @Nullable
                                              ProactiveEngagementState 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.