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 . 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, } }