chore: import upstream snapshot with attribution
CI / Migrate Dev DB (push) Has been skipped
CI / Detect Version (push) Has been cancelled
CI / Migrate DB (push) Has been cancelled
CI / Build Dev ECR (./docker/app.Dockerfile, ECR_APP) (push) Has been cancelled
CI / Build Dev ECR (./docker/db.Dockerfile, ECR_MIGRATIONS) (push) Has been cancelled
CI / Build Dev ECR (./docker/pii.Dockerfile, ECR_PII) (push) Has been cancelled
CI / Build Dev ECR (./docker/realtime.Dockerfile, ECR_REALTIME) (push) Has been cancelled
CI / Deploy Trigger.dev (Dev) (push) Has been cancelled
CI / Build AMD64 (./docker/app.Dockerfile, ECR_APP, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build AMD64 (./docker/db.Dockerfile, ECR_MIGRATIONS, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build AMD64 (./docker/pii.Dockerfile, ECR_PII, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build AMD64 (./docker/realtime.Dockerfile, ECR_REALTIME, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/app.Dockerfile, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/db.Dockerfile, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/pii.Dockerfile, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/realtime.Dockerfile, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Check Docs Changes (push) Has been cancelled
CI / Process Docs (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / Test and Build (push) Has been cancelled
Publish CLI Package / publish-npm (push) Has been cancelled
Publish Python SDK / publish-pypi (push) Has been cancelled
Publish TypeScript SDK / publish-npm (push) Has been cancelled
CI / Migrate Dev DB (push) Has been skipped
CI / Detect Version (push) Has been cancelled
CI / Migrate DB (push) Has been cancelled
CI / Build Dev ECR (./docker/app.Dockerfile, ECR_APP) (push) Has been cancelled
CI / Build Dev ECR (./docker/db.Dockerfile, ECR_MIGRATIONS) (push) Has been cancelled
CI / Build Dev ECR (./docker/pii.Dockerfile, ECR_PII) (push) Has been cancelled
CI / Build Dev ECR (./docker/realtime.Dockerfile, ECR_REALTIME) (push) Has been cancelled
CI / Deploy Trigger.dev (Dev) (push) Has been cancelled
CI / Build AMD64 (./docker/app.Dockerfile, ECR_APP, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build AMD64 (./docker/db.Dockerfile, ECR_MIGRATIONS, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build AMD64 (./docker/pii.Dockerfile, ECR_PII, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build AMD64 (./docker/realtime.Dockerfile, ECR_REALTIME, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/app.Dockerfile, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/db.Dockerfile, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/pii.Dockerfile, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/realtime.Dockerfile, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Check Docs Changes (push) Has been cancelled
CI / Process Docs (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / Test and Build (push) Has been cancelled
Publish CLI Package / publish-npm (push) Has been cancelled
Publish Python SDK / publish-pypi (push) Has been cancelled
Publish TypeScript SDK / publish-npm (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,681 @@
|
||||
import {
|
||||
AppConfigClient,
|
||||
CreateApplicationCommand,
|
||||
CreateConfigurationProfileCommand,
|
||||
CreateEnvironmentCommand,
|
||||
CreateHostedConfigurationVersionCommand,
|
||||
DeleteApplicationCommand,
|
||||
DeleteConfigurationProfileCommand,
|
||||
DeleteEnvironmentCommand,
|
||||
DeleteHostedConfigurationVersionCommand,
|
||||
GetApplicationCommand,
|
||||
GetConfigurationProfileCommand,
|
||||
GetDeploymentCommand,
|
||||
GetEnvironmentCommand,
|
||||
GetHostedConfigurationVersionCommand,
|
||||
ListApplicationsCommand,
|
||||
ListConfigurationProfilesCommand,
|
||||
ListDeploymentStrategiesCommand,
|
||||
ListDeploymentsCommand,
|
||||
ListEnvironmentsCommand,
|
||||
ListHostedConfigurationVersionsCommand,
|
||||
StartDeploymentCommand,
|
||||
StopDeploymentCommand,
|
||||
UpdateApplicationCommand,
|
||||
UpdateConfigurationProfileCommand,
|
||||
UpdateEnvironmentCommand,
|
||||
} from '@aws-sdk/client-appconfig'
|
||||
import {
|
||||
AppConfigDataClient,
|
||||
GetLatestConfigurationCommand,
|
||||
StartConfigurationSessionCommand,
|
||||
} from '@aws-sdk/client-appconfigdata'
|
||||
import type { AppConfigConnectionConfig } from '@/tools/appconfig/types'
|
||||
|
||||
export function createAppConfigClient(config: AppConfigConnectionConfig): AppConfigClient {
|
||||
return new AppConfigClient({
|
||||
region: config.region,
|
||||
credentials: {
|
||||
accessKeyId: config.accessKeyId,
|
||||
secretAccessKey: config.secretAccessKey,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
export function createAppConfigDataClient(config: AppConfigConnectionConfig): AppConfigDataClient {
|
||||
return new AppConfigDataClient({
|
||||
region: config.region,
|
||||
credentials: {
|
||||
accessKeyId: config.accessKeyId,
|
||||
secretAccessKey: config.secretAccessKey,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
const textDecoder = new TextDecoder()
|
||||
|
||||
function decodeContent(content?: Uint8Array): string {
|
||||
if (!content || content.length === 0) return ''
|
||||
return textDecoder.decode(content)
|
||||
}
|
||||
|
||||
export async function listApplications(
|
||||
client: AppConfigClient,
|
||||
maxResults?: number | null,
|
||||
nextToken?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new ListApplicationsCommand({
|
||||
...(maxResults ? { MaxResults: maxResults } : {}),
|
||||
...(nextToken ? { NextToken: nextToken } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
const applications = (response.Items ?? []).map((item) => ({
|
||||
id: item.Id ?? '',
|
||||
name: item.Name ?? '',
|
||||
description: item.Description ?? null,
|
||||
}))
|
||||
|
||||
return {
|
||||
applications,
|
||||
nextToken: response.NextToken ?? null,
|
||||
count: applications.length,
|
||||
}
|
||||
}
|
||||
|
||||
export async function createApplication(
|
||||
client: AppConfigClient,
|
||||
name: string,
|
||||
description?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new CreateApplicationCommand({
|
||||
Name: name,
|
||||
...(description ? { Description: description } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
message: `Application "${response.Name ?? name}" created`,
|
||||
id: response.Id ?? '',
|
||||
name: response.Name ?? '',
|
||||
description: response.Description ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function listEnvironments(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
maxResults?: number | null,
|
||||
nextToken?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new ListEnvironmentsCommand({
|
||||
ApplicationId: applicationId,
|
||||
...(maxResults ? { MaxResults: maxResults } : {}),
|
||||
...(nextToken ? { NextToken: nextToken } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
const environments = (response.Items ?? []).map((item) => ({
|
||||
applicationId: item.ApplicationId ?? '',
|
||||
id: item.Id ?? '',
|
||||
name: item.Name ?? '',
|
||||
description: item.Description ?? null,
|
||||
state: item.State ?? null,
|
||||
}))
|
||||
|
||||
return {
|
||||
environments,
|
||||
nextToken: response.NextToken ?? null,
|
||||
count: environments.length,
|
||||
}
|
||||
}
|
||||
|
||||
export async function createEnvironment(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
name: string,
|
||||
description?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new CreateEnvironmentCommand({
|
||||
ApplicationId: applicationId,
|
||||
Name: name,
|
||||
...(description ? { Description: description } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
message: `Environment "${response.Name ?? name}" created`,
|
||||
applicationId: response.ApplicationId ?? applicationId,
|
||||
id: response.Id ?? '',
|
||||
name: response.Name ?? '',
|
||||
state: response.State ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function listConfigurationProfiles(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
maxResults?: number | null,
|
||||
nextToken?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new ListConfigurationProfilesCommand({
|
||||
ApplicationId: applicationId,
|
||||
...(maxResults ? { MaxResults: maxResults } : {}),
|
||||
...(nextToken ? { NextToken: nextToken } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
const configurationProfiles = (response.Items ?? []).map((item) => ({
|
||||
applicationId: item.ApplicationId ?? '',
|
||||
id: item.Id ?? '',
|
||||
name: item.Name ?? '',
|
||||
description: null,
|
||||
locationUri: item.LocationUri ?? null,
|
||||
retrievalRoleArn: null,
|
||||
type: item.Type ?? null,
|
||||
validatorTypes: item.ValidatorTypes ?? [],
|
||||
}))
|
||||
|
||||
return {
|
||||
configurationProfiles,
|
||||
nextToken: response.NextToken ?? null,
|
||||
count: configurationProfiles.length,
|
||||
}
|
||||
}
|
||||
|
||||
export async function createConfigurationProfile(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
name: string,
|
||||
locationUri: string,
|
||||
description?: string | null,
|
||||
retrievalRoleArn?: string | null,
|
||||
type?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new CreateConfigurationProfileCommand({
|
||||
ApplicationId: applicationId,
|
||||
Name: name,
|
||||
LocationUri: locationUri,
|
||||
...(description ? { Description: description } : {}),
|
||||
...(retrievalRoleArn ? { RetrievalRoleArn: retrievalRoleArn } : {}),
|
||||
...(type ? { Type: type } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
message: `Configuration profile "${response.Name ?? name}" created`,
|
||||
applicationId: response.ApplicationId ?? applicationId,
|
||||
id: response.Id ?? '',
|
||||
name: response.Name ?? '',
|
||||
locationUri: response.LocationUri ?? null,
|
||||
type: response.Type ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function createHostedConfigurationVersion(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
configurationProfileId: string,
|
||||
content: string,
|
||||
contentType: string,
|
||||
description?: string | null,
|
||||
latestVersionNumber?: number | null,
|
||||
versionLabel?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new CreateHostedConfigurationVersionCommand({
|
||||
ApplicationId: applicationId,
|
||||
ConfigurationProfileId: configurationProfileId,
|
||||
Content: new TextEncoder().encode(content),
|
||||
ContentType: contentType,
|
||||
...(description ? { Description: description } : {}),
|
||||
...(latestVersionNumber != null ? { LatestVersionNumber: latestVersionNumber } : {}),
|
||||
...(versionLabel ? { VersionLabel: versionLabel } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
message: `Hosted configuration version ${response.VersionNumber ?? ''} created`,
|
||||
applicationId: response.ApplicationId ?? applicationId,
|
||||
configurationProfileId: response.ConfigurationProfileId ?? configurationProfileId,
|
||||
versionNumber: response.VersionNumber ?? null,
|
||||
contentType: response.ContentType ?? null,
|
||||
versionLabel: response.VersionLabel ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function getHostedConfigurationVersion(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
configurationProfileId: string,
|
||||
versionNumber: number
|
||||
) {
|
||||
const response = await client.send(
|
||||
new GetHostedConfigurationVersionCommand({
|
||||
ApplicationId: applicationId,
|
||||
ConfigurationProfileId: configurationProfileId,
|
||||
VersionNumber: versionNumber,
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
applicationId: response.ApplicationId ?? applicationId,
|
||||
configurationProfileId: response.ConfigurationProfileId ?? configurationProfileId,
|
||||
versionNumber: response.VersionNumber ?? null,
|
||||
description: response.Description ?? null,
|
||||
content: decodeContent(response.Content),
|
||||
contentType: response.ContentType ?? null,
|
||||
versionLabel: response.VersionLabel ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function listHostedConfigurationVersions(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
configurationProfileId: string,
|
||||
maxResults?: number | null,
|
||||
nextToken?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new ListHostedConfigurationVersionsCommand({
|
||||
ApplicationId: applicationId,
|
||||
ConfigurationProfileId: configurationProfileId,
|
||||
...(maxResults ? { MaxResults: maxResults } : {}),
|
||||
...(nextToken ? { NextToken: nextToken } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
const versions = (response.Items ?? []).map((item) => ({
|
||||
applicationId: item.ApplicationId ?? null,
|
||||
configurationProfileId: item.ConfigurationProfileId ?? null,
|
||||
versionNumber: item.VersionNumber ?? null,
|
||||
description: item.Description ?? null,
|
||||
contentType: item.ContentType ?? null,
|
||||
versionLabel: item.VersionLabel ?? null,
|
||||
}))
|
||||
|
||||
return {
|
||||
versions,
|
||||
nextToken: response.NextToken ?? null,
|
||||
count: versions.length,
|
||||
}
|
||||
}
|
||||
|
||||
export async function listDeploymentStrategies(
|
||||
client: AppConfigClient,
|
||||
maxResults?: number | null,
|
||||
nextToken?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new ListDeploymentStrategiesCommand({
|
||||
...(maxResults ? { MaxResults: maxResults } : {}),
|
||||
...(nextToken ? { NextToken: nextToken } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
const deploymentStrategies = (response.Items ?? []).map((item) => ({
|
||||
id: item.Id ?? '',
|
||||
name: item.Name ?? '',
|
||||
description: item.Description ?? null,
|
||||
deploymentDurationInMinutes: item.DeploymentDurationInMinutes ?? null,
|
||||
growthType: item.GrowthType ?? null,
|
||||
growthFactor: item.GrowthFactor ?? null,
|
||||
finalBakeTimeInMinutes: item.FinalBakeTimeInMinutes ?? null,
|
||||
replicateTo: item.ReplicateTo ?? null,
|
||||
}))
|
||||
|
||||
return {
|
||||
deploymentStrategies,
|
||||
nextToken: response.NextToken ?? null,
|
||||
count: deploymentStrategies.length,
|
||||
}
|
||||
}
|
||||
|
||||
export async function startDeployment(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
environmentId: string,
|
||||
deploymentStrategyId: string,
|
||||
configurationProfileId: string,
|
||||
configurationVersion: string,
|
||||
description?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new StartDeploymentCommand({
|
||||
ApplicationId: applicationId,
|
||||
EnvironmentId: environmentId,
|
||||
DeploymentStrategyId: deploymentStrategyId,
|
||||
ConfigurationProfileId: configurationProfileId,
|
||||
ConfigurationVersion: configurationVersion,
|
||||
...(description ? { Description: description } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
message: `Deployment ${response.DeploymentNumber ?? ''} started`,
|
||||
deploymentNumber: response.DeploymentNumber ?? null,
|
||||
state: response.State ?? null,
|
||||
percentageComplete: response.PercentageComplete ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function getDeployment(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
environmentId: string,
|
||||
deploymentNumber: number
|
||||
) {
|
||||
const response = await client.send(
|
||||
new GetDeploymentCommand({
|
||||
ApplicationId: applicationId,
|
||||
EnvironmentId: environmentId,
|
||||
DeploymentNumber: deploymentNumber,
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
applicationId: response.ApplicationId ?? applicationId,
|
||||
environmentId: response.EnvironmentId ?? environmentId,
|
||||
deploymentStrategyId: response.DeploymentStrategyId ?? '',
|
||||
configurationProfileId: response.ConfigurationProfileId ?? '',
|
||||
deploymentNumber: response.DeploymentNumber ?? null,
|
||||
configurationName: response.ConfigurationName ?? null,
|
||||
configurationVersion: response.ConfigurationVersion ?? null,
|
||||
description: response.Description ?? null,
|
||||
state: response.State ?? null,
|
||||
percentageComplete: response.PercentageComplete ?? null,
|
||||
startedAt: response.StartedAt?.toISOString() ?? null,
|
||||
completedAt: response.CompletedAt?.toISOString() ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function listDeployments(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
environmentId: string,
|
||||
maxResults?: number | null,
|
||||
nextToken?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new ListDeploymentsCommand({
|
||||
ApplicationId: applicationId,
|
||||
EnvironmentId: environmentId,
|
||||
...(maxResults ? { MaxResults: maxResults } : {}),
|
||||
...(nextToken ? { NextToken: nextToken } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
const deployments = (response.Items ?? []).map((item) => ({
|
||||
deploymentNumber: item.DeploymentNumber ?? null,
|
||||
configurationName: item.ConfigurationName ?? null,
|
||||
configurationVersion: item.ConfigurationVersion ?? null,
|
||||
deploymentDurationInMinutes: item.DeploymentDurationInMinutes ?? null,
|
||||
growthType: item.GrowthType ?? null,
|
||||
growthFactor: item.GrowthFactor ?? null,
|
||||
finalBakeTimeInMinutes: item.FinalBakeTimeInMinutes ?? null,
|
||||
state: item.State ?? null,
|
||||
percentageComplete: item.PercentageComplete ?? null,
|
||||
startedAt: item.StartedAt?.toISOString() ?? null,
|
||||
completedAt: item.CompletedAt?.toISOString() ?? null,
|
||||
versionLabel: item.VersionLabel ?? null,
|
||||
}))
|
||||
|
||||
return {
|
||||
deployments,
|
||||
nextToken: response.NextToken ?? null,
|
||||
count: deployments.length,
|
||||
}
|
||||
}
|
||||
|
||||
export async function stopDeployment(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
environmentId: string,
|
||||
deploymentNumber: number
|
||||
) {
|
||||
const response = await client.send(
|
||||
new StopDeploymentCommand({
|
||||
ApplicationId: applicationId,
|
||||
EnvironmentId: environmentId,
|
||||
DeploymentNumber: deploymentNumber,
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
message: `Deployment ${response.DeploymentNumber ?? deploymentNumber} stopped`,
|
||||
deploymentNumber: response.DeploymentNumber ?? null,
|
||||
state: response.State ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function getConfiguration(
|
||||
client: AppConfigDataClient,
|
||||
applicationId: string,
|
||||
environmentId: string,
|
||||
configurationProfileId: string
|
||||
) {
|
||||
const session = await client.send(
|
||||
new StartConfigurationSessionCommand({
|
||||
ApplicationIdentifier: applicationId,
|
||||
EnvironmentIdentifier: environmentId,
|
||||
ConfigurationProfileIdentifier: configurationProfileId,
|
||||
})
|
||||
)
|
||||
|
||||
const response = await client.send(
|
||||
new GetLatestConfigurationCommand({
|
||||
ConfigurationToken: session.InitialConfigurationToken,
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
configuration: decodeContent(response.Configuration),
|
||||
contentType: response.ContentType ?? null,
|
||||
versionLabel: response.VersionLabel ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function getApplication(client: AppConfigClient, applicationId: string) {
|
||||
const response = await client.send(new GetApplicationCommand({ ApplicationId: applicationId }))
|
||||
|
||||
return {
|
||||
id: response.Id ?? '',
|
||||
name: response.Name ?? '',
|
||||
description: response.Description ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function updateApplication(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
name?: string | null,
|
||||
description?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new UpdateApplicationCommand({
|
||||
ApplicationId: applicationId,
|
||||
...(name ? { Name: name } : {}),
|
||||
...(description != null ? { Description: description } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
message: `Application "${response.Name ?? applicationId}" updated`,
|
||||
id: response.Id ?? '',
|
||||
name: response.Name ?? '',
|
||||
description: response.Description ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function deleteApplication(client: AppConfigClient, applicationId: string) {
|
||||
await client.send(new DeleteApplicationCommand({ ApplicationId: applicationId }))
|
||||
|
||||
return {
|
||||
message: `Application ${applicationId} deleted`,
|
||||
id: applicationId,
|
||||
}
|
||||
}
|
||||
|
||||
export async function getEnvironment(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
environmentId: string
|
||||
) {
|
||||
const response = await client.send(
|
||||
new GetEnvironmentCommand({ ApplicationId: applicationId, EnvironmentId: environmentId })
|
||||
)
|
||||
|
||||
return {
|
||||
applicationId: response.ApplicationId ?? applicationId,
|
||||
id: response.Id ?? '',
|
||||
name: response.Name ?? '',
|
||||
description: response.Description ?? null,
|
||||
state: response.State ?? null,
|
||||
monitors: (response.Monitors ?? []).map((monitor) => ({
|
||||
alarmArn: monitor.AlarmArn ?? '',
|
||||
alarmRoleArn: monitor.AlarmRoleArn ?? null,
|
||||
})),
|
||||
}
|
||||
}
|
||||
|
||||
export async function updateEnvironment(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
environmentId: string,
|
||||
name?: string | null,
|
||||
description?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new UpdateEnvironmentCommand({
|
||||
ApplicationId: applicationId,
|
||||
EnvironmentId: environmentId,
|
||||
...(name ? { Name: name } : {}),
|
||||
...(description != null ? { Description: description } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
message: `Environment "${response.Name ?? environmentId}" updated`,
|
||||
applicationId: response.ApplicationId ?? applicationId,
|
||||
id: response.Id ?? '',
|
||||
name: response.Name ?? '',
|
||||
state: response.State ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function deleteEnvironment(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
environmentId: string
|
||||
) {
|
||||
await client.send(
|
||||
new DeleteEnvironmentCommand({ ApplicationId: applicationId, EnvironmentId: environmentId })
|
||||
)
|
||||
|
||||
return {
|
||||
message: `Environment ${environmentId} deleted`,
|
||||
applicationId,
|
||||
id: environmentId,
|
||||
}
|
||||
}
|
||||
|
||||
export async function getConfigurationProfile(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
configurationProfileId: string
|
||||
) {
|
||||
const response = await client.send(
|
||||
new GetConfigurationProfileCommand({
|
||||
ApplicationId: applicationId,
|
||||
ConfigurationProfileId: configurationProfileId,
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
applicationId: response.ApplicationId ?? applicationId,
|
||||
id: response.Id ?? '',
|
||||
name: response.Name ?? '',
|
||||
description: response.Description ?? null,
|
||||
locationUri: response.LocationUri ?? null,
|
||||
retrievalRoleArn: response.RetrievalRoleArn ?? null,
|
||||
type: response.Type ?? null,
|
||||
validators: (response.Validators ?? []).map((validator) => ({
|
||||
type: validator.Type ?? '',
|
||||
})),
|
||||
}
|
||||
}
|
||||
|
||||
export async function updateConfigurationProfile(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
configurationProfileId: string,
|
||||
name?: string | null,
|
||||
description?: string | null,
|
||||
retrievalRoleArn?: string | null
|
||||
) {
|
||||
const response = await client.send(
|
||||
new UpdateConfigurationProfileCommand({
|
||||
ApplicationId: applicationId,
|
||||
ConfigurationProfileId: configurationProfileId,
|
||||
...(name ? { Name: name } : {}),
|
||||
...(description != null ? { Description: description } : {}),
|
||||
...(retrievalRoleArn != null ? { RetrievalRoleArn: retrievalRoleArn } : {}),
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
message: `Configuration profile "${response.Name ?? configurationProfileId}" updated`,
|
||||
applicationId: response.ApplicationId ?? applicationId,
|
||||
id: response.Id ?? '',
|
||||
name: response.Name ?? '',
|
||||
description: response.Description ?? null,
|
||||
type: response.Type ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
export async function deleteConfigurationProfile(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
configurationProfileId: string
|
||||
) {
|
||||
await client.send(
|
||||
new DeleteConfigurationProfileCommand({
|
||||
ApplicationId: applicationId,
|
||||
ConfigurationProfileId: configurationProfileId,
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
message: `Configuration profile ${configurationProfileId} deleted`,
|
||||
applicationId,
|
||||
id: configurationProfileId,
|
||||
}
|
||||
}
|
||||
|
||||
export async function deleteHostedConfigurationVersion(
|
||||
client: AppConfigClient,
|
||||
applicationId: string,
|
||||
configurationProfileId: string,
|
||||
versionNumber: number
|
||||
) {
|
||||
await client.send(
|
||||
new DeleteHostedConfigurationVersionCommand({
|
||||
ApplicationId: applicationId,
|
||||
ConfigurationProfileId: configurationProfileId,
|
||||
VersionNumber: versionNumber,
|
||||
})
|
||||
)
|
||||
|
||||
return {
|
||||
message: `Hosted configuration version ${versionNumber} deleted`,
|
||||
applicationId,
|
||||
configurationProfileId,
|
||||
versionNumber,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user