'is_optional': True }), TextDyField.data_source('Parameter Group Name', 'data.parameter_group_name', 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('Multi AZ', 'data.multi_az', options={ 'is_optional': True }), ListDyField.data_source('Availability Zones', 'data.availability_zones', options={ 'delimiter': '<br>', 'is_optional': True }), TextDyField.data_source('Subnet Group Name', 'data.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='Mode', key='data.mode'), SearchField.set(name='Status', key='data.status'), SearchField.set(name='Shard Count', key='data.shard_count', data_type='integer'), SearchField.set(name='Node Count', key='data.node_count', data_type='integer'), SearchField.set(name='Node Type', key='instance_type'),
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',
'safe': ['Deployed'], }), TextDyField.data_source('Domain Name', 'data.domain_name'), TextDyField.data_source('HTTP Version', 'data.http_version'), TextDyField.data_source('Comment', 'data.comment'), TextDyField.data_source('Price Class', 'data.price_class'), TextDyField.data_source('AWS Web ACL', 'data.web_acl_id'), EnumDyField.data_source('State Enabled', 'data.enabled', default_badge={ 'indigo.500': ['true'], 'coral.600': ['false'] }), ListDyField.data_source('CNAME', 'data.alias_icp_recordals', options={ 'sub_key': 'cname', 'delimiter': '<br>' }), TextDyField.data_source('Domain Name', 'data.domain_name'), TextDyField.data_source('Custom SSL Client Support', 'data.viewer_certificate.ssl_support_method'), TextDyField.data_source( 'Security Policy', 'data.viewer_certificate.minimum_protocol_version'), EnumDyField.data_source('IPv6 Support', 'data.is_ipv6_enabled', default_badge={ 'indigo.500': ['true'], 'coral.600': ['false'] }), DateTimeDyField.data_source('Last Modified', 'data.last_modified_time')
'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>',
default_badge={ 'indigo.500': ['true'], 'coral.600': ['false'] }), ]) net_sec = ItemDynamicLayout.set_fields( 'Network and Security', fields=[ TextDyField.data_source('VPC ID', 'data.vpc_id'), TextDyField.data_source('Availability Zone', 'availability_zone'), TextDyField.data_source('Subnet Group', 'data.cluster_subnet_group_name'), ListDyField.data_source('Security Groups', 'data.vpc_security_groups', default_badge={ 'type': 'outline', 'sub_key': 'vpc_security_group_id', }), TextDyField.data_source('Enhanced VPC Routing', 'enhanced_vpc_routing'), EnumDyField.data_source('Publicly Accessible', 'publicly_accessible', default_badge={ 'type': 'outline', 'sub_key': 'vpc_security_group_id', }) ]) param_group = ItemDynamicLayout.set_fields( 'Parameter Groups', 'data.cluster_parameter_groups',
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'}},
instance_conn = ItemDynamicLayout.set_fields( 'Connectivity', fields=[ TextDyField.data_source('Endpoint', 'data.instance.endpoint.address'), TextDyField.data_source('Port', 'data.instance.endpoint.port'), TextDyField.data_source('Availability Zone', 'data.instance.availability_zone'), TextDyField.data_source('VPC', 'data.instance.db_subnet_group.vpc_id'), TextDyField.data_source( 'Subnet Group', 'data.instance.db_subnet_group.db_subnet_group_name'), ListDyField.data_source('Subnets', 'data.instance.db_subnet_group.subnets', default_badge={ 'type': 'outline', 'sub_key': 'subnet_identifier', 'delimiter': '<br>' }), ]) instance_sec = ItemDynamicLayout.set_fields( 'Security', fields=[ ListDyField.data_source('VPC Security Groups', 'data.instance.vpc_security_groups', default_badge={ 'type': 'outline', 'sub_key': 'vpc_security_group_id', }), EnumDyField.data_source('Public Accessibility',
), 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", ),
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
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>'}), # 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)',
SizeField.data_source('Object Total Size', 'data.object_total_size'), TextDyField.data_source('URL', 'data.url'), TextDyField.data_source('Object Access', 'data.access_rules.get_object'), TextDyField.data_source('ARN', 'data.arn', options={'is_optional': True}), TextDyField.data_source('Bundle ID', 'data.bundle_id', options={'is_optional': True}), TextDyField.data_source('Object Versioning', 'data.object_versioning', options={'is_optional': True}), ListDyField.data_source('Readonly Access Accounts', 'data.readonly_access_accounts', options={ 'delimiter': '<br>', 'is_optional': True }), TextDyField.data_source('Access Log Config', 'data.access_log_config.enabled', options={'is_optional': True}), ], search=[ SearchField.set(name='State', key='data.state.code'), SearchField.set(name='Region', key='data.state.code'), SearchField.set(name='URL', key='data.url'), SearchField.set(name='Bundle ID', key='data.bundle_id'), SearchField.set(name='Object Versioning ', key='data.object_versioning'), SearchField.set(name='Readonly Access Accounts', key='data.readonly_access_accounts'),
'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=[
# 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'] }), EnumDyField.data_source('DNS hostnames', 'data.enable_dns_hostnames', default_badge={ 'indigo.500': ['Enabled'], 'coral.600': ['Disabled'] }), TextDyField.data_source('DHCP Options set', 'data.dhcp_options_id'),
from schematics.types import ModelType, StringType, PolyModelType, DictType, ListType from spaceone.inventory.connector.aws_api_gateway_connector.schema.data import RestAPI, HTTPWebsocket from spaceone.inventory.libs.schema.dynamic_field import TextDyField, ListDyField, BadgeDyField from spaceone.inventory.libs.schema.dynamic_layout import ItemDynamicLayout, TableDynamicLayout from spaceone.inventory.libs.schema.resource import CloudServiceResource, CloudServiceResponse, CloudServiceMeta ''' REST API ''' # TAB - BASE rest_api_meta_base = ItemDynamicLayout.set_fields('REST API', fields=[ TextDyField.data_source('Id', 'data.id'), TextDyField.data_source('Name', 'data.name'), TextDyField.data_source('Description', 'data.description'), ListDyField.data_source('Endpoint Type', 'data.endpoint_configuration.types', default_badge={'type': 'outline'}) ]) # TAB - RESOURCE rest_api_meta_resources = TableDynamicLayout.set_fields('Resources', 'data.resources', fields=[ TextDyField.data_source('ID', 'id'), TextDyField.data_source('Parent ID', 'parent_id'), TextDyField.data_source('Path', 'path'), ListDyField.data_source('HTTP Methods', 'display_methods', default_badge={'type': 'inline'}), ]) rest_api_meta = CloudServiceMeta.set_layouts([rest_api_meta_base, rest_api_meta_resources]) '''
cst_asg.provider = 'aws' cst_asg.group = 'EC2' cst_asg.labels = ['Compute'] 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'
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': { 'label': 'Deployed', 'icon': { 'color': 'green.500' } }
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>',
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={
TextDyField.data_source('State Reason', 'data.state_reason.message'), DateTimeDyField.data_source('Creation Date', 'data.creation_date'), TextDyField.data_source('Platform Details', 'data.platform_details'), TextDyField.data_source('Architecture', 'data.architecture'), TextDyField.data_source('Usage Operation', 'data.usage_operation'), TextDyField.data_source('Image Type', 'data.image_type'), TextDyField.data_source('Virtualization Type', 'data.virtualization_type'), TextDyField.data_source('Description', 'data.description'), TextDyField.data_source('Root Device Name', 'data.root_device_name'), TextDyField.data_source('Root Device Type', 'data.root_device_type'), TextDyField.data_source('RAM Disk ID', 'data.platform'), TextDyField.data_source('Kernel ID', 'data.platform'), ListDyField.data_source('Block Devices', 'data.block_device_mappings', default_badge={ 'sub_key': 'device_name', }), ]) ami_permission = TableDynamicLayout.set_fields( 'Permission', 'data.launch_permissions', fields=[TextDyField.data_source('AWS Account ID', 'user_id')]) ami_tags = SimpleTableDynamicLayout.set_tags() ami_metadata = CloudServiceMeta.set_layouts( layouts=[ami, ami_permission, ami_tags])
'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',
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',
]) contributor_insights = ItemDynamicLayout.set_fields( 'CloudWatch Contributor Insights', fields=[ EnumDyField.data_source( 'Status', 'data.contributor_insight.contributor_insights_status', default_state={ 'safe': ['ENABLED'], 'warning': ['ENABLING', 'DISABLING'], 'disable': ['DISABLED'], 'alert': ['FAILED'] }), ListDyField.data_source( 'Rule List', 'data.contributor_insight.contributor_insights_rule_list', default_badge={'type': 'outline'}), ]) metadata = CloudServiceMeta.set_layouts( layouts=[tables, capacity, encryption, ttl, contributor_insights]) class DynamoDBResource(CloudServiceResource): cloud_service_group = StringType(default='DynamoDB') class TableResource(DynamoDBResource): cloud_service_type = StringType(default='Table') data = ModelType(Table) _metadata = ModelType(CloudServiceMeta,
cst_rest_api.name = 'RestAPI' cst_rest_api.provider = 'aws' cst_rest_api.group = 'APIGateway' cst_rest_api.labels = ['Networking'] 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'), ])
}), 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'] }), ListDyField.data_source('Lifecycle policy', 'data.life_cycle_policies', options={ 'sub_key': 'transition_to_ia_display', 'delimiter': '<br>' }), DateTimeDyField.data_source('Creation date', 'data.creation_time') ]) mount_target = TableDynamicLayout.set_fields( 'Mount Targets', 'data.mount_targets', fields=[ TextDyField.data_source('Mount target ID', 'mount_target_id'), EnumDyField.data_source('State', 'life_cycle_state', default_state={ 'safe': ['available'], 'warning':
cst_layer.service_code = 'AWSLambda' cst_layer.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/AWS-Lambda.svg', } cst_layer._metadata = CloudServiceTypeMeta.set_meta( fields=[ TextDyField.data_source('Name', 'data.layer_name'), TextDyField.data_source('Version', 'data.latest_matching_version.version'), TextDyField.data_source('Description', 'data.latest_matching_version.description'), ListDyField.data_source( 'Compatible Runtimes', 'data.latest_matching_version.compatible_runtimes', default_badge={ 'type': 'outline', }), ], search=[ SearchField.set(name='Name', key='data.layer_name'), SearchField.set(name='ARN', key='data.layer_arn'), SearchField.set( name='Compatible Runtimes', key='data.latest_matching_version.compatible_runtimes'), SearchField.set(name='Version', key='data.version', data_type='integer'), SearchField.set(name='Created Time', key='data.latest_matching_version.created_date', data_type='datetime'),
"Stream Details", fields=[ TextDyField.data_source("ARN", "data.delivery_stream_arn"), EnumDyField.data_source( "Status", "data.delivery_stream_status", default_state={ "safe": ["ACTIVE"], 'warning': ["CREATING", "DELETING"], "alert": ["DELETING_FAILED", "CREATING_FAILED", "SUSPENDED"] }, ), DateTimeDyField.data_source("Creation Time", "data.create_timestamp"), TextDyField.data_source("Source", "data.source.source_name"), ListDyField.data_source('Destination', 'data.destinations', options={ 'sub_key': 'destination_id', 'delimiter': '<br>' }), TextDyField.data_source('ARN', 'data.delivery_stream_arn'), TextDyField.data_source('Type', 'data.delivery_stream_type'), TextDyField.data_source('Version ID', 'data.version_id'), TextDyField.data_source('Encryption Configuration Status', 'data.delivery_stream_encryption_configuration.status'), TextDyField.data_source('Failure Description', 'data.failure_description') ], ) # TAB - Source firehose_meta_source_details = ItemDynamicLayout.set_fields( "Source", fields=[ TextDyField.data_source("Source Name", "data.source.source_name"),
cst_certi.name = 'Certificate' cst_certi.provider = 'aws' cst_certi.group = 'CertificateManager' cst_certi.labels = ['Security'] cst_certi.service_code = 'AWSCertificateManager' cst_certi.tags = { 'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/AWS-Certificate-Manager.svg', } 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'),
DateTimeDyField.data_source('Created At', 'data.create_date'), DateTimeDyField.data_source('Last Accessed At', 'data.password_last_used'), ]) user_policy_table = TableDynamicLayout.set_fields('Permission', root_path='data.policies', fields=[ TextDyField.data_source('Policy Name', 'policy_name'), EnumDyField.data_source('Policy Type', 'policy_type', default_badge={ 'indigo.500': ['AWS Managed'], 'coral.600': ['Local Managed'], }), TextDyField.data_source('Description', 'description'), DateTimeDyField.data_source('Created At', 'create_date'), ]) user_group_table = TableDynamicLayout.set_fields('Groups', root_path='data.groups', fields=[ TextDyField.data_source('Group Name', 'group_name'), ListDyField.data_source('Policy Name', 'attached_policy_name', default_badge={'type': 'outline', 'delimiter': '<br>'}), DateTimeDyField.data_source('Created At', 'create_date'), ]) sign_in_credentials = ItemDynamicLayout.set_fields('Sign-in Credentials', root_path='data.sign_in_credential', fields=[ ListDyField.data_source('Summary', 'summary'), EnumDyField.data_source('Console Password', 'console_password', default_badge={ 'indigo.500': ['Enabled'], 'coral.600': ['Disabled'], }), TextDyField.data_source('Assigned MFA device', 'assigned_mfa_device'), ])
"Stream Details", fields=[ TextDyField.data_source("ARN", "data.delivery_stream_arn"), EnumDyField.data_source( "Status", "data.delivery_stream_status", default_state={ "safe": ["ACTIVE"], 'warning': ["CREATING", "DELETING"], "alert": ["DELETING_FAILED", "CREATING_FAILED", "SUSPENDED"] }, ), DateTimeDyField.data_source( "Data retention period", "data.create_timestamp" ), ListDyField.data_source("Permissions (IAM role)", "data.additional_tabs.iam_role", options={"delimiter": ", "}), ListDyField.data_source("CloudWatch error logging", "data.additional_tabs.cloud_watch_info", options={"delimiter": ", "}) ], ) # TAB - Source firehose_meta_source_details = ItemDynamicLayout.set_fields( "Source", fields=[ TextDyField.data_source("Source", "data.source.source_details"), TextDyField.data_source("Server-side encryption for source records", "data.delivery_stream_encryption_configuration.status"), TextDyField.data_source("Encryption type", "data.delivery_stream_encryption_configuration.key_type"), ] )
'alert': ['active_impaired', 'failed'] }), EnumDyField.data_source('Type', 'data.type', default_badge={ 'indigo.500': ['network'], 'coral.600': ['application'] }), EnumDyField.data_source('Scheme', 'data.scheme', default_badge={ 'indigo.500': ['internet-facing'], 'coral.600': ['internal'] }), ListDyField.data_source('Security Groups', 'data.security_groups', default_badge={'type': 'outline'}), EnumDyField.data_source('IP address type', 'data.ip_address_type', default_outline_badge=['ipv4', 'dualstack']), TextDyField.data_source('VPC ID', 'data.vpc_id'), ListDyField.data_source('Availability Zones', 'data.availability_zones', default_badge={ 'type': 'outline', 'sub_key': 'zone_name', }), TextDyField.data_source('Hosted Zone', 'data.canonical_hosted_zone_id'), DateTimeDyField.data_source('Creation time', 'data.created_time'), ])