Class WebApp


  • public class WebApp
    extends com.pulumi.resources.CustomResource
    Resource for managing an AWS Transfer Family Web App. ## Example Usage ### Basic Usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.AwsFunctions;
     import com.pulumi.aws.inputs.GetCallerIdentityArgs;
     import com.pulumi.aws.inputs.GetRegionArgs;
     import com.pulumi.aws.inputs.GetPartitionArgs;
     import com.pulumi.aws.ssoadmin.SsoadminFunctions;
     import com.pulumi.aws.ssoadmin.inputs.GetInstancesArgs;
     import com.pulumi.aws.iam.IamFunctions;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementConditionArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
     import com.pulumi.aws.iam.Role;
     import com.pulumi.aws.iam.RoleArgs;
     import com.pulumi.aws.iam.RolePolicy;
     import com.pulumi.aws.iam.RolePolicyArgs;
     import com.pulumi.aws.transfer.WebApp;
     import com.pulumi.aws.transfer.WebAppArgs;
     import com.pulumi.aws.transfer.inputs.WebAppIdentityProviderDetailsArgs;
     import com.pulumi.aws.transfer.inputs.WebAppIdentityProviderDetailsIdentityCenterConfigArgs;
     import com.pulumi.aws.transfer.inputs.WebAppWebAppUnitArgs;
     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 = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder()
                 .build());
     
             final var currentGetRegion = AwsFunctions.getRegion(GetRegionArgs.builder()
                 .build());
     
             final var currentGetPartition = AwsFunctions.getPartition(GetPartitionArgs.builder()
                 .build());
     
             final var example = SsoadminFunctions.getInstances(GetInstancesArgs.builder()
                 .build());
     
             final var assumeRoleTransfer = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .conditions(GetPolicyDocumentStatementConditionArgs.builder()
                         .test("StringEquals")
                         .values(current.accountId())
                         .variable("aws:SourceAccount")
                         .build())
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("Service")
                         .identifiers("transfer.amazonaws.com")
                         .build())
                     .effect("Allow")
                     .actions(                
                         "sts:AssumeRole",
                         "sts:SetContext")
                     .build())
                 .build());
     
             var exampleRole = new Role("exampleRole", RoleArgs.builder()
                 .name("example")
                 .assumeRolePolicy(assumeRoleTransfer.json())
                 .build());
     
             final var exampleGetPolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(            
                     GetPolicyDocumentStatementArgs.builder()
                         .conditions(GetPolicyDocumentStatementConditionArgs.builder()
                             .test("StringEquals")
                             .values(current.accountId())
                             .variable("s3:ResourceAccount")
                             .build())
                         .effect("Allow")
                         .actions(                    
                             "s3:GetDataAccess",
                             "s3:ListCallerAccessGrants")
                         .resources(String.format("arn:%s:s3:%s:%s:access-grants/*", currentGetPartition.partition(),currentGetRegion.region(),current.accountId()))
                         .build(),
                     GetPolicyDocumentStatementArgs.builder()
                         .conditions(GetPolicyDocumentStatementConditionArgs.builder()
                             .test("StringEquals")
                             .values(current.accountId())
                             .variable("s3:ResourceAccount")
                             .build())
                         .effect("Allow")
                         .actions("s3:ListAccessGrantsInstances")
                         .resources("*")
                         .build())
                 .build());
     
             var exampleRolePolicy = new RolePolicy("exampleRolePolicy", RolePolicyArgs.builder()
                 .policy(exampleGetPolicyDocument.json())
                 .role(exampleRole.name())
                 .build());
     
             var exampleWebApp = new WebApp("exampleWebApp", WebAppArgs.builder()
                 .identityProviderDetails(WebAppIdentityProviderDetailsArgs.builder()
                     .identityCenterConfig(WebAppIdentityProviderDetailsIdentityCenterConfigArgs.builder()
                         .instanceArn(example.arns()[0])
                         .role(exampleRole.arn())
                         .build())
                     .build())
                 .webAppUnits(WebAppWebAppUnitArgs.builder()
                     .provisioned(1)
                     .build())
                 .tags(Map.of("Name", "test"))
                 .build());
     
         }
     }
     
     
    ## Import Using `pulumi import`, import Transfer Family Web App using the `webAppId`. For example: ```sh $ pulumi import aws:transfer/webApp:WebApp example web_app-id-12345678 ```
    • 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
    • Constructor Summary

      Constructors 
      Constructor Description
      WebApp​(java.lang.String name)  
      WebApp​(java.lang.String name, WebAppArgs args)  
      WebApp​(java.lang.String name, WebAppArgs args, com.pulumi.resources.CustomResourceOptions options)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.pulumi.core.Output<java.lang.String> accessEndpoint()  
      com.pulumi.core.Output<java.lang.String> arn()  
      com.pulumi.core.Output<java.util.Optional<WebAppEndpointDetails>> endpointDetails()  
      static WebApp get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, WebAppState 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<WebAppIdentityProviderDetails> identityProviderDetails()  
      com.pulumi.core.Output<java.lang.String> region()  
      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.lang.String> webAppEndpointPolicy()  
      com.pulumi.core.Output<java.lang.String> webAppId()  
      com.pulumi.core.Output<java.util.List<WebAppWebAppUnit>> webAppUnits()  
      • 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

      • WebApp

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

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

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

      • accessEndpoint

        public com.pulumi.core.Output<java.lang.String> accessEndpoint()
        Returns:
        URL provided to interact with the Transfer Family web app. If `endpoint_details.vpc` block is specified, `accessEndpoint` must not be provided.
      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        ARN of the Web App.
      • endpointDetails

        public com.pulumi.core.Output<java.util.Optional<WebAppEndpointDetails>> endpointDetails()
        Returns:
        Block for the endpoint configuration for the web app. If not specified, the web app will be created with a public endpoint. See `endpointDetails` Block below.
      • identityProviderDetails

        public com.pulumi.core.Output<WebAppIdentityProviderDetails> identityProviderDetails()
        Returns:
        Block for details of the identity provider to use with the web app. See `identityProviderDetails` Block below. The following arguments are optional:
      • 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.
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Key-value pairs that can be used to group and search for web apps.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
      • webAppEndpointPolicy

        public com.pulumi.core.Output<java.lang.String> webAppEndpointPolicy()
        Returns:
        Type of endpoint policy for the web app. Valid values are: `STANDARD`(default) or `FIPS`.
      • webAppId

        public com.pulumi.core.Output<java.lang.String> webAppId()
        Returns:
        ID of the Web App resource.
      • webAppUnits

        public com.pulumi.core.Output<java.util.List<WebAppWebAppUnit>> webAppUnits()
        Returns:
        Block for number of concurrent connections or the user sessions on the web app. See `webAppUnits` Block below.
      • get

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