feat: Lightsail + svg animation
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import type {CapabilitySchema, FieldSchema, ResourceActionName, ServiceSchema} from './types'
|
||||
|
||||
const resourceActions: CapabilitySchema<ResourceActionName>[] = [
|
||||
{name: 'list', label: 'List instances', enabled: true, status: 'available', runtimeRequired: true},
|
||||
{name: 'create', label: 'Create instance', enabled: true, status: 'available', runtimeRequired: true},
|
||||
{name: 'delete', label: 'Delete instance', enabled: true, status: 'available', runtimeRequired: true},
|
||||
{name: 'inspect', label: 'Inspect instance', enabled: true, status: 'available', runtimeRequired: true},
|
||||
{name: 'start', label: 'Start instance', enabled: true, status: 'available', runtimeRequired: true},
|
||||
{name: 'stop', label: 'Stop instance', enabled: true, status: 'available', runtimeRequired: true},
|
||||
{name: 'reboot', label: 'Reboot instance', enabled: true, status: 'available', runtimeRequired: true},
|
||||
{name: 'update', label: 'Manage public ports', enabled: true, status: 'available', runtimeRequired: true},
|
||||
]
|
||||
|
||||
const fields: FieldSchema[] = [
|
||||
{name: 'name', label: 'Instance name', type: 'text', required: true, validation: {minLength: 1, maxLength: 255, message: 'Provide an instance name.'}},
|
||||
{
|
||||
name: 'blueprintId', label: 'Blueprint', type: 'select', required: true, defaultValue: 'ubuntu_22_04', options: [
|
||||
{label: 'Ubuntu 22.04 LTS', value: 'ubuntu_22_04'},
|
||||
{label: 'Ubuntu 24.04 LTS', value: 'ubuntu_24_04'},
|
||||
{label: 'Amazon Linux 2023', value: 'amazon_linux_2023'},
|
||||
{label: 'Nginx', value: 'nginx'},
|
||||
{label: 'WordPress', value: 'wordpress'},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'bundleId', label: 'Instance plan', type: 'select', required: true, defaultValue: 'nano_3_0', options: [
|
||||
{label: 'Nano', value: 'nano_3_0'},
|
||||
{label: 'Micro', value: 'micro_3_0'},
|
||||
{label: 'Small', value: 'small_3_0'},
|
||||
{label: 'Medium', value: 'medium_3_0'},
|
||||
],
|
||||
},
|
||||
{name: 'availabilityZone', label: 'Availability Zone', type: 'text', required: true, defaultValue: 'us-east-1a'},
|
||||
]
|
||||
|
||||
export function awsLightsailSchema(): ServiceSchema {
|
||||
return {
|
||||
cloud: 'aws',
|
||||
service: 'lightsail',
|
||||
displayName: 'Amazon Lightsail',
|
||||
fields,
|
||||
actions: ['list', 'create', 'inspect', 'update', 'delete'],
|
||||
capabilities: {resourceActions},
|
||||
filters: [{name: 'search', label: 'Search', type: 'text', required: false}],
|
||||
columns: [
|
||||
{name: 'name', label: 'Name'},
|
||||
{name: 'status', label: 'State', format: 'badge'},
|
||||
{name: 'blueprint', label: 'Blueprint', path: 'metadata.blueprintName'},
|
||||
{name: 'bundle', label: 'Plan', path: 'metadata.bundleId'},
|
||||
{name: 'publicIp', label: 'Public IP', path: 'metadata.publicIpAddress'},
|
||||
{name: 'createdAt', label: 'Created', format: 'datetime'},
|
||||
],
|
||||
}
|
||||
}
|
||||
@@ -93,6 +93,12 @@ export const SERVICE_CATALOG = {
|
||||
group: 'Compute',
|
||||
order: 51,
|
||||
},
|
||||
lightsail: {
|
||||
displayName: 'Lightsail',
|
||||
iconKey: 'lightsail',
|
||||
group: 'Compute',
|
||||
order: 60,
|
||||
},
|
||||
codebuild: {
|
||||
displayName: 'CodeBuild',
|
||||
iconKey: 'codebuild',
|
||||
|
||||
Reference in New Issue
Block a user