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'), ])
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'), ])
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'), ])
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)) ])
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)) ] )
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)) ])
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'), ] )
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'), ])
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'), ])
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'), ])
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)) ])
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}), ]