Example #1
0
cst_memcached._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        EnumDyField.data_source('Status', 'data.cache_cluster_status', default_state={
            'safe': ['available'],
        }),
        TextDyField.data_source('Nodes', 'data.num_cache_nodes'),
        TextDyField.data_source('Node Type', 'data.cache_node_type'),
        TextDyField.data_source('Zone', 'data.preferred_availability_zone'),
        TextDyField.data_source('Configuration Endpoint', 'data.configuration_endpoint_display'),
        TextDyField.data_source('ARN', 'data.arn', options={
            'is_optional': True
        }),
        TextDyField.data_source('Cache Node Type', 'instance_type', options={
            'is_optional': True
        }),
        TextDyField.data_source('Engine Version', 'data.engine_version', options={
            'is_optional': True
        }),
        TextDyField.data_source('Description', 'data.description', options={
            'is_optional': True
        }),
        TextDyField.data_source('Automatic Failover', 'data.automatic_failover', options={
            'is_optional': True
        }),
        TextDyField.data_source('Endpoint Address', 'data.configuration_endpoint.address', options={
            'is_optional': True
        }),
        TextDyField.data_source('Port', 'data.configuration_endpoint.port', options={
            'is_optional': True
        }),
        TextDyField.data_source('Snapshot Retention Limit', 'data.snapshot_retention_limit', options={
            'is_optional': True
        }),
        TextDyField.data_source('Replication Group ID', 'data.replication_group_id', options={
            'is_optional': True
        }),
        TextDyField.data_source('Snapshot Window', 'data.snapshot_window', options={
            'is_optional': True
        }),
        TextDyField.data_source('Subnet Group Name', 'data.cache_subnet_group_name', options={
            'is_optional': True
        }),
        TextDyField.data_source('Auth Token Enabled', 'data.auth_token_enabled', options={
            'is_optional': True
        }),
    ],
    search=[
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Status', key='data.status'),
        SearchField.set(name='Nodes', key='data.num_cache_nodes', data_type='integer'),
        SearchField.set(name='Node Type', key='instance_type'),
        SearchField.set(name='Zone', key='data.preferred_availability_zone'),
        SearchField.set(name='Configuration Endpoint Address', key='data.configuration_endpoint.address'),
        SearchField.set(name='Configuration Endpoint Port', key='data.configuration_endpoint.port'),
    ]
)
cst_redshift_cluster._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        EnumDyField.data_source(
            'Status',
            'data.cluster_status',
            default_state={
                'safe': ['available'],
                'warning': [
                    'prep-for-resize', 'resize-cleanup', 'cancelling-resize',
                    'creating', 'deleting', 'final-snapshot', 'modifying',
                    'rebooting', 'renaming', 'resizing', 'rotating-keys',
                    'updating-hsm'
                ],
                'disable': ['paused'],
                'alert': [
                    'hardware-failure', 'incompatible-hsm',
                    'incompatible-network', 'incompatible-parameters',
                    'incompatible-restore', 'storage-full'
                ]
            }),
        TextDyField.data_source('Cluster Version', 'data.cluster_version'),
        TextDyField.data_source('Nodes', 'data.number_of_nodes'),
        TextDyField.data_source('Node Type', 'instance_type'),
        TextDyField.data_source('Endpoint',
                                'data.endpoint.address',
                                options={'is_optional': True}),
        TextDyField.data_source('Port',
                                'data.endpoint.Port',
                                options={'is_optional': True}),
        TextDyField.data_source('VPC ID',
                                'data.vpc_id',
                                options={'is_optional': True}),
        TextDyField.data_source('Availability Zone',
                                'data.availability_zone',
                                options={'is_optional': True}),
        TextDyField.data_source('Cluster Revision Number',
                                'data.cluster_revision_number',
                                options={'is_optional': True}),
        TextDyField.data_source('Preferred Maintenance Window',
                                'data.preferred_maintenance_window',
                                options={'is_optional': True}),
        DateTimeDyField.data_source('Next maintenance window start time',
                                    'data.next_maintenance_window_start_time',
                                    options={'is_optional': True}),
        TextDyField.data_source('DB Name',
                                'data.db_name',
                                options={'is_optional': True}),
        TextDyField.data_source('Allow Version Upgrade',
                                'data.allow_version_upgrade',
                                options={'is_optional': True}),
        TextDyField.data_source('Encrypted',
                                'data.encrypted',
                                options={'is_optional': True}),
        TextDyField.data_source('KMS Key ID',
                                'data.kms_key_id',
                                options={'is_optional': True}),
        TextDyField.data_source('Publicly Accessible',
                                'data.publicly_accessible',
                                options={'is_optional': True}),
        TextDyField.data_source('Automated Snapshot Retention Period',
                                'data.automated_snapshot_retention_period',
                                options={'is_optional': True}),
        TextDyField.data_source('Subnet Group Name',
                                'data.cluster_subnet_group_name',
                                options={'is_optional': True}),
        TextDyField.data_source('Master Username',
                                'data.master_username',
                                options={'is_optional': True}),
        ListDyField.data_source('IAM Role ARNs',
                                'data.iam_roles',
                                options={
                                    'delimiter': '<br>',
                                    'sub_key': 'iam_role_arn',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Security Groups',
                                'data.vpc_security_groups',
                                options={
                                    'delimiter': '<br>',
                                    'sub_key': 'vpc_security_group_id',
                                    'is_optional': True
                                }),
        TextDyField.data_source('HSM Status',
                                'data.hsm_status',
                                options={'is_optional': True}),
        TextDyField.data_source('Snapshot Schedule Identifier',
                                'data.snapshot_schedule_identifier',
                                options={'is_optional': True}),
        TextDyField.data_source('Manual Snapshot Retention Period',
                                'data.manual_snapshot_retention_period',
                                options={'is_optional': True})
    ],
    search=[
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Cluster Version', key='data.cluster_version'),
        SearchField.set(name='Node Type', key='instance_type'),
        SearchField.set(name='Status',
                        key='data.cluster_status',
                        enums={
                            "available": {
                                'label': 'Available',
                                'icon': {
                                    'color': 'green.500'
                                }
                            },
                            "prep-for-resize": {
                                'label': 'Prepare for Resize',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "resize-cleanup": {
                                'label': 'Resize Cleanup',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "cancelling-resize": {
                                'label': 'Cancelling Resize',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "creating": {
                                'label': 'Creating',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "deleting": {
                                'label': 'Deleting',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "final-snapshot": {
                                'label': 'Final Snapshot',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "modifying": {
                                'label': 'Modifying',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "rebooting": {
                                'label': 'Rebooting',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "renaming": {
                                'label': 'Renaming',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "resizing": {
                                'label': 'Resizing',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "rotating-keys": {
                                'label': 'Rotating Keys',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "updating-hsm": {
                                'label': 'Updating HSM',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "hardware-failure": {
                                'label': 'Hardware Failure',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                            "incompatible-hsm": {
                                'label': 'Incompatible HSM',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                            "incompatible-network": {
                                'label': 'Incompatible Network',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                            "incompatible-parameters": {
                                'label': 'Incompatible Parameters',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                            "incompatible-restore": {
                                'label': 'Incompatible Restore',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                            "storage-full": {
                                'label': 'Storage Full',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                            "paused": {
                                'label': 'Paused',
                                'icon': {
                                    'color': 'gray.400'
                                }
                            },
                        }),
        SearchField.set(name='DB Name', key='data.db_name'),
        SearchField.set(name='Endpoint', key='data.endpoint.address'),
        SearchField.set(name='Port',
                        key='data.endpoint.port',
                        data_type='integer'),
        SearchField.set(name='Security Group ID',
                        key='data.vpc_security_groups.vpc_security_group_id'),
        SearchField.set(
            name='Parameter Group Name',
            key='data.cluster_parameter_groups.parameter_group_name'),
        SearchField.set(name='Subnet Group ID',
                        key='data.cluster_subnet_group_name'),
        SearchField.set(name='VPC ID', key='data.vpc_id'),
        SearchField.set(name='Availability Zone',
                        key='data.availability_zone'),
        SearchField.set(name='Node Counts',
                        key='data.number_of_nodes',
                        data_type='integer'),
    ],
    widget=[
        CardWidget.set(**get_data_from_yaml(cluster_total_count_conf)),
        CardWidget.set(**get_data_from_yaml(node_total_count_conf)),
        CardWidget.set(**get_data_from_yaml(snapshot_total_count_conf)),
        ChartWidget.set(**get_data_from_yaml(cluster_count_by_region_conf)),
        ChartWidget.set(**get_data_from_yaml(cluster_count_by_account_conf)),
        ChartWidget.set(**get_data_from_yaml(node_count_by_account_conf)),
        ChartWidget.set(**get_data_from_yaml(snapshot_count_by_account_conf)),
        ChartWidget.set(
            **get_data_from_yaml(snapshot_total_size_by_account_conf)),
    ])
}

cst_sg._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('ID', 'data.group_id'),
        TextDyField.data_source('Name', 'data.group_name'),
        TextDyField.data_source('VPC ID', 'data.vpc_id'),
        TextDyField.data_source('Description', 'data.description'),
        TextDyField.data_source('Account ID', 'data.owner_id')
    ],
    search=[
        SearchField.set(name='Security Group ID', key='data.group_id'),
        SearchField.set(name='Name', key='data.group_name'),
        SearchField.set(name='VPC ID', key='data.vpc_id'),
        SearchField.set(name='Inbound Protocol',
                        key='data.ip_permissions.protocol_display'),
        SearchField.set(name='Inbound Port Rage',
                        key='data.ip_permissions.port_display'),
        SearchField.set(name='Inbound Source',
                        key='data.ip_permissions.source_display'),
        SearchField.set(name='Outbound Protocol',
                        key='data.ip_permissions_egress.protocol_display'),
        SearchField.set(name='Outbound Port Rage',
                        key='data.ip_permissions_egress.port_display'),
        SearchField.set(name='Outbound Source',
                        key='data.ip_permissions_egress.source_display'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])

CLOUD_SERVICE_TYPES = [
cst_rest_api.tags = {
    'spaceone:icon':
    'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-API-Gateway.svg',
    'spaceone:is_major': 'true',
}

cst_rest_api._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('ID', 'data.id'),
        TextDyField.data_source('Name', 'data.name'),
        ListDyField.data_source('Endpoint Type',
                                'data.endpoint_configuration.types',
                                default_badge={'type': 'outline'}),
        TextDyField.data_source('Description', 'data.description')
    ],
    search=[
        SearchField.set(name='Rest API ID', key='data.id'),
        SearchField.set(name='Name', key='data.name'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='API Key Source', key='data.api_key_source'),
        SearchField.set(name='Creation Time',
                        key='data.created_date',
                        data_type='datetime'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])

cst_web_socket = CloudServiceTypeResource()
cst_web_socket.name = 'HTTPWebsocket'
cst_web_socket.provider = 'aws'
cst_web_socket.group = 'APIGateway'
cst_web_socket.labels = ['Networking']
cst_kds._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source("Data Stream Name", "data.stream_name"),
        EnumDyField.data_source(
            "Status",
            "data.stream_status_display",
            default_state={
                "safe": ["Active"],
                "warning": ["Creating", "Deleting", "Updating"],
            },
        ),
        TextDyField.data_source("Open shards", "data.open_shards_num"),
        TextDyField.data_source("Data retention period",
                                "data.retention_period_display"),
        TextDyField.data_source("Encryption", "data.encryption_display"),
        TextDyField.data_source("Consumers with enhanced fan-out",
                                "data.consumers_vo.num_of_consumers"),
    ],
    search=[
        SearchField.set(name="Stream Name", key="data.stream_name"),
        SearchField.set(name="Stream ARN", key="data.stream_arn"),
        SearchField.set(name="Stream Status", key="data.stream_status"),
        SearchField.set(name="Consumer Name",
                        key="data.consumers_vo.consumer_name"),
        SearchField.set(name="Consumer ARN",
                        key="data.consumers_vo.consumer_arn"),
        SearchField.set(name="Shard ID", key="data.shards.shard_id"),
        SearchField.set(name="Parent Shard Id",
                        key="data.shards.parent_shard_id"),
        SearchField.set(
            name="Retention Hours",
            key="data.retention_period_hours",
            data_type="Integer",
        ),
        SearchField.set(name="Retention Days",
                        key="data.retention_period_days",
                        data_type="Integer"),
        SearchField.set(
            name="Number of Open Shards",
            key="data.open_shards_num",
            data_type="Integer",
        ),
        SearchField.set(
            name="Number of Closed Shards",
            key="data.closed_shards_num",
            data_type="Integer",
        ),
    ],
)
cst_bucket._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.name'),
        EnumDyField.data_source('Access',
                                'data.public_access',
                                default_badge={
                                    'indigo.500': ['Private'],
                                    'coral.600': ['Public']
                                }),
        TextDyField.data_source('Object Total Counts', 'data.object_count'),
        SizeField.data_source('Object Total Size', 'data.object_total_size'),
        TextDyField.data_source('ARN',
                                'data.arn',
                                options={'is_optional': True}),
        TextDyField.data_source('Versioning Status',
                                'data.versioning.status',
                                options={'is_optional': True}),
        TextDyField.data_source('Webhosting Index Document',
                                'data.website_hosting.index_document',
                                options={'is_optional': True}),
        TextDyField.data_source('Webhosting Error Document',
                                'data.website_hosting.error_document',
                                options={'is_optional': True}),
        TextDyField.data_source('Webhosting Error Document',
                                'data.website_hosting.routing_rules',
                                options={'is_optional': True}),
        TextDyField.data_source('Access Logging Target Bucket',
                                'data.server_access_logging.target_bucket',
                                options={'is_optional': True}),
        TextDyField.data_source('Access Logging Target Prefix',
                                'data.server_access_logging.target_prefix',
                                options={'is_optional': True}),
        ListDyField.data_source('Webhosting Routing Rules Condition',
                                'data.website_hosting.routing_rules',
                                options={
                                    'sub_key': 'condition',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        TextDyField.data_source('Object Lock Enabled',
                                'data.object_lock.object_lock_enabled',
                                options={'is_optional': True}),
        TextDyField.data_source(
            'Transfer Acceleration Enabled',
            'data.transfer_acceleration.transfer_acceleration',
            options={'is_optional': True}),
        ListDyField.data_source('Notification Type',
                                'data.notification_configurations',
                                options={
                                    'sub_key': 'notification_type',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Notification ID',
                                'data.notification_configurations',
                                options={
                                    'sub_key': 'id',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Notification ARN',
                                'data.notification_configurations',
                                options={
                                    'sub_key': 'arn',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        TextDyField.data_source('AWS Account ID',
                                'data.account_id',
                                options={'is_optional': True})
    ],
    search=[
        SearchField.set(name='Bucket Name', key='data.name'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Object Counts',
                        key='data.object_count',
                        data_type='integer'),
        SearchField.set(name='Object Total Size (Bytes)',
                        key='data.object_total_size',
                        data_type='integer'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])
cst_cluster._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Cluster name', 'data.cluster_name'),
        EnumDyField.data_source('Status',
                                'data.state',
                                default_state={
                                    'safe': ['ACTIVE'],
                                    'warning': [
                                        'CREATING', 'DELETING', 'HEALING',
                                        'MAINTENANCE', 'REBOOTING_BROKER'
                                    ],
                                    'alert': ['FAILED']
                                }),
        TextDyField.data_source(
            'Kafka Version',
            'data.current_broker_software_info.kafka_version'),
        TextDyField.data_source('Broker Type',
                                'data.broker_node_group_info.instance_type'),
        TextDyField.data_source('Number Of  Broker Nodes',
                                'data.number_of_broker_nodes'),
        DateTimeDyField.data_source('Creation time', 'data.creation_time'),
        TextDyField.data_source('ARN',
                                'data.cluster_arn',
                                options={'is_optional': True}),
        TextDyField.data_source('Active Operation ARN',
                                'data.active_operation_arn',
                                options={'is_optional': True}),
        TextDyField.data_source('Zookeeper Connect String TLS',
                                'data.zookeeper_connect_string_tls',
                                options={'is_optional': True}),
        TextDyField.data_source('Zookeeper Connect String',
                                'data.zookeeper_connect_string',
                                options={'is_optional': True}),
        ListDyField.data_source('Nodes ARN',
                                'data.node_info_list',
                                options={
                                    'delimiter': '<br>',
                                    'sub_key': 'node_arn',
                                    'is_optional': True
                                }),
        TextDyField.data_source('Client Auth SASL',
                                'data.client_authentication.sasl',
                                options={'is_optional': True}),
        TextDyField.data_source('Client Auth TLS',
                                'data.client_authentication.tls',
                                options={'is_optional': True}),
        TextDyField.data_source(
            'Encryption At Rest',
            'data.encryption_info.encryption_at_rest.data_volume_kms_key_id',
            options={'is_optional': True}),
        TextDyField.data_source(
            'Encryption In Transit',
            'data.encryption_info.encryption_in_transit.client_broker',
            options={'is_optional': True}),
        TextDyField.data_source('Enhance Monitoring',
                                'data.enhanced_monitoring',
                                options={'is_optional': True}),
        TextDyField.data_source('Prometheus JMX Exporter',
                                'data.open_monitoring.prometheus.jmx_exporter',
                                options={'is_optional': True}),
        TextDyField.data_source(
            'Prometheus Node Exporter',
            'data.open_monitoring.prometheus.node_exporter',
            options={'is_optional': True}),
        TextDyField.data_source('Logging (S3 Bucket)',
                                'data.logging_info.s3.bucket',
                                options={'is_optional': True}),
        TextDyField.data_source('Logging (Firehose)',
                                'data.logging_info.firehose.delivery_stream',
                                options={'is_optional': True}),
        TextDyField.data_source(
            'Logging (Cloudwatch)',
            'data.logging_info.broker_logs.cloud_watch_logs',
            options={'is_optional': True}),
        TextDyField.data_source('AWS Account ID',
                                'data.account_id',
                                options={'is_optional': True})
    ],
    search=[
        SearchField.set(name='Cluster name', key='data.cluster_name'),
        SearchField.set(name='Cluster ARN', key='data.cluster_arn'),
        SearchField.set(name='Kafka Version',
                        key='data.current_broker_software_info.kafka_version'),
        SearchField.set(name='Broker Type',
                        key='data.broker_node_group_info.instance_type'),
        SearchField.set(name='Status', key='data.state'),
        SearchField.set(name='Creation Time',
                        key='data.creation_time',
                        data_type='datetime'),
    ])
cst_instance._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        EnumDyField.data_source('State',
                                'data.state.name',
                                default_state={
                                    'safe': ['running'],
                                    'warning': ['provisioning'],
                                    'alert': ['stopped']
                                }),
        TextDyField.data_source('Core', 'data.hardware.cpu_count'),
        TextDyField.data_source('Memory', 'data.hardware.ram_size_in_gb'),
        TextDyField.data_source('Availability Zone',
                                'data.location.availability_zone'),
        TextDyField.data_source('Public IP', 'data.public_ip_address'),
        TextDyField.data_source('Private IP', 'data.private_ip_address'),
        TextDyField.data_source('Blueprint',
                                'data.blueprint_name',
                                options={'is_optional': True}),
        TextDyField.data_source('Bundle ID',
                                'data.bundle_id',
                                options={'is_optional': True}),
        TextDyField.data_source('ARN',
                                'data.arn',
                                options={'is_optional': True}),
        TextDyField.data_source('Support Code',
                                'data.support_code',
                                options={'is_optional': True}),
        TextDyField.data_source('Region',
                                'data.location.region_name',
                                options={'is_optional': True}),
        TextDyField.data_source('Is Static IP',
                                'data.is_static_ip',
                                options={'is_optional': True}),
        TextDyField.data_source('Username',
                                'data.username',
                                options={'is_optional': True}),
        TextDyField.data_source('SSH Key Name',
                                'data.ssh_key_name',
                                options={'is_optional': True})
    ],
    search=[
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Bundle ID', key='data.bundle_id'),
        SearchField.set(name='Blueprint', key='data.blueprint_name'),
        SearchField.set(name='CPU Core',
                        key='data.hardware.cpu_count',
                        data_type='integer'),
        SearchField.set(name='Memory',
                        key='data.hardware.ram_size_in_gb',
                        data_type='float'),
        SearchField.set(name='Availability Zone',
                        key='data.location.availability_zone'),
        SearchField.set(name='Public IP', key='data.public_ip_address'),
        SearchField.set(name='Private IP', key='data.private_ip_address'),
        SearchField.set(name='Support Code', key='data.support_code'),
        SearchField.set(name='Is Static IP',
                        key='data.is_static_ip',
                        data_type='Boolean'),
        SearchField.set(name='Username', key='data.username'),
        SearchField.set(name='SSH Key name', key='data.ssh_key_name'),
    ],
    widget=[
        CardWidget.set(**get_data_from_yaml(instance_total_count_conf)),
        ChartWidget.set(**get_data_from_yaml(instance_count_by_account_conf)),
        ChartWidget.set(**get_data_from_yaml(instance_count_by_region_conf)),
        ChartWidget.set(
            **get_data_from_yaml(instance_count_by_blueprint_conf)),
        ChartWidget.set(
            **get_data_from_yaml(instance_count_by_bundle_id_conf)),
    ])
cst_memcached = CloudServiceTypeResource()
cst_memcached.name = 'Memcached'
cst_memcached.provider = 'aws'
cst_memcached.group = 'ElastiCache'
cst_memcached.labels = ['Database']
cst_memcached.tags = {
    'spaceone:icon': '',
    'spaceone:is_major': 'true',
}

cst_memcached._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Cluster Name', 'data.cluster_name'),
        TextDyField.data_source('Nodes', 'data.node_count'),
        TextDyField.data_source('Node Type', 'data.node_type'),
        TextDyField.data_source('Zone', 'data.zone'),
        TextDyField.data_source('Configuration Endpoint', 'data.configuration_endpoint'),
        TextDyField.data_source('Status', 'data.status'),
        TextDyField.data_source('Update Action Status', 'data.update_action_status'),
    ],
    search=[]
)


cst_redis = CloudServiceTypeResource()
cst_redis.name = 'Redis'
cst_redis.provider = 'aws'
cst_redis.group = 'ElastiCache'
cst_redis.labels = ['Database']
cst_redis.tags = {
    'spaceone:icon': '',
    'spaceone:is_major': 'true',
cst_filesystem._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('ID', 'data.file_system_id'),
        TextDyField.data_source('Name', 'data.name'),
        EnumDyField.data_source('State', 'data.life_cycle_state', default_state={
            'safe': ['available'],
            'warning': ['creating', 'updating', 'deleting'],
            'disable': ['deleted']
        }),
        TextDyField.data_source('Metered Sizes (Bytes)', 'data.size_in_bytes.value'),
        TextDyField.data_source('Mount Targets', 'data.number_of_mount_targets'),
        DateTimeDyField.data_source('Creation date', 'data.creation_time'),
    ],
    search=[
        SearchField.set(name='File System ID', key='data.file_system_id'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Name', key='data.name'),
        SearchField.set(name='State', key='data.life_cycle_state',
                        enums={
                            'available': {'label': 'available', 'icon': {'color': 'green.500'}},
                            'creating': {'label': 'creating', 'icon': {'color': 'yellow.500'}},
                            'updating': {'label': 'updating', 'icon': {'color': 'yellow.500'}},
                            'deleting': {'label': 'deleting', 'icon': {'color': 'yellow.500'}},
                            'deleted': {'label': 'deleted', 'icon': {'color': 'gray.400'}},
                        }),
        SearchField.set(name='Metered Size (Bytes)', key='data.size_in_bytes.value', data_type='integer'),
        SearchField.set(name='Performance Mode', key='data.performance_mode',
                        enums={
                            'generalPurpose': {'label': 'General Purpose'},
                            'maxIO': {'label': 'Max IO'},
                        }),
        SearchField.set(name='Throughput Mode', key='data.throughput_mode',
                        enums={
                            'bursting': {'label': 'Bursting'},
                            'provisioned': {'label': 'Provisioned'},
                        }),
        SearchField.set(name='Mount Target ID', key='data.mount_targets.mount_target_id'),
        SearchField.set(name='Mount Target Counts', key='data.number_of_mount_targets', data_type='integer'),
        SearchField.set(name='IP Address', key='data.mount_targets.ip_address'),
        SearchField.set(name='Availability Zone', key='data.mount_targets.availability_zone_name'),
        SearchField.set(name='Subnet ID', key='data.mount_targets.subnet_id'),
        SearchField.set(name='Security Group ID', key='data.mount_targets.security_groups'),
        SearchField.set(name='Created Time', key='data.creation_time', data_type='datetime'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ]
)
cst_rds_database._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('DB Identifier', 'data.db_identifier'),
        EnumDyField.data_source('Role',
                                'data.role',
                                default_badge={
                                    'indigo.500': ['cluster'],
                                    'coral.600': ['instance']
                                }),
        EnumDyField.data_source('Engine',
                                'data.engine',
                                default_outline_badge=[
                                    'aurora', 'mysql', 'mariadb', 'postgres',
                                    'oracle-ee', 'oracle-se', 'oracle-se1',
                                    'oracle-se2', 'sqlserver-ex',
                                    'sqlserver-web', 'sqlserver-se',
                                    'sqlserver-ee'
                                ]),
        TextDyField.data_source('Size', 'data.size'),
        EnumDyField.data_source('Status',
                                'data.status',
                                default_state={
                                    'safe': ['available'],
                                    'warning': [
                                        'creating', 'deleting', 'maintenance',
                                        'modifying', 'rebooting', 'renaming',
                                        'starting', 'stopping', 'upgrading'
                                    ],
                                    'alert': [
                                        'failed',
                                        'inaccessible-encryption-credentials',
                                        'restore-error', 'stopped',
                                        'storage-full'
                                    ]
                                }),
        TextDyField.data_source('VPC', 'data.vpc_id'),
        TextDyField.data_source('Region & AZ', 'data.availability_zone'),
        EnumDyField.data_source('Multi-AZ',
                                'data.multi_az',
                                default_badge={
                                    'indigo.500': ['true'],
                                    'coral.600': ['false']
                                }),
        TextDyField.data_source('Maintenance', 'data.maintenance'),
    ],
    search=[
        SearchField.set(name='DB Identifier', key='data.db_identifier'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Role',
                        key='data.role',
                        enums={
                            'cluster': {
                                'label': 'Cluster'
                            },
                            'instance': {
                                'label': 'Instance'
                            },
                        }),
        SearchField.set(name='Status',
                        key='data.status',
                        enums={
                            "available": {
                                'label': 'Available',
                                'icon': {
                                    'color': 'green.500'
                                }
                            },
                            "creating": {
                                'label': 'Creating',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "deleting": {
                                'label': 'Deleting',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "maintenance": {
                                'label': 'Maintenance',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "modifying": {
                                'label': 'Modifying',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "rebooting": {
                                'label': 'Rebooting',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "renaming": {
                                'label': 'Renaming',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "starting": {
                                'label': 'Starting',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "stopping": {
                                'label': 'Stopping',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "upgrading": {
                                'label': 'Upgrading',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "failed": {
                                'label': 'Failed',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                            "inaccessible-encryption-credentials": {
                                'label': 'Inaccessible Encryption Credentials',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                            "restore-error": {
                                'label': 'Restore Error',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                            "stopped": {
                                'label': 'Stopped',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                            "storage-full": {
                                'label': 'Storage Full',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                        }),
        SearchField.set(name='Engine', key='data.engine'),
        SearchField.set(name='Size', key='data.size'),
        SearchField.set(name='Availability Zone',
                        key='data.availability_zone'),
        SearchField.set(name='Multi AZ',
                        key='data.multi_az',
                        data_type='boolean'),
        SearchField.set(name='Cluster Endpoint', key='data.cluster.endpoint'),
        SearchField.set(name='Cluster Reader Endpoint',
                        key='data.cluster.reader_endpoint'),
        SearchField.set(name='Cluster Custom Endpoint',
                        key='data.cluster.custom_endpoints'),
        SearchField.set(name='Cluster Port',
                        key='data.cluster.port',
                        data_type='integer'),
        SearchField.set(name='Instance Endpoint',
                        key='data.instance.endpoint'),
        SearchField.set(name='Instance Port',
                        key='data.instance.db_instance_port',
                        data_type='integer'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])
Example #12
0
cst_asg._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.auto_scaling_group_name'),
        TextDyField.data_source('Desired', 'data.desired_capacity'),
        TextDyField.data_source('Min', 'data.min_size'),
        TextDyField.data_source('Max', 'data.max_size'),
        TextDyField.data_source('Launch Template / Configuration',
                                'data.display_launch_configuration_template'),
        ListDyField.data_source('AZ',
                                'data.availability_zones',
                                default_badge={'delimiter': '<br>'}),
        # For Dynamic Table
        TextDyField.data_source('ARN',
                                'data.auto_scaling_group_arn',
                                options={'is_optional': True}),
        TextDyField.data_source('Health Check Type',
                                'data.health_check_type',
                                options={'is_optional': True}),
        TextDyField.data_source('Instance Protected from Scale In',
                                'data.new_instances_protected_from_scale_in',
                                options={'is_optional': True}),
        TextDyField.data_source('Default CoolDown (sec)',
                                'data.default_cooldown',
                                options={'is_optional': True}),
        TextDyField.data_source('Health Check Grace Period (sec)',
                                'data.health_check_grace_period',
                                options={'is_optional': True}),
        ListDyField.data_source('Instances ID',
                                'data.instances.instance_id',
                                options={
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Instances Lifecycle',
                                'data.instances.lifecycle',
                                options={
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Instances status',
                                'data.instances.health_status',
                                options={
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Instances type',
                                'data.instances.instance_type',
                                options={
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Instances type',
                                'data.instances.availability_zone',
                                options={
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('LoadBalancers ARNs',
                                'data.load_balancer_arns',
                                options={
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('LoadBalancers name',
                                'data.load_balancers.name',
                                options={
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('LoadBalancers endpoint',
                                'data.load_balancers.endpoint',
                                options={
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Target Group ARNs',
                                'data.target_group_arns',
                                options={
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Policy ARNs',
                                'data.policies.policy_arn',
                                options={
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Policy Names',
                                'data.policies.policy_name',
                                options={
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        TextDyField.data_source('AWS Account ID',
                                'data.account_id',
                                options={'is_optional': True}),
    ],
    search=[
        SearchField.set(name='Name', key='data.auto_scaling_group_name'),
        SearchField.set(name='ARN', key='data.auto_scaling_group_arn'),
        SearchField.set(name='Launch Configuration Name',
                        key='data.launch_configuration_name'),
        SearchField.set(
            name='Launch Configuration ARN',
            key='data.launch_configuration.launch_configuration_arn'),
        SearchField.set(name='Launch Template Name',
                        key='data.launch_template.launch_template_name'),
        SearchField.set(name='Launch Template ID',
                        key='data.launch_template.launch_template_id'),
        SearchField.set(name='Availability Zone',
                        key='data.availability_zones'),
        SearchField.set(name='Instance ID', key='data.instances.instance_id'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])
Example #13
0
cst_ecr_repo._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Repository name', 'data.repository_name'),
        TextDyField.data_source('URI', 'data.repository_uri'),
        DateTimeDyField.data_source('Created', 'data.created_at'),
        TextDyField.data_source('Registry ARN ',
                                'data.repository_arn',
                                options={'is_optional': True}),
        TextDyField.data_source('Image Tag Mutability ',
                                'data.image_tag_mutability',
                                options={'is_optional': True}),
        TextDyField.data_source(
            'Image Scanning on Push ',
            'data.image_scanning_configuration.scan_on_push',
            options={'is_optional': True}),
        TextDyField.data_source('AWS Account ID',
                                'data.account_id',
                                options={'is_optional': True}),
    ],
    search=[
        SearchField.set(name='Repository ID', key='data.registry_id'),
        SearchField.set(name='Name', key='data.repository_name'),
        SearchField.set(name='ARN', key='data.repository_arn'),
        SearchField.set(name='URI', key='data.repository_uri'),
        SearchField.set(name='Image URI', key='data.images.image_uri'),
        SearchField.set(name='Created Time',
                        key='data.created_at',
                        data_type='datetime'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])
Example #14
0
cst_hostedzone._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Domain Name', 'data.name'),
        EnumDyField.data_source('Type',
                                'data.type',
                                default_badge={
                                    'indigo.500': ['Public'],
                                    'coral.600': ['Private']
                                }),
        TextDyField.data_source('Record Set Count',
                                'data.resource_record_set_count'),
        TextDyField.data_source('Comment', 'data.config.comment'),
        TextDyField.data_source('Host Zone ID', 'data.id'),
        TextDyField.data_source('ARN',
                                'data.arn',
                                options={'is_optional': True}),
        TextDyField.data_source('Private Zone',
                                'data.config.private_zone',
                                options={'is_optional': True}),
        TextDyField.data_source('Caller Reference',
                                'data.caller_reference',
                                options={'is_optional': True}),
        ListDyField.data_source('Record Set Names',
                                'data.record_sets',
                                options={
                                    'sub_key': 'name',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Record Set TTLs',
                                'data.record_sets',
                                options={
                                    'sub_key': 'ttl',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        TextDyField.data_source('AWS Account ID',
                                'data.account_id',
                                options={'is_optional': True})
    ],
    search=[
        SearchField.set(name='Name', key='data.name'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Type', key='data.type'),
        SearchField.set(name='Host Zone ID', key='data.hosted_zone_id'),
        SearchField.set(name='Record Set Count',
                        key='data.resource_record_set_count',
                        data_type='integer'),
        SearchField.set(name='Record Name', key='data.record_sets.name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])
}

cst_sg._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('ID', 'data.group_id'),
        TextDyField.data_source('Name', 'data.group_name'),
        TextDyField.data_source('VPC ID', 'data.vpc_id'),
        TextDyField.data_source('Description', 'data.description'),
        TextDyField.data_source('Account ID', 'data.owner_id')
    ],
    search=[
        SearchField.set(name='Security Group ID', key='data.group_id'),
        SearchField.set(name='Name', key='data.group_name'),
        SearchField.set(name='VPC ID', key='data.vpc_id'),
        SearchField.set(name='Inbound Protocol',
                        key='data.ip_permissions.protocol_display'),
        SearchField.set(name='Inbound Port Rage',
                        key='data.ip_permissions.port_display'),
        SearchField.set(name='Inbound Source',
                        key='data.ip_permissions.source_display'),
        SearchField.set(name='Outbound Protocol',
                        key='data.ip_permissions_egress.protocol_display'),
        SearchField.set(name='Outbound Port Rage',
                        key='data.ip_permissions_egress.port_display'),
        SearchField.set(name='Outbound Source',
                        key='data.ip_permissions_egress.source_display'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])

cst_ami = CloudServiceTypeResource()
cst_kds._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        EnumDyField.data_source(
            "Status",
            "data.stream_status_display",
            default_state={
                "safe": ["Active"],
                "warning": ["Creating", "Deleting", "Updating"],
            },
        ),
        TextDyField.data_source("Open shards", "instance_size"),
        TextDyField.data_source(
            "Data retention period", "data.retention_period_display"
        ),
        TextDyField.data_source("Encryption", "data.encryption_display"),
        TextDyField.data_source(
            "Consumers with enhanced fan-out", "data.consumers_vo.num_of_consumers"
        ),
        TextDyField.data_source('ARN', 'data.stream_arn', options={
            'is_optional': True
        }),
        TextDyField.data_source('Encryption Type', 'data.encryption_type', options={
            'is_optional': True
        }),
        TextDyField.data_source('Encryption Key ID', 'data.key_id', options={
            'is_optional': True
        }),
        TextDyField.data_source('Closed Shards', 'data.closed_shards_num', options={
            'is_optional': True
        }),
        ListDyField.data_source('Shard IDs', 'data.shards', options={
            'delimiter': '<br>',
            'sub_key': 'shard_id',
            'is_optional': True
        })
    ],
    search=[
        SearchField.set(name="Stream ARN", key="data.stream_arn"),
        SearchField.set(name="Stream Status", key="data.stream_status"),
        SearchField.set(name="Consumer Name", key="data.consumers_vo.consumer_name"),
        SearchField.set(name="Consumer ARN", key="data.consumers_vo.consumer_arn"),
        SearchField.set(name="Shard ID", key="data.shards.shard_id"),
        SearchField.set(name="Parent Shard Id", key="data.shards.parent_shard_id"),
        SearchField.set(
            name="Retention Hours",
            key="data.retention_period_hours",
            data_type="Integer",
        ),
        SearchField.set(
            name="Retention Days", key="data.retention_period_days", data_type="Integer"
        ),
        SearchField.set(
            name="Number of Open Shards",
            key="instance_size",
            data_type="Integer",
        ),
        SearchField.set(
            name="Number of Closed Shards",
            key="data.closed_shards_num",
            data_type="Integer",
        ),
    ],
    widget=[
        CardWidget.set(**get_data_from_yaml(total_count_conf)),
        CardWidget.set(**get_data_from_yaml(open_shard_total_count_conf)),
        ChartWidget.set(**get_data_from_yaml(stream_count_by_region_conf)),
        ChartWidget.set(**get_data_from_yaml(stream_count_by_account_conf)),
    ]
)
cst_asg.service_code = 'AmazonEC2'
cst_asg.tags = {
    'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-EC2-Auto-Scaling.svg',
}

cst_asg._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.auto_scaling_group_name'),
        TextDyField.data_source('Desired', 'data.desired_capacity'),
        TextDyField.data_source('Min', 'data.min_size'),
        TextDyField.data_source('Max', 'data.max_size'),
        TextDyField.data_source('Launch Template / Configuration', 'data.display_launch_configuration_template'),
        ListDyField.data_source('AZ', 'data.availability_zones',
                                default_badge={'delimiter': '<br>'})
    ],
    search=[
        SearchField.set(name='Name', key='data.auto_scaling_group_name'),
        SearchField.set(name='ARN', key='data.auto_scaling_group_arn'),
        SearchField.set(name='Launch Configuration Name', key='data.launch_configuration_name'),
        SearchField.set(name='Availability Zone', key='data.availability_zones'),
        SearchField.set(name='Creation Time', key='data.created_time', data_type='datetime'),
        SearchField.set(name='Instance ID', key='data.instances.instance_id'),
        SearchField.set(name='Region', key='region_code'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ]
)

launch_configuration = CloudServiceTypeResource()
launch_configuration.name = 'LaunchConfiguration'
launch_configuration.provider = 'aws'
launch_configuration.group = 'EC2'
cst_cluster._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        EnumDyField.data_source('Status',
                                'data.status',
                                default_state={
                                    'safe': ['available'],
                                    'warning': [
                                        'maintenance', 'backing-up',
                                        'creating', 'migrating', 'modifying',
                                        'renaming',
                                        'resetting-master-credentials',
                                        'upgrading'
                                    ],
                                    'alert': [
                                        'deleting', 'failing-over',
                                        'inaccessible-encryption-credentials',
                                        'migration-failed'
                                    ]
                                }),
        TextDyField.data_source('Engine', 'data.engine'),
        TextDyField.data_source('Version', 'data.engine_version'),
        TextDyField.data_source('Instances', 'data.instance_count'),
        # For Dynamic Table
        TextDyField.data_source('DB Cluster ARN',
                                'data.db_cluster_arn',
                                options={'is_optional': True}),
        TextDyField.data_source('DB Cluster Resource ID',
                                'data.db_cluster_resource_id',
                                options={'is_optional': True}),
        TextDyField.data_source('Endpoint',
                                'data.endpoint',
                                options={'is_optional': True}),
        TextDyField.data_source('Reader Endpoint',
                                'data.reader_endpoint',
                                options={'is_optional': True}),
        TextDyField.data_source('Port',
                                'data.port',
                                options={'is_optional': True}),
        TextDyField.data_source('Multi AZ',
                                'data.multi_az',
                                options={'is_optional': True}),
        ListDyField.data_source('Availability Zones',
                                'data.availability_zones',
                                options={
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Instances ARN',
                                'data.instances',
                                options={
                                    'delimiter': '<br>',
                                    'sub_key': 'db_instance_arn',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Instances Identifier',
                                'data.instances',
                                options={
                                    'delimiter': '<br>',
                                    'sub_key': 'db_instance_identifier',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Instances Availability Zone',
                                'data.instances',
                                options={
                                    'delimiter': '<br>',
                                    'sub_key': 'availability_zone',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Instances Type',
                                'data.instances',
                                options={
                                    'delimiter': '<br>',
                                    'sub_key': 'db_instance_class',
                                    'is_optional': True
                                }),
        TextDyField.data_source('DB Cluster Parameter Group',
                                'data.parameter_group',
                                options={'is_optional': True}),
        TextDyField.data_source('Parameter Group',
                                'data.db_cluster_parameter_group',
                                options={'is_optional': True}),
        TextDyField.data_source('Subnet Group',
                                'data.subnet_group',
                                options={'is_optional': True}),
        TextDyField.data_source('DB Subnet Group',
                                'data.db_subnet_group',
                                options={'is_optional': True}),
        TextDyField.data_source('Master Username',
                                'data.master_username',
                                options={'is_optional': True}),
        TextDyField.data_source('Storage Encrypted',
                                'data.storage_encrypted',
                                options={'is_optional': True}),
        TextDyField.data_source('KMS Key ID',
                                'data.kms_key_id',
                                options={'is_optional': True}),
        TextDyField.data_source('Deletion Protection',
                                'data.deletion_protection',
                                options={'is_optional': True}),
        TextDyField.data_source('Preferred Maintenance Window',
                                'data.preferred_maintenance_window',
                                options={'is_optional': True}),
        TextDyField.data_source('Preferred Backup Window',
                                'data.preferred_backup_window',
                                options={'is_optional': True}),
        TextDyField.data_source('Backup Retention Period',
                                'data.backup_retention_period',
                                options={'is_optional': True}),
        DateTimeDyField.data_source('Latest Restorable Time',
                                    'data.latest_restorable_time',
                                    options={'is_optional': True}),
        TextDyField.data_source('Hosted Zone ID',
                                'data.hosted_zone_id',
                                options={'is_optional': True}),
        ListDyField.data_source('Security Groups',
                                'data.vpc_security_groups',
                                options={
                                    'delimiter': '<br>',
                                    'sub_key': 'vpc_security_group_id',
                                    'is_optional': True
                                })
    ],
    search=[
        SearchField.set(name='Cluster Identifier',
                        key='data.db_cluster_identifier'),
        SearchField.set(name='ARN', key='data.db_cluster_arn'),
        SearchField.set(name='Status', key='data.status'),
        SearchField.set(name='Engine', key='data.engine'),
        SearchField.set(name='Version', key='data.engine_version'),
        SearchField.set(name='Cluster Endpoint', key='data.endpoint'),
        SearchField.set(name='Cluster Read Endpoint',
                        key='data.reader_endpoint'),
        SearchField.set(name='Port', key='data.port', data_type='integer'),
        SearchField.set(name='Cluster Parameter Group',
                        key='data.db_cluster_parameter_group'),
        SearchField.set(name='Deletion Protection',
                        key='data.deletion_protection',
                        data_type='boolean'),
        SearchField.set(name='Avaiilability Zone',
                        key='data.availability_zones'),
        SearchField.set(name='Security Group ID',
                        key='data.vpc_security_groups.vpc_security_group_id'),
        SearchField.set(name='Instance',
                        key='data.instances.db_instance_identifier'),
        SearchField.set(name='Instance Type',
                        key='data.instances.db_instance_class'),
        SearchField.set(name='VPC ID',
                        key='data.instances.db_subnet_group.vpc_id'),
    ],
    widget=[
        CardWidget.set(**get_data_from_yaml(cluster_total_count_conf)),
        CardWidget.set(**get_data_from_yaml(instance_total_count_conf)),
        CardWidget.set(**get_data_from_yaml(snapshot_total_count_conf)),
        ChartWidget.set(
            **get_data_from_yaml(cluster_count_by_region_widget_conf)),
        ChartWidget.set(
            **get_data_from_yaml(cluster_count_by_account_widget_conf)),
        ChartWidget.set(
            **get_data_from_yaml(instance_count_by_az_widget_conf)),
        ChartWidget.set(
            **get_data_from_yaml(instance_count_by_instance_type_widget_conf))
    ])
Example #19
0
cst_ebs._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Volume ID', 'data.volume_id'),
        EnumDyField.data_source('State', 'data.state', default_state={
            'safe': ['in-use'],
            'available': ['available'],
            'warning': ['deleting', 'creating'],
            'disable': ['deleted'],
            'alert': ['error']
        }),
        SizeField.data_source('Size', 'instance_size'),
        TextDyField.data_source('Volume Type', 'instance_type'),
        TextDyField.data_source('IOPS', 'data.iops'),
        TextDyField.data_source('From Snapshot', 'data.snapshot_id'),
        TextDyField.data_source('Availablity Zone', 'data.availability_zone'),
        DateTimeDyField.data_source('Created', 'data.create_time'),
        TextDyField.data_source('ARN', 'data.arn', options={
            'is_optional': True
        }),
        TextDyField.data_source('Encrypted', 'data.encrypted', options={
            'is_optional': True
        }),
        TextDyField.data_source('KMS Key ID', 'data.kms_key_id', options={
            'is_optional': True
        }),
        TextDyField.data_source('Multi Attach Enabled', 'data.multi_attach_enabled', options={
            'is_optional': True
        }),
        ListDyField.data_source('Attached Instance ID', 'data.attachments', options={
            'sub_key': 'instance_id',
            'delimiter': '<br>',
            'is_optional': True
        }),
        TextDyField.data_source('AWS Account ID', 'data.account_id', options={
            'is_optional': True
        })
    ],
    search=[
        SearchField.set(name='Volume ID', key='data.volume_id'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='State', key='data.state',
                        enums={
                            'in-use': {'label': 'in-use', 'icon': {'color': 'green.500'}},
                            'available': {'label': 'available', 'icon': {'color': 'blue.400'}},
                            'deleting': {'label': 'deleting', 'icon': {'color': 'yellow.500'}},
                            'creating': {'label': 'creating', 'icon': {'color': 'yellow.500'}},
                            'deleted': {'label': 'deleted', 'icon': {'color': 'gray.400'}},
                            'error': {'label': 'error', 'icon': {'color': 'red.500'}},
                        }),
        SearchField.set(name='Size (Bytes)', key='instance_size', data_type='integer'),
        SearchField.set(name='Size (GB)', key='data.size_gb', data_type='integer'),
        SearchField.set(name='Volume Type', key='instance_type',
                        enums={
                            'gp2': {'label': 'General Purpose SSD (gp2)'},
                            'gp3': {'label': 'General Purpose SSD (gp3)'},
                            'io1': {'label': 'Provisioned IOPS SSD (io1)'},
                            'sc1': {'label': 'Cold HDD (sc1)'},
                            'st1': {'label': 'Throughput Optimized HDD (st1)'},
                            'standard': {'label': 'Magnetic (standard)'},
                        }),
        SearchField.set(name='Availability Zone', key='data.availability_zone'),
        SearchField.set(name='IOPS', key='data.iops', data_type='integer'),
        SearchField.set(name='Attached Instance ID', key='data.attachments.instance_id'),
    ],
    widget=[
        CardWidget.set(**get_data_from_yaml(vol_total_count_conf)),
        CardWidget.set(**get_data_from_yaml(vol_total_size_conf)),
        ChartWidget.set(**get_data_from_yaml(vol_total_size_by_region_conf)),
        ChartWidget.set(**get_data_from_yaml(vol_total_size_by_account_conf)),
        ChartWidget.set(**get_data_from_yaml(vol_total_size_by_az_conf)),
        ChartWidget.set(**get_data_from_yaml(vol_total_size_by_type_conf)),
        ChartWidget.set(**get_data_from_yaml(vol_total_size_by_state_conf))
    ]
)
Example #20
0
cst_distribution._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Id', 'data.id'),
        TextDyField.data_source('Domain Name', 'data.domain_name'),
        EnumDyField.data_source('Status',
                                'data.status',
                                default_state={'safe': ['Deployed']}),
        ListDyField.data_source('CNAME',
                                'data.alias_icp_recordals',
                                default_badge={
                                    'type': 'outline',
                                    'sub_key': 'cname',
                                }),
    ],
    search=[
        SearchField.set(name='Distribution ID', key='data.id'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Status',
                        key='data.status',
                        enums={
                            'Deployed': {
                                'label': 'Deployed',
                                'icon': {
                                    'color': 'green.500'
                                }
                            }
                        }),
        SearchField.set(name='Domain Name', key='data.domain_name'),
        SearchField.set(name='CNAME', key='data.alias_icp_recordals.cname'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])
cst_ecs_cluster._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        EnumDyField.data_source('Status',
                                'data.status',
                                default_state={
                                    'safe': ['ACTIVE'],
                                    'warning':
                                    ['PROVISIONING', 'DEPROVISIONING'],
                                    'disable': ['INACTIVE'],
                                    'alert': ['FAILED']
                                }),
        TextDyField.data_source('Active Services',
                                'data.active_services_count'),
        TextDyField.data_source('Running Tasks', 'data.running_tasks_count'),
        TextDyField.data_source('Pending Tasks', 'data.pending_tasks_count'),
        TextDyField.data_source('Registered Instances',
                                'data.registered_container_instances_count'),
        TextDyField.data_source('Cluster ARN',
                                'data.cluster_arn',
                                options={'is_optional': True}),
        ListDyField.data_source('Services ARN',
                                'data.services',
                                options={
                                    'sub_key': 'service_arn',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Services name',
                                'data.services',
                                options={
                                    'sub_key': 'service_name',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Services Launch Type',
                                'data.services',
                                options={
                                    'sub_key': 'launch_type',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Services Role ARN',
                                'data.services',
                                options={
                                    'sub_key': 'role_arn',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Services Scheduling Strategy',
                                'data.services',
                                options={
                                    'sub_key': 'scheduling_strategy',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Tasks ARN',
                                'data.tasks',
                                options={
                                    'sub_key': 'task_arn',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Tasks name',
                                'data.tasks',
                                options={
                                    'sub_key': 'task',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Tasks Availability Zone',
                                'data.tasks',
                                options={
                                    'sub_key': 'availability_zone',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Tasks Health Status',
                                'data.tasks',
                                options={
                                    'sub_key': 'health_status',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Tasks CPU',
                                'data.tasks',
                                options={
                                    'sub_key': 'cpu',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Tasks CPU',
                                'data.tasks',
                                options={
                                    'sub_key': 'memory',
                                    'delimiter': '<br>',
                                    'is_optional': True
                                })
    ],
    search=[
        SearchField.set(name='ARN', key='data.cluster_arn'),
        SearchField.set(name='Status', key='data.status'),
        SearchField.set(name='Active Services Count',
                        key='data.active_services_count',
                        data_type='integer'),
        SearchField.set(name='Running Tasks Count',
                        key='data.running_tasks_count',
                        data_type='integer'),
        SearchField.set(name='Pending Tasks Count',
                        key='data.pending_tasks_count',
                        data_type='integer'),
        SearchField.set(name='Service Name', key='data.services.service_name'),
        SearchField.set(name='Service ARN', key='data.services.service_arn'),
        SearchField.set(name='Service Type',
                        key='data.services.scheduling_strategy',
                        enums={
                            'REPLICA': {
                                'label': 'REPLICA'
                            },
                            'DAEMON': {
                                'label': 'DAEMON'
                            },
                        }),
        SearchField.set(name='Task Name', key='data.tasks.task'),
        SearchField.set(name='Task Definition',
                        key='data.tasks.task_definition'),
        SearchField.set(name='Task Definition ARN',
                        key='data.tasks.task_definition_arn'),
        SearchField.set(name='Container Instance ID',
                        key='data.container_instances.ec2_instance_id'),
    ],
    widget=[
        CardWidget.set(**get_data_from_yaml(total_count_conf)),
        CardWidget.set(**get_data_from_yaml(active_service_total_count_conf)),
        CardWidget.set(**get_data_from_yaml(running_task_total_count_conf)),
        ChartWidget.set(**get_data_from_yaml(cluster_count_by_region_conf)),
        ChartWidget.set(**get_data_from_yaml(cluster_count_by_account_conf)),
        ChartWidget.set(
            **get_data_from_yaml(active_service_count_by_cluster_conf)),
        ChartWidget.set(
            **get_data_from_yaml(running_task_count_by_cluster_conf))
    ])
Example #22
0
cst_secret._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.name'),
        TextDyField.data_source('Description', 'data.description'),
        DateTimeDyField.data_source('Last Retrieved', 'data.last_accessed_date'),
        TextDyField.data_source('ARN', 'data.arn', options={
            'is_optional': True
        }),
        TextDyField.data_source('KMS Key ID', 'data.kms_key_id', options={
            'is_optional': True
        }),
        TextDyField.data_source('Rotation Enabled', 'data.rotation_enabled', options={
            'is_optional': True
        }),
        TextDyField.data_source('Rotation Lambda ARN', 'data.rotation_lambda_arn', options={
            'is_optional': True
        }),
        ListDyField.data_source('Rotation Rule: Automatically After Days', 'data.rotation_rules', options={
            'sub_key': 'automatically_after_days',
            'delimiter': '<br>',
            'is_optional': True
        }),
        DateTimeDyField.data_source('Last Rotated Date', 'data.last_rotated_date', options={
            'is_optional': True
        }),
        DateTimeDyField.data_source('Last Changed Date', 'data.last_changed_date', options={
            'is_optional': True
        }),
        DateTimeDyField.data_source('Last Accessed Date', 'data.last_accessed_date', options={
            'is_optional': True
        }),
        DateTimeDyField.data_source('Last Deleted Date', 'data.deleted_date', options={
            'is_optional': True
        }),
        TextDyField.data_source('Owning Service', 'data.owning_service', options={
            'is_optional': True
        }),
        TextDyField.data_source('AWS Account ID', 'data.account_id', options={
            'is_optional': True
        }),
    ],
    search=[
        SearchField.set(name='Name', key='data.name'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Last Changed Time', key='data.last_changed_date', data_type='datetime'),
        SearchField.set(name='Last Accessed Time', key='data.last_accessed_date', data_type='datetime'),
        SearchField.set(name='Rotation Enabled', key='data.rotation_enabled', data_type='boolean'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ]
)
}

cst_eks_cluster._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.name'),
        TextDyField.data_source('Version', 'data.version'),
        EnumDyField.data_source('Status', 'data.status', default_state={
            'safe': ['ACTIVE'],
            'warning': ['CREATING', 'DELETING', 'UPDATING'],
            'alert': ['FAILED']
        })
    ],
    search=[
        SearchField.set(name='Cluster Name', key='data.name'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Status', key='data.status',
                        enums={
                            'ACTIVE': {'label': 'ACTIVE', 'icon': {'color': 'green.500'}},
                            'CREATING': {'label': 'CREATING', 'icon': {'color': 'yellow.500'}},
                            'UPDATING': {'label': 'UPDATING', 'icon': {'color': 'yellow.500'}},
                            'DELETING': {'label': 'DELETING', 'icon': {'color': 'yellow.500'}},
                            'FAILED': {'label': 'FAILED', 'icon': {'color': 'red.500'}},
                        }),
        SearchField.set(name='Cluster Version', key='data.version'),
        SearchField.set(name='Cluster Endpoint', key='data.endpoint'),
        SearchField.set(name='Created Time', key='data.created_at', data_type='datetime'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ]
)

Example #24
0
cst_api.is_primary = True
cst_api.is_major = True
cst_api.service_code = 'AmazonApiGateway'
cst_api.tags = {
    'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-API-Gateway.svg',
}

cst_api._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('ID', 'data.id'),
        TextDyField.data_source('Name', 'data.name'),
        EnumDyField.data_source('Protocol', 'data.protocol', default_outline_badge=['REST', 'WEBSOCKET', 'HTTP']),
        TextDyField.data_source('Endpoint Type', 'data.endpoint_type'),
        DateTimeDyField.data_source('Creation Time', 'data.created_date')
    ],
    search=[
        SearchField.set(name='ID', key='data.id'),
        SearchField.set(name='Name', key='data.name'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Protocol', key='data.protocol'),
        SearchField.set(name='Endpoint Type', key='data.endpoint_type'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
        SearchField.set(name='Creation Time', key='data.create_date', data_type='datetime'),
    ]
)


CLOUD_SERVICE_TYPES = [
    CloudServiceTypeResponse({'resource': cst_api}),
]
cst_function._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.name'),
        BadgeDyField.data_source('Runtime', 'data.runtime'),
        SizeField.data_source('Code Size', 'data.code_size'),
        SizeField.data_source('Memory Size',
                              'data.memory_size',
                              options={'source_unit': 'MB'}),
        TextDyField.data_source('Description', 'data.description'),
    ],
    search=[
        SearchField.set(name='Name', key='data.name'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Runtime', key='data.runtime'),
        SearchField.set(name='State',
                        key='data.state.type',
                        enums={
                            "Active": {
                                'label': 'Active',
                                'icon': {
                                    'color': 'green.500'
                                }
                            },
                            "Pending": {
                                'label': 'Pending',
                                'icon': {
                                    'color': 'yellow.400'
                                }
                            },
                            "Inactive": {
                                'label': 'Inactive',
                                'icon': {
                                    'color': 'gray.400'
                                }
                            },
                            "Failed": {
                                'label': 'Failed',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                        }),
        SearchField.set(name='Handler', key='data.handler'),
        SearchField.set(name='Code Sizem (Bytes)',
                        key='data.code_size',
                        data_type='integer'),
        SearchField.set(name='Memory Size (MB)',
                        key='data.memory_size',
                        data_type='integer'),
        SearchField.set(name='Timeout',
                        key='data.time_out',
                        data_type='integer'),
        SearchField.set(name='VPC ID', key='data.vpc_config.vpc.id'),
        SearchField.set(name='VPC Name', key='data.vpc_config.vpc.name'),
        SearchField.set(name='Subnet Id', key='data.vpc_config.subnets.id'),
        SearchField.set(name='Last Modified Time',
                        key='data.last_modified',
                        data_type='datetime'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])
Example #26
0
cst_table._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.table_name'),
        EnumDyField.data_source(
            'Status',
            'data.table_status',
            default_state={
                'safe': ['ACTIVE'],
                'warning': ['CREATING', 'UPDATING', 'DELETING', 'ARCHIVING'],
                'alert': ['INACCESSIBLE_ENCRYPTION_CREDENTIALS', 'ARCHIVED']
            }),
        TextDyField.data_source('Partition Key', 'data.partition_key_display'),
        TextDyField.data_source('Sort Key', 'data.sort_key_display'),
        TextDyField.data_source('Indexes', 'data.index_count'),
        TextDyField.data_source('Total read capacity',
                                'data.total_read_capacity'),
        TextDyField.data_source('Total write capacity',
                                'data.total_write_capacity'),
        ListDyField.data_source('Auto Scaling',
                                'data.auto_scaling_policies',
                                default_badge={'type': 'outline'}),
        TextDyField.data_source('Table ID',
                                'data.table_id',
                                options={'is_optional': True}),
        TextDyField.data_source('ARN',
                                'data.table_arn',
                                options={'is_optional': True}),
        TextDyField.data_source('Encryption Type',
                                'data.encryption_type',
                                options={'is_optional': True}),
        SizeField.data_source('Table Size',
                              'data.table_size_bytes',
                              options={'is_optional': True}),
        TextDyField.data_source('Item Count',
                                'data.item_count',
                                options={'is_optional': True}),
        TextDyField.data_source('Time to Live Status',
                                'data.time_to_live.time_to_live_status',
                                options={'is_optional': True}),
        TextDyField.data_source('Billing Mode',
                                'data.billing_mode_summary.billing_mode',
                                options={'is_optional': True}),
        TextDyField.data_source('AWS Account ID',
                                'data.account_id',
                                options={'is_optional': True}),
    ],
    search=[
        SearchField.set(name='Table Name', key='data.table_name'),
        SearchField.set(name='Table ARN', key='data.table_arn'),
        SearchField.set(name='Table Status',
                        key='data.table_status',
                        enums={
                            'ACTIVE': {
                                'label': 'ACTIVE',
                                'icon': {
                                    'color': 'green.500'
                                }
                            },
                            'CREATING': {
                                'label': 'CREATING',
                                'icon': {
                                    'color': 'yellow.500'
                                }
                            },
                            'UPDATING': {
                                'label': 'UPDATING',
                                'icon': {
                                    'color': 'yellow.500'
                                }
                            },
                            'DELETING': {
                                'label': 'DELETING',
                                'icon': {
                                    'color': 'yellow.500'
                                }
                            },
                            'ARCHIVING': {
                                'label': 'ARCHIVING',
                                'icon': {
                                    'color': 'yellow.500'
                                }
                            },
                            'INACCESSIBLE_ENCRYPTION_CREDENTIALS': {
                                'label': 'INACCESSIBLE_ENCRYPTION_CREDENTIALS',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                            'ARCHIVED': {
                                'label': 'ARCHIVED',
                                'icon': {
                                    'color': 'red.500'
                                }
                            }
                        }),
        SearchField.set(name='Storage Size (Bytes)',
                        key='data.table_size_bytes',
                        data_type='integer'),
        SearchField.set(name='Item Count',
                        key='data.item_count',
                        data_type='integer'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])
Example #27
0
cst_certi._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        # TextDyField.data_source('Name', 'data.'),
        TextDyField.data_source('Domain Name', 'data.domain_name'),
        ListDyField.data_source('Additional Names',
                                'data.additional_names_display',
                                options={"delimiter": ", "}),
        EnumDyField.data_source('Status',
                                'data.status',
                                default_state={
                                    'safe': ['ISSUED'],
                                    'warning': [
                                        'PENDING_VALIDATION', 'INACTIVE',
                                        'VALIDATION_TIMED_OUT', 'REVOKED'
                                    ],
                                    'alert': ['EXPIRED', 'FAILED']
                                }),
        TextDyField.data_source('Type', 'data.type_display'),
        TextDyField.data_source('In use?', 'data.in_use_display'),
        TextDyField.data_source('Renewal Eligibility',
                                'data.renewal_eligibility_display'),
    ],
    search=[
        SearchField.set(name='Domain Name', key='data.domain_name'),
        SearchField.set(name='ARN', key='data.certificate_arn'),
        SearchField.set(name='Status', key='data.status'),
        SearchField.set(name='Type', key='data.type'),
        SearchField.set(name='In use?', key='data.in_use_display'),
        SearchField.set(name='Renewal Eligibility',
                        key='data.renewal_eligibility'),
        SearchField.set(name='Associated Resources', key='data.in_use_by'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])
Example #28
0
cst_eip._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Public IP', 'data.public_ip'),
        TextDyField.data_source('Private IP', 'data.private_ip_address'),
        TextDyField.data_source('Address Pool', 'data.public_ipv4_pool'),
        EnumDyField.data_source('Scope',
                                'data.domain',
                                default_outline_badge=['vpc', 'standard']),
        TextDyField.data_source('Associate Instance ID', 'data.instance_id'),
        TextDyField.data_source('Public DNS',
                                'data.public_dns',
                                options={'is_optional': True}),
        TextDyField.data_source('NAT Gateway ID',
                                'data.nat_gateway_id',
                                options={'is_optional': True}),
        TextDyField.data_source('Association ID',
                                'data.association_id',
                                options={'is_optional': True}),
        TextDyField.data_source('Allocation ID',
                                'data.allocation_id',
                                options={'is_optional': True})
    ],
    search=[
        SearchField.set(name='IP Address', key='data.public_ip'),
        SearchField.set(name='Associated Instance ID', key='data.instance_id'),
        SearchField.set(name='Public DNS', key='data.public_dns'),
        SearchField.set(name='Private IP', key='data.private_ip_address'),
        SearchField.set(name='NAT Gateway ID', key='data.nat_gateway_id'),
        SearchField.set(name='Scope',
                        key='data.domain',
                        enums={
                            'vpc': {
                                'label': 'VPC'
                            },
                            'standard': {
                                'label': 'Standard'
                            },
                        })
    ],
    widget=[
        CardWidget.set(**get_data_from_yaml(total_count_conf)),
        ChartWidget.set(**get_data_from_yaml(count_by_region_conf)),
        ChartWidget.set(**get_data_from_yaml(count_by_account_conf)),
        ChartWidget.set(**get_data_from_yaml(use_count_by_status_conf))
    ])
Example #29
0
cst_eip._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.name'),
        TextDyField.data_source('Public IP', 'data.public_ip'),
        TextDyField.data_source('Private IP', 'data.private_ip_address'),
        TextDyField.data_source('Address Pool', 'data.public_ipv4_pool'),
        EnumDyField.data_source('Scope',
                                'data.domain',
                                default_outline_badge=['vpc', 'standard']),
        TextDyField.data_source('Associate Instance ID', 'data.instance_id'),
        TextDyField.data_source('Public DNS',
                                'data.public_dns',
                                options={'is_optional': True}),
        TextDyField.data_source('NAT Gateway ID',
                                'data.nat_gateway_id',
                                options={'is_optional': True}),
        TextDyField.data_source('Association ID',
                                'data.association_id',
                                options={'is_optional': True}),
        TextDyField.data_source('Allocation ID',
                                'data.allocation_id',
                                options={'is_optional': True}),
        TextDyField.data_source('AWS Account ID',
                                'data.account_id',
                                options={'is_optional': True})
    ],
    search=[
        SearchField.set(name='IP Address', key='data.public_ip'),
        SearchField.set(name='Name', key='data.name'),
        SearchField.set(name='Associated Instance ID', key='data.instance_id'),
        SearchField.set(name='Public DNS', key='data.public_dns'),
        SearchField.set(name='Private IP', key='data.private_ip_address'),
        SearchField.set(name='NAT Gateway ID', key='data.nat_gateway_id'),
        SearchField.set(name='Scope',
                        key='data.domain',
                        enums={
                            'vpc': {
                                'label': 'VPC'
                            },
                            'standard': {
                                'label': 'Standard'
                            },
                        }),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])
    'spaceone:icon':
    'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-SQS.svg',
}

cst_que._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('name', 'data.name'),
        TextDyField.data_source('url', 'data.url'),
    ],
    search=[
        SearchField.set(name='Name', key='data.name'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='URL', key='data.url'),
        SearchField.set(name='Maximum Message Size (Bytes)',
                        key='data.maximum_message_size',
                        data_type='integer'),
        SearchField.set(name='Approximate Number of Messages',
                        key='data.approximate_number_of_messages',
                        data_type='integer'),
        SearchField.set(name='Created Time',
                        key='data.created_timestamp',
                        data_type='datetime'),
        SearchField.set(name='Last Modified Time',
                        key='data.last_modified_timestamp',
                        data_type='datetime'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])

CLOUD_SERVICE_TYPES = [
    CloudServiceTypeResponse({'resource': cst_que}),
]