Ejemplo n.º 1
0
cst_ecr_repo.group = 'ECR'
cst_ecr_repo.labels = ['Container']
cst_ecr_repo.tags = {
    'spaceone:icon':
    'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-EC2-Container-Registry.svg',
    'spaceone:is_major': 'true',
}

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

CLOUD_SERVICE_TYPES = [
    CloudServiceTypeResponse({'resource': cst_ecr_repo}),
]
    'spaceone:is_major': 'true',
}

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

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

cst_memcached._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Cluster Name', 'data.cache_cluster_id'),
        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'),
    ],
    search=[
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Cluster Name', key='data.cache_cluster_id'),
        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='data.cache_node_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_redis = CloudServiceTypeResource()
Ejemplo n.º 4
0
cst_trail._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Home Region', 'data.home_region'),
        TextDyField.data_source('Multi-Region Trail',
                                'data.is_multi_region_trail'),
        TextDyField.data_source('Insight', 'data.has_insight_selectors'),
        TextDyField.data_source('Organization Trail',
                                'data.is_organization_trail'),
        TextDyField.data_source('S3 Bucket', 'data.s3_bucket_name'),
        TextDyField.data_source('Log file Prefix', 'data.s3_key_prefix'),
        # For Dynamic Table
        TextDyField.data_source('Trail ARN',
                                'data.trail_arn',
                                options={'is_optional': True}),
        TextDyField.data_source('Log file Validation Enabled',
                                'data.log_file_validation_enabled',
                                options={'is_optional': True}),
        TextDyField.data_source('CloudWatch Logs Log group',
                                'data.cloud_watch_logs_log_group_arn',
                                options={'is_optional': True}),
        TextDyField.data_source('SNS Topic name',
                                'data.sns_topic_name',
                                options={'is_optional': True}),
        TextDyField.data_source('SNS Topic ARN',
                                'data.sns_topic_arn',
                                options={'is_optional': True}),
        TextDyField.data_source('KMS Key ID',
                                'data.kms_key_id',
                                options={'is_optional': True}),
        TextDyField.data_source('Include Global Service Events',
                                'data.include_global_service_events',
                                options={'is_optional': True}),
        TextDyField.data_source('AWS Account ID',
                                'account',
                                options={'is_optional': True}),
    ],
    search=[
        SearchField.set(name='ARN', key='data.trail_arn'),
        SearchField.set(name='Home Region', key='data.home_region'),
        SearchField.set(name='Multi-Region Trail',
                        key='data.is_multi_region_trail',
                        data_type='boolean'),
        SearchField.set(name='S3 Bucket', key='data.s3_bucket_name'),
    ])
Ejemplo n.º 5
0
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']
        }),
        TextDyField.data_source('ARN', 'data.arn', options={
            'is_optional': True
        }),
        TextDyField.data_source('Role ARN', 'data.role_arn', options={
            'is_optional': True
        }),
        TextDyField.data_source('Endpoint', 'data.endpoint', options={
            'is_optional': True
        }),
        ListDyField.data_source('Node Group ARNs', 'data.node_groups', options={
            'delimiter': 'nodegroup_arn',
            'is_optional': True
        }),
        ListDyField.data_source('Node Group names', 'data.node_groups', options={
            'delimiter': 'nodegroup_name',
            'is_optional': True
        }),
        ListDyField.data_source('Node Role ARNs', 'data.node_groups', options={
            'delimiter': 'node_role',
            'is_optional': True
        }),
        TextDyField.data_source('VPC ID', 'data.resources_vpc_config.vpc_id', options={
            'is_optional': True
        }),
        ListDyField.data_source('Subnets', 'data.resources_vpc_config.subnet_ids', options={
            'delimiter': '<br>',
            'is_optional': True
        }),
        ListDyField.data_source('Public Access CIDRs', 'data.resources_vpc_config.public_access_cidrs', options={
            'delimiter': '<br>',
            'is_optional': True
        }),
        TextDyField.data_source('Cluster Security Group ID', 'data.resources_vpc_config.cluster_security_group_id', options={
            'is_optional': True
        }),
        TextDyField.data_source('Endpoint Public Access', 'data.resources_vpc_config.endpoint_public_access', options={
            'is_optional': True
        }),
        TextDyField.data_source('Endpoint Private Access', 'data.resources_vpc_config.endpoint_private_access', options={
            'is_optional': True
        }),
        ListDyField.data_source('Cluster Logging Enabled', 'data.logging.cluster_logging', options={
            'delimiter': 'enabled',
            'is_optional': True
        }),
        TextDyField.data_source('OIDC issuer', 'data.identity.oidc.issuer', options={
            'is_optional': True
        }),
        TextDyField.data_source('Platform Version', 'data.platform_version', 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.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='AWS Account ID', key='data.account_id'),
    ]
)
Ejemplo n.º 6
0
cst_cluster._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Cluster', 'data.db_cluster_identifier'),
        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
                                }),
        TextDyField.data_source('AWS Account ID',
                                'data.account_id',
                                options={'is_optional': True}),
    ],
    search=[
        SearchField.set(name='Cluster', 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'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
        SearchField.set(name='Creation Time',
                        key='data.cluster_create_time',
                        data_type='datetime'),
    ])
Ejemplo n.º 7
0
cst_secret._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.name'),
        TextDyField.data_source('Description', 'data.description'),
        DateTimeDyField.data_source('Last Retrieved', 'data.last_accessed_date'),
        TextDyField.data_source('ARN', 'data.arn', options={
            'is_optional': True
        }),
        TextDyField.data_source('KMS Key ID', 'data.kms_key_id', options={
            'is_optional': True
        }),
        TextDyField.data_source('Rotation Enabled', 'data.rotation_enabled', options={
            'is_optional': True
        }),
        TextDyField.data_source('Rotation Lambda ARN', 'data.rotation_lambda_arn', options={
            'is_optional': True
        }),
        ListDyField.data_source('Rotation Rule: Automatically After Days', 'data.rotation_rules', options={
            'sub_key': 'automatically_after_days',
            'delimiter': '<br>',
            'is_optional': True
        }),
        DateTimeDyField.data_source('Last Rotated Date', 'data.last_rotated_date', options={
            'is_optional': True
        }),
        DateTimeDyField.data_source('Last Changed Date', 'data.last_changed_date', options={
            'is_optional': True
        }),
        DateTimeDyField.data_source('Last Accessed Date', 'data.last_accessed_date', options={
            'is_optional': True
        }),
        DateTimeDyField.data_source('Last Deleted Date', 'data.deleted_date', options={
            'is_optional': True
        }),
        TextDyField.data_source('Owning Service', 'data.owning_service', options={
            'is_optional': True
        }),
        TextDyField.data_source('AWS Account ID', 'data.account_id', options={
            'is_optional': True
        }),
    ],
    search=[
        SearchField.set(name='Name', key='data.name'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Last Changed Time', key='data.last_changed_date', data_type='datetime'),
        SearchField.set(name='Last Accessed Time', key='data.last_accessed_date', data_type='datetime'),
        SearchField.set(name='Rotation Enabled', key='data.rotation_enabled', data_type='boolean'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ]
)
cst_topic._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('ARN',
                                'data.topic_arn',
                                options={'is_optional': True}),
        TextDyField.data_source('Display Name',
                                'data.display_name',
                                options={'is_optional': True}),
        TextDyField.data_source('Subscription Confirmed',
                                'data.subscription_confirmed',
                                options={'is_optional': True}),
        TextDyField.data_source('Subscription Pending',
                                'data.subscriptions_pending',
                                options={'is_optional': True}),
        TextDyField.data_source('Subscription Deleted',
                                'data.subscription_deleted',
                                options={'is_optional': True}),
        TextDyField.data_source('KMS ID',
                                'data.kms.kms_id',
                                options={'is_optional': True}),
        TextDyField.data_source('KMS ARN',
                                'data.kms.arn',
                                options={'is_optional': True}),
        TextDyField.data_source('KMS Alias',
                                'data.kms.alias',
                                options={'is_optional': True})
    ],
    search=[
        SearchField.set(name='Topic ARN', key='data.topic_arn'),
        SearchField.set(name='Subscription ARN',
                        key='data.subscriptions.subscription_arn'),
        SearchField.set(name='Endpoint', key='data.subscriptions.endpoint'),
        SearchField.set(name='Protocol', key='data.subscriptions.protocol')
    ],
    widget=[
        CardWidget.set(**get_data_from_yaml(topic_total_count_conf)),
        CardWidget.set(**get_data_from_yaml(subscription_total_count_conf)),
        ChartWidget.set(**get_data_from_yaml(topic_count_by_region_conf)),
        ChartWidget.set(**get_data_from_yaml(topic_count_by_account_conf)),
        ChartWidget.set(
            **get_data_from_yaml(subscription_count_by_account_conf)),
    ])
cst_cluster._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Cluster', 'data.db_cluster_identifier'),
        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']
        }),
        EnumDyField.data_source('Engine', 'data.engine', default_outline_badge=['docdb']),
        TextDyField.data_source('Version', 'data.engine_version'),
        TextDyField.data_source('Instances', 'data.instance_count'),
    ],
    search=[
        SearchField.set(name='Cluster', 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'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
        SearchField.set(name='Creation Time', key='data.cluster_create_time', data_type='datetime'),
    ]
)
Ejemplo n.º 10
0
cst_trail._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Trail Name', 'data.name'),
        TextDyField.data_source('Home Region', 'data.home_region'),
        EnumDyField.data_source('Multi-Region Trail',
                                'data.is_multi_region_trail',
                                default_badge={
                                    'indigo.500': ['true'],
                                    'coral.600': ['false']
                                }),
        EnumDyField.data_source('Insight',
                                'data.has_insight_selectors',
                                default_badge={
                                    'indigo.500': ['true'],
                                    'coral.600': ['false']
                                }),
        EnumDyField.data_source('Organization Trail',
                                'data.is_organization_trail',
                                default_badge={
                                    'indigo.500': ['true'],
                                    'coral.600': ['false']
                                }),
        TextDyField.data_source('S3 Bucket', 'data.s3_bucket_name'),
        TextDyField.data_source('Log file Prefix', 'data.s3_key_prefix'),
        TextDyField.data_source('CloudWatch Logs Log group',
                                'data.cloud_watch_logs_log_group_arn'),
    ],
    search=[
        SearchField.set(name='Name', key='data.name'),
        SearchField.set(name='ARN', key='data.trail_arn'),
        SearchField.set(name='Home Region', key='data.home_region'),
        SearchField.set(name='Multi-Region Trail',
                        key='data.is_multi_region_trail',
                        data_type='boolean'),
        SearchField.set(name='S3 Bucket', key='data.s3_bucket_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])
Ejemplo n.º 11
0
cst_firehose._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source("Name", "data.delivery_stream_name"),
        EnumDyField.data_source(
            "Status",
            "data.delivery_stream_status",
            default_state={
                "safe": ["ACTIVE"],
                'warning': ["CREATING", "DELETING"],
                "alert": ["DELETING_FAILED", "CREATING_FAILED", "SUSPENDED"]
            },
        ),
        TextDyField.data_source("Source", "data.source.source_name"),
        TextDyField.data_source(
            "Data transformation",
            "data.additional_tabs.lambda_tab.data_transformation"),
        TextDyField.data_source("Destination",
                                "data.additional_tabs.destination_name"),
        DateTimeDyField.data_source("Creation time", "data.create_timestamp"),
        TextDyField.data_source('ARN',
                                'data.delivery_stream_arn',
                                options={'is_optional': True}),
        TextDyField.data_source('Type',
                                'data.delivery_stream_type',
                                options={'is_optional': True}),
        TextDyField.data_source('Version ID',
                                'data.version_id',
                                options={'is_optional': True}),
        TextDyField.data_source(
            'Encryption Configuration Status',
            'data.delivery_stream_encryption_configuration.status',
            options={'is_optional': True}),
        TextDyField.data_source('Cloudwatch Enabled',
                                'data.additional_tabs.cloud_watch_info',
                                options={'is_optional': True}),
        TextDyField.data_source('IAM Role',
                                'data.additional_tabs.iam_role',
                                options={'is_optional': True}),
        TextDyField.data_source('S3 Backup Mode',
                                'data.additional_tabs.backup_mode',
                                options={'is_optional': True}),
        TextDyField.data_source('Lambda Data Transformation',
                                'data.lambda_tab.data_transformation',
                                options={'is_optional': True}),
        TextDyField.data_source('Lambda Source Record Transformation',
                                'data.lambda_tab.source_record_transformation',
                                options={'is_optional': True}),
        TextDyField.data_source('Failure Description',
                                'data.failure_description',
                                options={'is_optional': True}),
        TextDyField.data_source('AWS Account ID',
                                'data.account_id',
                                options={'is_optional': True})
    ],
    search=[
        SearchField.set(name="Stream Name", key="data.delivery_stream_name"),
        SearchField.set(name="Stream ARN", key="data.delivery_stream_arn"),
        SearchField.set(name="Stream Status",
                        key="data.delivery_stream_status"),
        SearchField.set(name="Source Name", key="data.source.source_name"),
        SearchField.set(name="Destination",
                        key="data.additional_tabs.destination_name"),
        SearchField.set(name="IAM role", key="data.additional_tabs.iam_role"),
        SearchField.set(name="S3 backup mode",
                        key="data.additional_tabs.s3_backup_info")
    ],
)
Ejemplo n.º 12
0
cst_redshift_cluster._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Cluster', 'data.cluster_identifier'),
        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', 'data.node_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}),
        TextDyField.data_source('AWS Account ID',
                                'data.account_id',
                                options={'is_optional': True})
    ],
    search=[
        SearchField.set(name='Cluster Identifier',
                        key='data.cluster_identifier'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Cluster Version', key='data.cluster_version'),
        SearchField.set(name='Node Type', key='data.node_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'),
        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='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ]
)
Ejemplo n.º 14
0
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",
        ),
    ],
)
Ejemplo n.º 15
0
cst_hostedzone._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        EnumDyField.data_source('Type',
                                'instance_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
                                })
    ],
    search=[
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Type', key='instance_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')
    ],
    widget=[
        CardWidget.set(**get_data_from_yaml(hosted_zone_total_count_conf)),
        CardWidget.set(**get_data_from_yaml(record_set_total_count_conf)),
        ChartWidget.set(
            **get_data_from_yaml(hosted_zone_count_by_account_conf)),
        ChartWidget.set(**get_data_from_yaml(hosted_zone_count_by_type_conf)),
        ChartWidget.set(**get_data_from_yaml(record_set_by_account_conf))
    ])
cst_connection_meta = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('ID', 'data.connection_id'),
        TextDyField.data_source('Name', 'data.connection_name'),
        EnumDyField.data_source('State',
                                'data.connection_state',
                                default_state={
                                    'safe': ['available'],
                                    'available': ['requested'],
                                    'alert': ['down', 'rejected'],
                                    'warning':
                                    ['ordering', 'pending', 'deleting'],
                                    'disable': ['unknown', 'deleted']
                                }),
        TextDyField.data_source('Region', 'data.region'),
        TextDyField.data_source('Location', 'data.location'),
        TextDyField.data_source('Bandwidth', 'data.bandwidth'),
        # For Dynamic Table
        TextDyField.data_source('Logical Redundancy',
                                'data.has_logical_redundancy',
                                options={'is_optional': True}),
        TextDyField.data_source('VLAN',
                                'data.vlan',
                                options={'is_optional': True}),
        TextDyField.data_source('LAG ID',
                                'data.lag_id',
                                options={'is_optional': True}),
        TextDyField.data_source('Jumbo Frame Capable',
                                'data.jumbo_frame_capable',
                                options={'is_optional': True}),
        TextDyField.data_source('Partner Name',
                                'data.partner_name',
                                options={'is_optional': True}),
        TextDyField.data_source('AWS Device',
                                'data.aws_device',
                                options={'is_optional': True}),
        TextDyField.data_source('AWS Device V2',
                                'data.aws_device_v2',
                                options={'is_optional': True}),
        TextDyField.data_source('AWS Account ID',
                                'data.owner_account',
                                options={'is_optional': True}),
    ],
    search=[
        SearchField.set(name='Connection ID', key='data.connection_id'),
        SearchField.set(name='Name', key='data.connection_name'),
        SearchField.set(name='State',
                        key='data.connection_state',
                        enums={
                            'available': {
                                'label': 'Available',
                                'icon': {
                                    'color': 'green.500'
                                }
                            },
                            'requested': {
                                'label': 'Requested',
                                'icon': {
                                    'color': 'blue.400'
                                }
                            },
                            'down': {
                                'label': 'Down',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                            'rejected': {
                                'label': 'Rejected',
                                'icon': {
                                    'color': 'red.500'
                                }
                            },
                            'ordering': {
                                'label': 'Ordering',
                                'icon': {
                                    'color': 'yellow.500'
                                }
                            },
                            'pending': {
                                'label': 'Pending',
                                'icon': {
                                    'color': 'yellow.500'
                                }
                            },
                            'deleting': {
                                'label': 'Deleting',
                                'icon': {
                                    'color': 'yellow.500'
                                }
                            },
                            'unknown': {
                                'label': 'Unknown',
                                'icon': {
                                    'color': 'gray.400'
                                }
                            },
                            'deleted': {
                                'label': 'Deleted',
                                'icon': {
                                    'color': 'gray.400'
                                }
                            }
                        }),
        SearchField.set(name='Location', key='data.location'),
        SearchField.set(name='Vlan', key='data.vlan'),
        SearchField.set(name='Partner Name', key='data.partner_name'),
        SearchField.set(name='Lag ID', key='data.lag_id'),
        SearchField.set(name='AWS Device', key='data.aws_device'),
        SearchField.set(name='Provider Name', key='data.provider_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])
Ejemplo n.º 17
0
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'),
    ],
    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'),
    ])
Ejemplo n.º 18
0
cst_filesystem._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        EnumDyField.data_source('State',
                                'data.life_cycle_state',
                                default_state={
                                    'safe': ['available'],
                                    'warning':
                                    ['creating', 'updating', 'deleting'],
                                    'disable': ['deleted']
                                }),
        SizeField.data_source('Metered Sizes', 'instance_size'),
        TextDyField.data_source('Mount Targets',
                                'data.number_of_mount_targets'),
        TextDyField.data_source('ID',
                                'data.file_system_id',
                                options={'is_optional': True}),
        TextDyField.data_source('ARN',
                                'data.arn',
                                options={'is_optional': True}),
        TextDyField.data_source('Throughput Mode',
                                'data.throughput_mode',
                                options={'is_optional': True}),
        TextDyField.data_source('Performance Mode',
                                'data.performance_mode',
                                options={'is_optional': True}),
        TextDyField.data_source('Encrypted',
                                'data.encrypted',
                                options={'is_optional': True}),
        TextDyField.data_source('KMS Key ARN',
                                'data.kms_key_id',
                                options={'is_optional': True}),
        ListDyField.data_source('Mount Target IDs',
                                'data.mount_targets',
                                options={
                                    'sub_key': 'mount_target_id',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Mount Target IP',
                                'data.mount_targets',
                                options={
                                    'sub_key': 'ip_address',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Mount Target State',
                                'data.mount_targets',
                                options={
                                    'sub_key': 'life_cycle_state',
                                    'is_optional': True
                                }),
        ListDyField.data_source('Mount Target AZ',
                                'data.mount_targets',
                                options={
                                    'sub_key': 'availability_zone_name',
                                    'is_optional': True
                                })
    ],
    search=[
        SearchField.set(name='File System ID', key='data.file_system_id'),
        SearchField.set(name='ARN', key='data.arn'),
        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='instance_size',
                        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')
    ],
    widget=[
        CardWidget.set(**get_data_from_yaml(total_count_conf)),
        CardWidget.set(**get_data_from_yaml(filesystem_total_size_conf)),
        CardWidget.set(**get_data_from_yaml(mount_target_total_count_conf)),
        ChartWidget.set(**get_data_from_yaml(filesystem_count_by_region_conf)),
        ChartWidget.set(
            **get_data_from_yaml(filesystem_count_by_account_conf)),
        ChartWidget.set(**get_data_from_yaml(mount_target_count_by_az_conf)),
        ChartWidget.set(**get_data_from_yaml(size_by_filesystem_conf)),
    ])
Ejemplo n.º 19
0
cst_ecr_repo._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('URI', 'data.repository_uri'),
        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})
    ],
    search=[
        SearchField.set(name='Repository ID', key='data.registry_id'),
        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')
    ],
    widget=[
        CardWidget.set(**get_data_from_yaml(total_count_conf)),
        CardWidget.set(**get_data_from_yaml(image_total_count_conf)),
        CardWidget.set(**get_data_from_yaml(image_total_size_conf)),
        ChartWidget.set(**get_data_from_yaml(repository_count_by_region_conf)),
        ChartWidget.set(
            **get_data_from_yaml(repository_count_by_account_conf)),
        ChartWidget.set(
            **get_data_from_yaml(image_total_size_by_repository_conf)),
    ])
cst_cluster._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        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', 'launched_at'),
        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})
    ],
    search=[
        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')
    ],
    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)),
    ])
Ejemplo n.º 21
0
cst_group.group = 'IAM'
cst_group.labels = ['Security']
cst_group.tags = {
    'spaceone:icon':
    'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/AWS-Identity-and-Access-Management_IAM.svg',
    'spaceone:is_major': 'true',
}

cst_group._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Group Name', 'data.group_name'),
        TextDyField.data_source('Users', 'data.user_count'),
        DateTimeDyField.data_source('Creation Time', 'data.create_date'),
    ],
    search=[
        SearchField.set(name='Group Name', key='data.group_name'),
        SearchField.set(name='Group ARN', key='data.arn'),
        SearchField.set(name='User Name', key='data.users.user_name'),
        SearchField.set(name='Policy Name',
                        key='data.attached_permission.policy_name'),
        SearchField.set(name='Creation Time',
                        key='data.create_date',
                        data_type='datetime'),
    ])

# USER
cst_user = CloudServiceTypeResource()
cst_user.name = 'User'
cst_user.provider = 'aws'
cst_user.group = 'IAM'
cst_user.labels = ['Security']
cst_user.tags = {
Ejemplo n.º 22
0
cst_eip._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.name'),
        TextDyField.data_source('Public IP', 'data.public_ip'),
        TextDyField.data_source('Private IP', 'data.private_ip_address'),
        TextDyField.data_source('Address Pool', 'data.public_ipv4_pool'),
        EnumDyField.data_source('Scope',
                                'data.domain',
                                default_outline_badge=['vpc', 'standard']),
        TextDyField.data_source('Associate Instance ID', 'data.instance_id'),
        TextDyField.data_source('Public DNS',
                                'data.public_dns',
                                options={'is_optional': True}),
        TextDyField.data_source('NAT Gateway ID',
                                'data.nat_gateway_id',
                                options={'is_optional': True}),
        TextDyField.data_source('Association ID',
                                'data.association_id',
                                options={'is_optional': True}),
        TextDyField.data_source('Allocation ID',
                                'data.allocation_id',
                                options={'is_optional': True}),
        TextDyField.data_source('AWS Account ID',
                                'data.account_id',
                                options={'is_optional': True})
    ],
    search=[
        SearchField.set(name='IP Address', key='data.public_ip'),
        SearchField.set(name='Name', key='data.name'),
        SearchField.set(name='Associated Instance ID', key='data.instance_id'),
        SearchField.set(name='Public DNS', key='data.public_dns'),
        SearchField.set(name='Private IP', key='data.private_ip_address'),
        SearchField.set(name='NAT Gateway ID', key='data.nat_gateway_id'),
        SearchField.set(name='Scope',
                        key='data.domain',
                        enums={
                            'vpc': {
                                'label': 'VPC'
                            },
                            'standard': {
                                'label': 'Standard'
                            },
                        }),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])
cst_redshift_cluster._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Cluster', 'data.cluster_identifier'),
        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'),
        BadgeDyField.data_source('Node Type', 'data.node_type'),
    ],
    search=[
        SearchField.set(name='Cluster Identifier', key='data.cluster_identifier'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Cluster Version', key='data.cluster_version'),
        SearchField.set(name='Node Type', key='data.node_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'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ]
)
    'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-SQS.svg',
    'spaceone:is_major': 'true',
}

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',
                        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}),
]
cst_bucket._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        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', 'instance_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
                                })
    ],
    search=[
        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='instance_size',
                        data_type='integer')
    ],
    widget=[
        CardWidget.set(**get_data_from_yaml(bucket_total_count_conf)),
        CardWidget.set(**get_data_from_yaml(object_total_count_conf)),
        CardWidget.set(**get_data_from_yaml(object_total_size_conf)),
        ChartWidget.set(**get_data_from_yaml(bucket_count_by_region_conf)),
        ChartWidget.set(**get_data_from_yaml(object_count_by_region_conf)),
        ChartWidget.set(
            **get_data_from_yaml(object_total_size_by_region_conf)),
        ChartWidget.set(**get_data_from_yaml(bucket_count_by_account_conf)),
        ChartWidget.set(**get_data_from_yaml(object_count_by_account_conf)),
        ChartWidget.set(
            **get_data_from_yaml(object_total_size_by_account_conf)),
    ])
Ejemplo n.º 26
0
from spaceone.inventory.libs.schema.dynamic_field import TextDyField, ListDyField, BadgeItemDyField
from spaceone.inventory.libs.schema.resource import CloudServiceTypeResource, CloudServiceTypeResponse, CloudServiceTypeMeta

cst_distribution = CloudServiceTypeResource()
cst_distribution.name = 'Distribution'
cst_distribution.provider = 'aws'
cst_distribution.group = 'CloudFront'
cst_distribution.labels = ['Networking']
cst_distribution.tags = {
    'spaceone:icon': '',
    'spaceone:is_major': 'true',
}
cst_distribution_meta = CloudServiceTypeMeta.set_fields(fields=[
    TextDyField.data_source('Id', 'data.id'),
    TextDyField.data_source('Domain Name', 'data.domain_name'),
    TextDyField.data_source('Status', 'data.status'),
    ListDyField.data_source(
        'CNAME',
        'data.alias_icp_recordals',
        options={
            'item': BadgeItemDyField.set({'background_color': 'gray.200'}),
            'sub_key': 'network_interface_id',
            'delimiter': '  '
        }),
])
cst_distribution.cloud_service_type_meta = cst_distribution_meta

CLOUD_SERVICE_TYPES = [
    CloudServiceTypeResponse({'resource': cst_distribution}),
]
Ejemplo n.º 27
0
cst_elb._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.load_balancer_name'),
        TextDyField.data_source('DNS Name', 'data.dns_name'),
        EnumDyField.data_source('State', 'data.state.code', default_state={
            'safe': ['active'],
            'warning': ['provisioning'],
            'alert': ['active_impaired', 'failed']
        }),
        EnumDyField.data_source('Type', 'data.type', default_badge={
            'indigo.500': ['network'], 'coral.600': ['application']
        }),
        ListDyField.data_source('Availability Zones', 'data.availability_zones', default_badge={
            'type': 'outline',
            'sub_key': 'zone_name',
        }),
        DateTimeDyField.data_source('Created At', 'data.created_time'),
    ],
    search=[
        SearchField.set(name='Name', key='data.load_balancer_name'),
        SearchField.set(name='ARN', key='data.load_balancer_arn'),
        SearchField.set(name='DNS Name', key='data.dns_name'),
        SearchField.set(name='State', key='data.state'),
        SearchField.set(name='Type', key='data.type',
                        enums={
                            'application': {'label': 'Application'},
                            'network': {'label': 'Network'},
                        }),
        SearchField.set(name='Scheme', key='data.scheme',
                        enums={
                            'internet-facing': {'label': 'Internet Facing'},
                            'internal': {'label': 'Internal'},
                        }),
        SearchField.set(name='VPC ID', key='data.vpc_id'),
        SearchField.set(name='Availability Zone', key='data.availability_zones.zone_name'),
        SearchField.set(name='Subnet ID', key='data.availability_zones.subnet_id'),
        SearchField.set(name='Hosted Zone', key='data.canonical_hosted_zone_id'),
        SearchField.set(name='Protocol', key='data.listeners.protocol',
                        enums={
                            'HTTP': {'label': 'HTTP'},
                            'HTTPS': {'label': 'HTTPS'},
                            'TCP': {'label': 'TCP'},
                            'UDP': {'label': 'UDP'},
                            'TLS': {'label': 'TLS'},
                            'TCP_UDP': {'label': 'TCP/UDP'},
                        }),
        SearchField.set(name='Port', key='data.listeners.port', data_type='integer'),
        SearchField.set(name='Deletion Protection', key='data.attributes.deletion_protection_enabled',
                        data_type='boolean'),
        SearchField.set(name='Cross-Zone Load Balancing', key='data.attributes.load_balancing_cross_zone_enabled',
                        data_type='boolean'),
        SearchField.set(name='Security Group ID', key='data.security_groups'),
        SearchField.set(name='Listener ARN', key='data.listeners.listener_arn'),
        SearchField.set(name='Created Time', key='data.created_time', data_type='datetime'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ]
)
Ejemplo n.º 28
0
cst_rds_database._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Role', 'data.role'),
        TextDyField.data_source('Engine', 'data.engine'),
        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('Size', 'data.size'),
        TextDyField.data_source('Region & AZ', 'data.availability_zone'),
        TextDyField.data_source('Multi-AZ', 'data.multi_az'),
        TextDyField.data_source('ARN',
                                'data.arn',
                                options={'is_optional': True}),
        TextDyField.data_source('AWS Account ID',
                                'data.account_id',
                                options={'is_optional': True})
    ],
    search=[
        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='Cluster member counts',
                        key='data.cluster.db_cluster_member_counts'),
        SearchField.set(name='Instance Class',
                        key='data.instance.db_instance_class'),
        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.address'),
        SearchField.set(name='Instance Port',
                        key='data.instance.endpoint.port',
                        data_type='integer'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ],
    widget=[
        CardWidget.set(**get_data_from_yaml(database_total_count_conf)),
        ChartWidget.set(**get_data_from_yaml(database_count_by_region_conf)),
        ChartWidget.set(**get_data_from_yaml(database_count_by_account_conf)),
        ChartWidget.set(**get_data_from_yaml(database_count_by_engine_conf))
    ])
from spaceone.inventory.libs.schema.dynamic_field import TextDyField, SearchField
from spaceone.inventory.libs.schema.resource import CloudServiceTypeResource, CloudServiceTypeResponse, CloudServiceTypeMeta

cst_bucket = CloudServiceTypeResource()
cst_bucket.name = 'Bucket'
cst_bucket.provider = 'aws'
cst_bucket.group = 'S3'
cst_bucket.labels = ['Storage']
cst_bucket.tags = {
    'spaceone:icon':
    'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/Amazon-S3.svg',
    'spaceone:is_major': 'true',
}

cst_bucket._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.name'),
        TextDyField.data_source('Region', 'data.region_name'),
        TextDyField.data_source('Access', 'data.access'),
    ],
    search=[
        SearchField.set(name='Bucket Name', key='data.name'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])

CLOUD_SERVICE_TYPES = [
    CloudServiceTypeResponse({'resource': cst_bucket}),
]
Ejemplo n.º 30
0
cst_kms_cluster._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('ID', 'data.key_id'),
        TextDyField.data_source('Alias', 'data.alias_name'),
        EnumDyField.data_source('Status',
                                'data.key_state',
                                default_state={
                                    'safe': ['Enabled'],
                                    'warning':
                                    ['PendingDeletion', 'PendingImport'],
                                    'disable': ['Disabled'],
                                    'alert': ['Unavailable']
                                }),
        EnumDyField.data_source('Enabled',
                                'data.enabled',
                                default_badge={
                                    'indigo.500': ['true'],
                                    'coral.600': ['false']
                                })
    ],
    search=[
        SearchField.set(name='KMS ID', key='data.key_id'),
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Alias', key='data.alias_name'),
        SearchField.set(name='Enabled',
                        key='data.enabled',
                        data_type='boolean'),
        SearchField.set(name='Key Status',
                        key='data.key_state',
                        enums={
                            "Enabled": {
                                'label': 'Enabled',
                                'icon': {
                                    'color': 'green.500'
                                }
                            },
                            "Disabled": {
                                'label': 'Disabled',
                                'icon': {
                                    'color': 'gray.400'
                                }
                            },
                            "PendingDeletion": {
                                'label': 'Pending Deletion',
                                'icon': {
                                    'color': 'yellow.500'
                                }
                            },
                            "PendingImport": {
                                'label': 'Pending Import',
                                'icon': {
                                    'color': 'yellow.500'
                                }
                            },
                            "Unavailable": {
                                'label': 'Unavailable',
                                'icon': {
                                    'color': 'red.500'
                                }
                            }
                        }),
        SearchField.set(name='Key Algorithms',
                        key='data.encryption_algorithms'),
        SearchField.set(name='Origin',
                        key='data.origin',
                        enums={
                            'AWS_KMS': {
                                'label': 'KMS'
                            },
                            'EXTERNAL': {
                                'label': 'EXTERNAL'
                            },
                            'AWS_CLOUDHSM': {
                                'label': 'CLOUD HSM'
                            },
                        }),
        SearchField.set(name='Key Manager',
                        key='data.key_manager',
                        enums={
                            'AWS': {
                                'label': 'AWS'
                            },
                            'CUSTOMER': {
                                'label': 'CUSTOMER'
                            },
                        }),
        SearchField.set(name='Created Time',
                        key='data.creation_date',
                        data_type='datetime'),
        SearchField.set(name='Region', key='data.region_name'),
        SearchField.set(name='AWS Account ID', key='data.account_id'),
    ])