d25d482dc2
Publish CLI Package / publish-npm (push) Waiting to run
Publish Python SDK / publish-pypi (push) Waiting to run
Publish TypeScript SDK / publish-npm (push) Waiting to run
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
88 lines
2.5 KiB
TypeScript
88 lines
2.5 KiB
TypeScript
import type {
|
|
CloudWatchPutLogGroupRetentionParams,
|
|
CloudWatchPutLogGroupRetentionResponse,
|
|
} from '@/tools/cloudwatch/types'
|
|
import type { ToolConfig } from '@/tools/types'
|
|
|
|
export const putLogGroupRetentionTool: ToolConfig<
|
|
CloudWatchPutLogGroupRetentionParams,
|
|
CloudWatchPutLogGroupRetentionResponse
|
|
> = {
|
|
id: 'cloudwatch_put_log_group_retention',
|
|
name: 'CloudWatch Set Log Group Retention',
|
|
description: 'Set (or clear, for never-expire) the retention period for a CloudWatch log group',
|
|
version: '1.0.0',
|
|
|
|
params: {
|
|
awsRegion: {
|
|
type: 'string',
|
|
required: true,
|
|
visibility: 'user-only',
|
|
description: 'AWS region (e.g., us-east-1)',
|
|
},
|
|
awsAccessKeyId: {
|
|
type: 'string',
|
|
required: true,
|
|
visibility: 'user-only',
|
|
description: 'AWS access key ID',
|
|
},
|
|
awsSecretAccessKey: {
|
|
type: 'string',
|
|
required: true,
|
|
visibility: 'user-only',
|
|
description: 'AWS secret access key',
|
|
},
|
|
logGroupName: {
|
|
type: 'string',
|
|
required: true,
|
|
visibility: 'user-or-llm',
|
|
description: 'CloudWatch log group name',
|
|
},
|
|
retentionInDays: {
|
|
type: 'number',
|
|
required: false,
|
|
visibility: 'user-or-llm',
|
|
description:
|
|
'Days to retain log events (one of 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653). Omit to make events never expire.',
|
|
},
|
|
},
|
|
|
|
request: {
|
|
url: '/api/tools/cloudwatch/put-log-group-retention',
|
|
method: 'POST',
|
|
headers: () => ({
|
|
'Content-Type': 'application/json',
|
|
}),
|
|
body: (params) => ({
|
|
region: params.awsRegion,
|
|
accessKeyId: params.awsAccessKeyId,
|
|
secretAccessKey: params.awsSecretAccessKey,
|
|
logGroupName: params.logGroupName,
|
|
...(params.retentionInDays !== undefined && { retentionInDays: params.retentionInDays }),
|
|
}),
|
|
},
|
|
|
|
transformResponse: async (response: Response) => {
|
|
const data = await response.json()
|
|
|
|
if (!response.ok) {
|
|
throw new Error(data.error || 'Failed to set CloudWatch log group retention')
|
|
}
|
|
|
|
return {
|
|
success: true,
|
|
output: data.output,
|
|
}
|
|
},
|
|
|
|
outputs: {
|
|
success: { type: 'boolean', description: 'Whether the retention policy was updated' },
|
|
logGroupName: { type: 'string', description: 'Log group the policy applies to' },
|
|
retentionInDays: {
|
|
type: 'number',
|
|
description: 'Retention period in days, or null if events never expire',
|
|
optional: true,
|
|
},
|
|
},
|
|
}
|