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'),
Ejemplo n.º 3
0
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']
                                }),
Ejemplo n.º 4
0
# 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'),
])
Ejemplo n.º 5
0
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',
Ejemplo n.º 6
0
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}),
Ejemplo n.º 7
0
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': {
Ejemplo n.º 8
0
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'}},
Ejemplo n.º 13
0
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'),
Ejemplo n.º 14
0
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',
Ejemplo n.º 15
0
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',
Ejemplo n.º 17
0
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',
Ejemplo n.º 18
0
    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={
Ejemplo n.º 19
0
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}),
Ejemplo n.º 21
0
    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']
                                }),