Package com.pulumi.aws.amplify
Class App
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.amplify.App
-
public class App extends com.pulumi.resources.CustomResourceProvides an Amplify App resource, a fullstack serverless app hosted on the [AWS Amplify Console](https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html). > **Note:** When you create/update an Amplify App from the provider, you may end up with the error "BadRequestException: You should at least provide one valid token" because of authentication issues. See the section "Repository with Tokens" below. ## Example Usage
### Repository with Tokens If you create a new Amplify App with the `repository` argument, you also need to set `oauthToken` or `accessToken` for authentication. For GitHub, get a [personal access token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) and set `accessToken` as follows:package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.amplify.App; import com.pulumi.aws.amplify.AppArgs; import com.pulumi.aws.amplify.inputs.AppCustomRuleArgs; 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 App("example", AppArgs.builder() .customRules(AppCustomRuleArgs.builder() .source("/<*>") .status("404") .target("/index.html") .build()) .name("example") .repository("https://github.com/example/app") .buildSpec(""" version: 0.1 frontend: phases: preBuild: commands: - yarn install build: commands: - yarn run build artifacts: baseDirectory: build files: - '**/*' cache: paths: - node_modules/**/* """) .environmentVariables(Map.of("ENV", "test")) .build());}}
You can omit `accessToken` if you import an existing Amplify App created by the Amplify Console (using OAuth for authentication). ### Auto Branch Creationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.amplify.App; import com.pulumi.aws.amplify.AppArgs; 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 App("example", AppArgs.builder() .name("example") .repository("https://github.com/example/app") .accessToken("...") .build()); } }
### Basic Authorizationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.amplify.App; import com.pulumi.aws.amplify.AppArgs; import com.pulumi.aws.amplify.inputs.AppAutoBranchCreationConfigArgs; 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 App("example", AppArgs.builder() .autoBranchCreationConfig(AppAutoBranchCreationConfigArgs.builder() .enableAutoBuild(true) .build()) .name("example") .enableAutoBranchCreation(true) .autoBranchCreationPatterns( "*", "*/**") .build());}}
### Rewrites and Redirectspackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.amplify.App; import com.pulumi.aws.amplify.AppArgs; import com.pulumi.std.StdFunctions; import com.pulumi.std.inputs.Base64encodeArgs; 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 App("example", AppArgs.builder() .name("example") .enableBasicAuth(true) .basicAuthCredentials(StdFunctions.base64encode(Base64encodeArgs.builder() .input("username1:password1") .build()).result()) .build()); } }
### Custom Imagepackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.amplify.App; import com.pulumi.aws.amplify.AppArgs; import com.pulumi.aws.amplify.inputs.AppCustomRuleArgs; 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 App("example", AppArgs.builder() .customRules( AppCustomRuleArgs.builder() .source("/api/<*>") .status("200") .target("https://api.example.com/api/<*>") .build(), AppCustomRuleArgs.builder() .source("</^[^.]+$|\\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/>") .status("200") .target("/index.html") .build()) .name("example") .build()); } }
### Custom Headerspackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.amplify.App; import com.pulumi.aws.amplify.AppArgs; 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 App("example", AppArgs.builder() .name("example") .environmentVariables(Map.of("_CUSTOM_IMAGE", "node:16")) .build()); } }
### Job Configpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.amplify.App; import com.pulumi.aws.amplify.AppArgs; 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 App("example", AppArgs.builder() .name("example") .customHeaders(""" customHeaders: - pattern: '**' headers: - key: 'Strict-Transport-Security' value: 'max-age=31536000; includeSubDomains' - key: 'X-Frame-Options' value: 'SAMEORIGIN' - key: 'X-XSS-Protection' value: '1; mode=block' - key: 'X-Content-Type-Options' value: 'nosniff' - key: 'Content-Security-Policy' value: \"default-src 'self'\" """) .build()); } }
## Import Using `pulumi import`, import Amplify App using Amplify App ID (appId). For example: ```sh $ pulumi import aws:amplify/app:App example d2ypk4k47z8u6 ``` App ID can be obtained from App ARN (e.g., `arn:aws:amplify:us-east-1:12345678:apps/d2ypk4k47z8u6`).package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.amplify.App; import com.pulumi.aws.amplify.AppArgs; import com.pulumi.aws.amplify.inputs.AppJobConfigArgs; 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 App("example", AppArgs.builder() .jobConfig(AppJobConfigArgs.builder() .buildComputeType("STANDARD_8GB") .build()) .name("example") .build()); } }
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.util.Optional<java.lang.String>>accessToken()com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<AppAutoBranchCreationConfig>autoBranchCreationConfig()com.pulumi.core.Output<java.util.Optional<java.util.List<java.lang.String>>>autoBranchCreationPatterns()com.pulumi.core.Output<java.util.Optional<java.lang.String>>basicAuthCredentials()com.pulumi.core.Output<java.lang.String>buildSpec()com.pulumi.core.Output<AppCacheConfig>cacheConfig()com.pulumi.core.Output<java.util.Optional<java.lang.String>>computeRoleArn()com.pulumi.core.Output<java.lang.String>customHeaders()com.pulumi.core.Output<java.util.Optional<java.util.List<AppCustomRule>>>customRules()com.pulumi.core.Output<java.lang.String>defaultDomain()com.pulumi.core.Output<java.util.Optional<java.lang.String>>description()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>enableAutoBranchCreation()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>enableBasicAuth()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>enableBranchAutoBuild()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>enableBranchAutoDeletion()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>environmentVariables()static Appget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, AppState 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.util.Optional<java.lang.String>>iamServiceRoleArn()com.pulumi.core.Output<AppJobConfig>jobConfig()com.pulumi.core.Output<java.lang.String>name()com.pulumi.core.Output<java.util.Optional<java.lang.String>>oauthToken()com.pulumi.core.Output<java.util.Optional<java.lang.String>>platform()com.pulumi.core.Output<java.util.List<AppProductionBranch>>productionBranches()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.util.Optional<java.lang.String>>repository()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()
-
-
-
Constructor Detail
-
App
public App(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
App
public App(java.lang.String name, @Nullable AppArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
App
public App(java.lang.String name, @Nullable AppArgs 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
-
accessToken
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> accessToken()
- Returns:
- Personal access token for a third-party source control system for an Amplify app. This token must have write access to the relevant repo to create a webhook and a read-only deploy key for the Amplify project. The token is not stored, so after applying this attribute can be removed and the setup token deleted.
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN of the Amplify app.
-
autoBranchCreationConfig
public com.pulumi.core.Output<AppAutoBranchCreationConfig> autoBranchCreationConfig()
- Returns:
- Automated branch creation configuration for an Amplify app. See `autoBranchCreationConfig` Block for details.
-
autoBranchCreationPatterns
public com.pulumi.core.Output<java.util.Optional<java.util.List<java.lang.String>>> autoBranchCreationPatterns()
- Returns:
- Automated branch creation glob patterns for an Amplify app.
-
basicAuthCredentials
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> basicAuthCredentials()
- Returns:
- Credentials for basic authorization for an Amplify app.
-
buildSpec
public com.pulumi.core.Output<java.lang.String> buildSpec()
- Returns:
- The [build specification](https://docs.aws.amazon.com/amplify/latest/userguide/build-settings.html) (build spec) for an Amplify app.
-
cacheConfig
public com.pulumi.core.Output<AppCacheConfig> cacheConfig()
- Returns:
- Cache configuration for the Amplify app. See `cacheConfig` Block for details.
-
computeRoleArn
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> computeRoleArn()
- Returns:
- AWS Identity and Access Management (IAM) SSR compute role for an Amplify app.
-
customHeaders
public com.pulumi.core.Output<java.lang.String> customHeaders()
- Returns:
- The [custom HTTP headers](https://docs.aws.amazon.com/amplify/latest/userguide/custom-headers.html) for an Amplify app.
-
customRules
public com.pulumi.core.Output<java.util.Optional<java.util.List<AppCustomRule>>> customRules()
- Returns:
- Custom rewrite and redirect rules for an Amplify app. See `customRule` Block for details.
-
defaultDomain
public com.pulumi.core.Output<java.lang.String> defaultDomain()
- Returns:
- Default domain for the Amplify app.
-
description
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
- Returns:
- Description for an Amplify app.
-
enableAutoBranchCreation
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enableAutoBranchCreation()
- Returns:
- Enables automated branch creation for an Amplify app.
-
enableBasicAuth
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enableBasicAuth()
- Returns:
- Enables basic authorization for an Amplify app. This will apply to all branches that are part of this app.
-
enableBranchAutoBuild
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enableBranchAutoBuild()
- Returns:
- Enables auto-building of branches for the Amplify App.
-
enableBranchAutoDeletion
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enableBranchAutoDeletion()
- Returns:
- Automatically disconnects a branch in the Amplify Console when you delete a branch from your Git repository.
-
environmentVariables
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> environmentVariables()
- Returns:
- Environment variables map for an Amplify app.
-
iamServiceRoleArn
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> iamServiceRoleArn()
- Returns:
- AWS Identity and Access Management (IAM) service role for an Amplify app.
-
jobConfig
public com.pulumi.core.Output<AppJobConfig> jobConfig()
- Returns:
- Used to configure the [Amplify Application build instance compute type](https://docs.aws.amazon.com/amplify/latest/APIReference/API_JobConfig.html#amplify-Type-JobConfig-buildComputeType). See `jobConfig` Block for details.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- Name for an Amplify app.
-
oauthToken
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> oauthToken()
- Returns:
- OAuth token for a third-party source control system for an Amplify app. The OAuth token is used to create a webhook and a read-only deploy key. The OAuth token is not stored.
-
platform
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> platform()
- Returns:
- Platform or framework for an Amplify app. Valid values: `WEB`, `WEB_COMPUTE`. Default value: `WEB`.
-
productionBranches
public com.pulumi.core.Output<java.util.List<AppProductionBranch>> productionBranches()
- Returns:
- Describes the information about a production branch for an Amplify app. A `productionBranch` block is documented below.
-
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.
-
repository
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> repository()
- Returns:
- Repository for an Amplify app.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- Key-value mapping 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 App get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable AppState 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.
-
-