createApp method
- required String name,
- String? accessToken,
- AutoBranchCreationConfig? autoBranchCreationConfig,
- List<
String> ? autoBranchCreationPatterns, - String? basicAuthCredentials,
- String? buildSpec,
- CacheConfig? cacheConfig,
- String? computeRoleArn,
- String? customHeaders,
- List<
CustomRule> ? customRules, - String? description,
- bool? enableAutoBranchCreation,
- bool? enableBasicAuth,
- bool? enableBranchAutoBuild,
- bool? enableBranchAutoDeletion,
- Map<
String, String> ? environmentVariables, - String? iamServiceRoleArn,
- JobConfig? jobConfig,
- String? oauthToken,
- Platform? platform,
- String? repository,
- Map<
String, String> ? tags,
Creates a new Amplify app.
May throw BadRequestException.
May throw DependentServiceFailureException.
May throw InternalFailureException.
May throw LimitExceededException.
May throw UnauthorizedException.
Parameter name :
The name of the Amplify app.
Parameter accessToken :
The personal access token for a GitHub repository for an Amplify app. The
personal access token is used to authorize access to a GitHub repository
using the Amplify GitHub App. The token is not stored.
Use accessToken for GitHub repositories only. To authorize
access to a repository provider such as Bitbucket or CodeCommit, use
oauthToken.
You must specify either accessToken or
oauthToken when you create a new app.
Existing Amplify apps deployed from a GitHub repository using OAuth continue to work with CI/CD. However, we strongly recommend that you migrate these apps to use the GitHub App. For more information, see Migrating an existing OAuth app to the Amplify GitHub App in the Amplify User Guide .
Parameter autoBranchCreationConfig :
The automated branch creation configuration for an Amplify app.
Parameter autoBranchCreationPatterns :
The automated branch creation glob patterns for an Amplify app.
Parameter basicAuthCredentials :
The credentials for basic authorization for an Amplify app. You must
base64-encode the authorization credentials and provide them in the format
user:password.
Parameter buildSpec :
The build specification (build spec) for an Amplify app.
Parameter cacheConfig :
The cache configuration for the Amplify app.
Parameter computeRoleArn :
The Amazon Resource Name (ARN) of the IAM role to assign to an SSR app.
The SSR Compute role allows the Amplify Hosting compute service to
securely access specific Amazon Web Services resources based on the role's
permissions. For more information about the SSR Compute role, see Adding
an SSR Compute role in the Amplify User Guide.
Parameter customHeaders :
The custom HTTP headers for an Amplify app.
Parameter customRules :
The custom rewrite and redirect rules for an Amplify app.
Parameter description :
The description of the Amplify app.
Parameter enableAutoBranchCreation :
Enables automated branch creation for an Amplify app.
Parameter enableBasicAuth :
Enables basic authorization for an Amplify app. This will apply to all
branches that are part of this app.
Parameter enableBranchAutoBuild :
Enables the auto building of branches for an Amplify app.
Parameter enableBranchAutoDeletion :
Automatically disconnects a branch in the Amplify console when you delete
a branch from your Git repository.
Parameter environmentVariables :
The environment variables map for an Amplify app.
For a list of the environment variables that are accessible to Amplify by default, see Amplify Environment variables in the Amplify Hosting User Guide.
Parameter iamServiceRoleArn :
The Amazon Resource Name (ARN) of the IAM service role for the Amplify
app.
Parameter jobConfig :
Describes the configuration details that apply to the jobs for an Amplify
app.
Parameter oauthToken :
The 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 using SSH cloning. The OAuth token is not stored.
Use oauthToken for repository providers other than GitHub,
such as Bitbucket or CodeCommit. To authorize access to GitHub as your
repository provider, use accessToken.
You must specify either oauthToken or
accessToken when you create a new app.
Existing Amplify apps deployed from a GitHub repository using OAuth continue to work with CI/CD. However, we strongly recommend that you migrate these apps to use the GitHub App. For more information, see Migrating an existing OAuth app to the Amplify GitHub App in the Amplify User Guide .
Parameter platform :
The platform for the Amplify app. For a static app, set the platform type
to WEB. For a dynamic server-side rendered (SSR) app, set the
platform type to WEB_COMPUTE. For an app requiring Amplify
Hosting's original SSR support only, set the platform type to
WEB_DYNAMIC.
If you are deploying an SSG only app with Next.js version 14 or later, you
must set the platform type to WEB_COMPUTE and set the
artifacts baseDirectory to .next in the
application's build settings. For an example of the build specification
settings, see Amplify
build settings for a Next.js 14 SSG application in the Amplify
Hosting User Guide.
Parameter repository :
The Git repository for the Amplify app.
Parameter tags :
The tag for an Amplify app.
Implementation
Future<CreateAppResult> createApp({
required String name,
String? accessToken,
AutoBranchCreationConfig? autoBranchCreationConfig,
List<String>? autoBranchCreationPatterns,
String? basicAuthCredentials,
String? buildSpec,
CacheConfig? cacheConfig,
String? computeRoleArn,
String? customHeaders,
List<CustomRule>? customRules,
String? description,
bool? enableAutoBranchCreation,
bool? enableBasicAuth,
bool? enableBranchAutoBuild,
bool? enableBranchAutoDeletion,
Map<String, String>? environmentVariables,
String? iamServiceRoleArn,
JobConfig? jobConfig,
String? oauthToken,
Platform? platform,
String? repository,
Map<String, String>? tags,
}) async {
final $payload = <String, dynamic>{
'name': name,
if (accessToken != null) 'accessToken': accessToken,
if (autoBranchCreationConfig != null)
'autoBranchCreationConfig': autoBranchCreationConfig,
if (autoBranchCreationPatterns != null)
'autoBranchCreationPatterns': autoBranchCreationPatterns,
if (basicAuthCredentials != null)
'basicAuthCredentials': basicAuthCredentials,
if (buildSpec != null) 'buildSpec': buildSpec,
if (cacheConfig != null) 'cacheConfig': cacheConfig,
if (computeRoleArn != null) 'computeRoleArn': computeRoleArn,
if (customHeaders != null) 'customHeaders': customHeaders,
if (customRules != null) 'customRules': customRules,
if (description != null) 'description': description,
if (enableAutoBranchCreation != null)
'enableAutoBranchCreation': enableAutoBranchCreation,
if (enableBasicAuth != null) 'enableBasicAuth': enableBasicAuth,
if (enableBranchAutoBuild != null)
'enableBranchAutoBuild': enableBranchAutoBuild,
if (enableBranchAutoDeletion != null)
'enableBranchAutoDeletion': enableBranchAutoDeletion,
if (environmentVariables != null)
'environmentVariables': environmentVariables,
if (iamServiceRoleArn != null) 'iamServiceRoleArn': iamServiceRoleArn,
if (jobConfig != null) 'jobConfig': jobConfig,
if (oauthToken != null) 'oauthToken': oauthToken,
if (platform != null) 'platform': platform.value,
if (repository != null) 'repository': repository,
if (tags != null) 'tags': tags,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri: '/apps',
exceptionFnMap: _exceptionFns,
);
return CreateAppResult.fromJson(response);
}