cst_ami.labels = ['Compute'] cst_ami.service_code = 'AmazonEC2' cst_ami.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-AMI.svg', } cst_ami._metadata = CloudServiceTypeMeta.set_meta( fields=[ TextDyField.data_source('ID', 'data.image_id'), TextDyField.data_source('Name', 'data.name'), TextDyField.data_source('Source', 'data.image_location'), TextDyField.data_source('Owner', 'data.owner_id'), EnumDyField.data_source('Is Public', 'data.public', default_badge={ 'indigo.500': ['true'], 'coral.600': ['false'] }), EnumDyField.data_source( 'Status', 'data.state', default_state={ 'safe': ['available'], 'warning': ['pending', 'transient', 'deregistered', 'invalid'], 'alert': ['error', 'failed'] }), DateTimeDyField.data_source('Creation Date', 'data.creation_date'), TextDyField.data_source('Platform', 'data.platform'), TextDyField.data_source('Root Device Type', 'data.root_device_type'), TextDyField.data_source('Virtualization', 'data.virtualization_type'), ],
launch_template.name = 'LaunchTemplate' launch_template.provider = 'aws' launch_template.group = 'EC2' launch_template.labels = ['Compute'] launch_template.service_code = 'AmazonEC2' launch_template.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-EC2-Auto-Scaling.svg', } launch_template._metadata = CloudServiceTypeMeta.set_meta( fields=[ TextDyField.data_source('Name', 'data.launch_template_name'), TextDyField.data_source('AMI ID', 'data.launch_template_data.image_id'), TextDyField.data_source('Owner', 'data.created_by'), EnumDyField.data_source('Default Version', 'data.default_version', default_badge={ 'indigo.500': ['true'], 'coral.600': ['false'] }), TextDyField.data_source('Version', 'data.version'), DateTimeDyField.data_source('Creation Time', 'data.create_time'), ], search=[ SearchField.set(name='Name', key='data.launch_template_name'), SearchField.set(name='ID', key='data.launch_template_id'), SearchField.set(name='AMI ID', key='data.launch_template_data.image_id'), SearchField.set(name='Owner', key='data.created_by'), SearchField.set(name='Default Version', key='data.default_version', data_type='boolean'), SearchField.set(name='Versions', key='data.version'), SearchField.set(name='Instance Type', key='data.launch_template_data.instance_type'), SearchField.set(name='Monitoring', key='data.launch_template_data.monitoring.enabled', data_type='boolean'), SearchField.set(name='Security Group ID', key='data.launch_template_data.security_group_ids'), SearchField.set(name='Created Time', key='data.create_time', data_type='datetime'),
from spaceone.inventory.connector.aws_efs_connector.schema.data import FileSystem from spaceone.inventory.libs.schema.resource import CloudServiceResource, CloudServiceResponse, CloudServiceMeta from spaceone.inventory.libs.schema.dynamic_field import TextDyField, ListDyField, DateTimeDyField, EnumDyField, \ SizeField from spaceone.inventory.libs.schema.dynamic_layout import ItemDynamicLayout, TableDynamicLayout, SimpleTableDynamicLayout base = ItemDynamicLayout.set_fields( 'File Systems', fields=[ TextDyField.data_source('ID', 'data.file_system_id'), TextDyField.data_source('Name', 'data.name'), EnumDyField.data_source('File System State', 'data.life_cycle_state', default_state={ 'safe': ['available'], 'warning': ['creating', 'updating', 'deleting'], 'disable': ['deleted'] }), TextDyField.data_source('Owner ID', 'data.owner_id'), SizeField.data_source('Metered Size', 'data.size_in_bytes.value'), TextDyField.data_source('Number of mount targets', 'data.number_of_mount_targets'), TextDyField.data_source('Performance mode', 'data.performance_mode'), TextDyField.data_source('Throughput mode', 'data.throughput_mode'), EnumDyField.data_source('Encrypted', 'data.encrypted', default_badge={ 'indigo.500': ['true'], 'coral.600': ['false'] }),
# GROUP group_base = ItemDynamicLayout.set_fields('Group', fields=[ TextDyField.data_source('Group ARN', 'data.arn'), TextDyField.data_source('Group Name', 'data.group_name'), TextDyField.data_source('Group ID', 'data.group_id'), TextDyField.data_source('Path', 'data.path'), TextDyField.data_source('User Count', 'data.user_count'), DateTimeDyField.data_source('Created At', 'data.create_date'), ]) group_user_table = TableDynamicLayout.set_fields('Users', root_path='data.users', fields=[ TextDyField.data_source('User Name', 'user_name'), TextDyField.data_source('Access Key Age', 'access_key_age_display'), TextDyField.data_source('Last Activity', 'last_activity'), EnumDyField.data_source('MFA', 'mfa_device', default_badge={ 'indigo.500': ['Virtual'], 'coral.600': ['Not enabled'], }), ]) group_policy_table = TableDynamicLayout.set_fields('Permissions', root_path='data.attached_permission', fields=[ TextDyField.data_source('Policy Name', 'policy_name'), TextDyField.data_source('Policy ID', 'policy_id'), EnumDyField.data_source('Policy Type', 'policy_type', default_badge={ 'indigo.500': ['AWS Managed'], 'coral.600': ['Local Managed'], }), TextDyField.data_source('Policy ARN', 'arn'), TextDyField.data_source('Permission Usage Count', 'attachment_count'), TextDyField.data_source('Description', 'description'), DateTimeDyField.data_source('Created At', 'create_date'), DateTimeDyField.data_source('Updated At', 'update_date'), ])
from schematics.types import ModelType, StringType, PolyModelType, DictType, ListType from spaceone.inventory.connector.aws_rds_connector.schema.data import Database, Snapshot, SubnetGroup, ParameterGroup, \ OptionGroup from spaceone.inventory.libs.schema.resource import CloudServiceResource, CloudServiceResponse, CloudServiceMeta from spaceone.inventory.libs.schema.dynamic_field import TextDyField, ListDyField, BadgeDyField, EnumDyField, \ DateTimeDyField from spaceone.inventory.libs.schema.dynamic_layout import ItemDynamicLayout, TableDynamicLayout, SimpleTableDynamicLayout summary = ItemDynamicLayout.set_fields( 'Summary', 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('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',
cst_hostedzone.provider = 'aws' cst_hostedzone.group = 'Route53' cst_hostedzone.labels = ['Networking'] cst_hostedzone.is_primary = True cst_hostedzone.service_code = 'AmazonRoute53' cst_hostedzone.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-Route-53.svg', } 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}),
cst_distribution.name = 'Distribution' cst_distribution.provider = 'aws' cst_distribution.group = 'CloudFront' cst_distribution.labels = ['Networking'] cst_distribution.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-CloudFront.svg', 'spaceone:is_major': 'false', } 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': {
cst_ebs.group = 'EC2' cst_ebs.labels = ['Compute', 'Storage'] cst_ebs.is_primary = True cst_ebs.is_major = True cst_ebs.service_code = 'AmazonEC2' cst_ebs.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-Elastic-Block-Store-EBS.svg', 'spaceone:display_name': 'EBS' } 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 }),
cst_instance.group = 'Lightsail' cst_instance.labels = ['Compute'] cst_instance.is_primary = True cst_instance.is_major = True cst_instance.service_code = 'AmazonLightsail' cst_instance.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-Lightsail.svg', } 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}),
cst_cluster.service_code = 'AmazonDocDB' cst_cluster.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-DocumentDB.svg', } 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}),
cst_rds_database.name = 'Database' cst_rds_database.provider = 'aws' cst_rds_database.group = 'RDS' cst_rds_database.labels = ['Database'] cst_rds_database.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-RDS.svg', 'spaceone:is_major': 'true', } 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={
cst_filesystem.name = 'FileSystem' cst_filesystem.provider = 'aws' cst_filesystem.group = 'EFS' cst_filesystem.labels = ['Storage'] cst_filesystem.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-Elastic-File-System_EFS.svg', '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'}},
from schematics.types import ModelType, StringType, PolyModelType, DictType, ListType from spaceone.inventory.connector.aws_cloud_front_connector.schema.data import DistributionData from spaceone.inventory.libs.schema.resource import CloudServiceResource, CloudServiceResponse, CloudServiceMeta from spaceone.inventory.libs.schema.dynamic_field import TextDyField, ListDyField, BadgeItemDyField, BadgeDyField, EnumDyField from spaceone.inventory.libs.schema.dynamic_layout import ItemDynamicLayout, TableDynamicLayout, SimpleTableDynamicLayout # TAB - BASE meta_base = ItemDynamicLayout.set_fields( 'Distributions', fields=[ TextDyField.data_source('Id', 'data.id'), TextDyField.data_source('ARN', 'data.arn'), EnumDyField.data_source('Status', 'data.status', default_state={ 'safe': ['Deployed'], }), TextDyField.data_source('Domain Name', 'data.domain_name'), ListDyField.data_source('CNAME', 'data.alias_icp_recordals', default_badge={ 'type': 'outline', 'sub_key': 'cname', }), TextDyField.data_source( 'Origins quantity', 'data.distribution_config.origin_groups.quantity'), TextDyField.data_source( 'Origin Groups quantity', 'data.distribution_config.origin_groups.quantity'),
from spaceone.inventory.connector.aws_ecs_connector.schema.data import Cluster from spaceone.inventory.libs.schema.resource import CloudServiceResource, CloudServiceResponse, CloudServiceMeta from spaceone.inventory.libs.schema.dynamic_field import TextDyField, BadgeDyField, EnumDyField from spaceone.inventory.libs.schema.dynamic_layout import ItemDynamicLayout, TableDynamicLayout, SimpleTableDynamicLayout base = ItemDynamicLayout.set_fields( 'Clusters', fields=[ TextDyField.data_source('Name', 'data.cluster_name'), TextDyField.data_source('ARN', 'data.cluster_arn'), EnumDyField.data_source('Status', 'data.status', default_state={ 'safe': ['ACTIVE'], 'warning': ['PROVISIONING', 'DEPROVISIONING'], 'disable': ['INACTIVE'], 'alert': ['FAILED'] }), TextDyField.data_source('Active Service', 'data.active_services_count'), TextDyField.data_source('Running Tasks', 'data.active_services_count'), TextDyField.data_source('Pending Tasks', 'data.pending_tasks_count'), TextDyField.data_source('Registered Instances', 'data.registered_container_instances_count'), ]) services = TableDynamicLayout.set_fields( 'Services', 'data.services',
cst_api.name = 'API' cst_api.provider = 'aws' cst_api.group = 'APIGateway' cst_api.labels = ['Networking'] 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'), ] )
cst_bucket.group = 'S3' cst_bucket.labels = ['Storage'] cst_bucket.is_primary = True cst_bucket.is_major = True cst_bucket.service_code = 'AmazonS3' cst_bucket.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-S3.svg', } 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',
cst_table.group = 'DynamoDB' cst_table.labels = ['Database'] cst_table.is_primary = True cst_table.is_major = True cst_table.service_code = 'AmazonDynamoDB' cst_table.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-DynamoDB.svg', } 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',
fields=[ TextDyField.data_source('ID', 'data.group_id'), TextDyField.data_source('Name', 'data.group_name'), TextDyField.data_source('Description', 'data.description'), TextDyField.data_source('VPC ID', 'data.vpc_id'), TextDyField.data_source('Account ID', 'data.owner_id'), ]) inbound_rules = TableDynamicLayout.set_fields( 'Inbound Rules', 'data.ip_permissions', fields=[ EnumDyField.data_source('Protocol', 'protocol_display', default_badge={ 'coral.600': ['ALL'], 'indigo.500': ['TCP'], 'peacock.500': ['UDP'], 'green.500': ['ICMP'] }), TextDyField.data_source('Port range', 'port_display'), TextDyField.data_source('Source', 'source_display'), TextDyField.data_source('Description', 'description_display'), ]) outbound_rules = TableDynamicLayout.set_fields( 'Outbound Rules', 'data.ip_permissions_egress', fields=[ EnumDyField.data_source('Protocol', 'protocol_display', default_badge={
from spaceone.inventory.connector.aws_dynamodb_connector.schema.data import Table from spaceone.inventory.libs.schema.resource import CloudServiceResource, CloudServiceResponse, CloudServiceMeta from spaceone.inventory.libs.schema.dynamic_field import TextDyField, ListDyField, BadgeDyField, DateTimeDyField, \ EnumDyField, SizeField from spaceone.inventory.libs.schema.dynamic_layout import ItemDynamicLayout tables = ItemDynamicLayout.set_fields( 'Tables', fields=[ TextDyField.data_source('Table Name', 'data.table_name'), TextDyField.data_source('ARN', 'data.table_arn'), 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('Primary Sort Key', 'data.sort_key_display'), EnumDyField.data_source( 'Point-in-time Recovery', 'data.continuous_backup.point_in_time_recovery_description.point_in_time_recovery_status', default_state={ 'safe': ['ENABLED'], 'disable': ['DISABLED'] }), EnumDyField.data_source( 'CloudWatch Contributor Insights', 'data.contributor_insight.contributor_insights_status',
cst_cluster.service_code = 'AmazonMSK' cst_cluster.is_primary = True cst_cluster.is_major = True cst_cluster.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-MSK.svg', } 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}),
EgressOnlyInternetGateway, Endpoint, NATGateway, PeeringConnection, NetworkACL, TransitGateway, CustomerGateway, \ VPNConnection, VPNGateway from spaceone.inventory.libs.schema.resource import CloudServiceMeta, CloudServiceResource, CloudServiceResponse from spaceone.inventory.libs.schema.dynamic_field import TextDyField, ListDyField, EnumDyField, DateTimeDyField, \ BadgeDyField from spaceone.inventory.libs.schema.dynamic_layout import ItemDynamicLayout, TableDynamicLayout, \ SimpleTableDynamicLayout # VPC vpc = ItemDynamicLayout.set_fields( 'VPC', fields=[ TextDyField.data_source('VPC ID', 'data.vpc_id'), EnumDyField.data_source('State', 'data.state', default_state={ 'safe': ['available'], 'warning': ['pending'] }), TextDyField.data_source('IPv4 CIDR', 'data.cidr_block'), ListDyField.data_source('IPv6 CIDR', 'data.ipv6_cidr_block_association_set', default_badge={ 'type': 'outline', 'sub_key': 'ipv6_cidr_block' }), EnumDyField.data_source('DNS resolution', 'data.enable_dns_support', default_badge={ 'indigo.500': ['Enabled'], 'coral.600': ['Disabled'] }),