Files
floci-ui/packages/api/src/cloud-spi/codepipelineSchema.ts
T
2026-10-05 11:06:57 -04:00

37 lines
2.8 KiB
TypeScript

import type {FieldSchema, ServiceSchema, TableColumnSchema} from './types'
const columns: TableColumnSchema[] = [
{name: 'name', label: 'Name'},
{name: 'executionMode', label: 'Execution mode', path: 'metadata.executionMode', format: 'badge'},
{name: 'version', label: 'Version', format: 'code'},
{name: 'updatedAt', label: 'Updated', path: 'metadata.updatedAt', format: 'datetime'},
]
const filters: FieldSchema[] = [{name: 'search', label: 'Search', type: 'text', required: false}]
export function awsCodePipelineSchema(): ServiceSchema {
return {
cloud: 'aws', service: 'codepipeline', displayName: 'AWS CodePipeline', fields: [
{name: 'name', label: 'Pipeline name', type: 'text', required: true, group: 'Pipeline'},
{name: 'roleArn', label: 'Service role ARN', type: 'text', required: true, group: 'Pipeline'},
{name: 'artifactBucket', label: 'Artifact S3 bucket', type: 'text', required: true, group: 'Artifacts'},
{name: 'sourceBucket', label: 'Source S3 bucket', type: 'text', required: true, group: 'Source'},
{name: 'sourceKey', label: 'Source object key', type: 'text', required: true, group: 'Source'},
{name: 'codeBuildProject', label: 'CodeBuild project', type: 'text', required: true, group: 'Build'},
{name: 'codeDeployApplication', label: 'CodeDeploy application', type: 'text', required: true, group: 'ECS deploy'},
{name: 'codeDeployDeploymentGroup', label: 'CodeDeploy deployment group', type: 'text', required: true, group: 'ECS deploy'},
{name: 'taskDefinitionPath', label: 'Task definition path', type: 'text', required: true, group: 'ECS deploy', defaultValue: 'taskdef.json'},
{name: 'appSpecPath', label: 'AppSpec path', type: 'text', required: true, group: 'ECS deploy', defaultValue: 'appspec.yaml'},
{name: 'imageContainerName', label: 'Task definition image placeholder', type: 'text', required: true, group: 'ECS deploy', defaultValue: 'IMAGE1_NAME', description: 'The placeholder in taskdef.json, for example <IMAGE1_NAME>. BuildOutput must contain imageDetail.json as {"ImageURI":"..."}, plus taskdef.json and appspec.yaml. The deployment group may target an ECS EC2 or Fargate service.'},
],
actions: ['list', 'create', 'delete', 'inspect'],
capabilities: {resourceActions: [
{name: 'list', label: 'List pipelines', enabled: true, status: 'available', runtimeRequired: true},
{name: 'inspect', label: 'Inspect pipeline', enabled: true, status: 'available', runtimeRequired: true},
{name: 'create', label: 'Create pipeline', enabled: true, status: 'available', runtimeRequired: true},
{name: 'delete', label: 'Delete pipeline', enabled: true, status: 'available', runtimeRequired: true},
]},
filters, columns,
}
}