コード例 #1
0
        DateTimeDyField.data_source('Creation time', 'data.created_time'),
    ])

lb_listener = TableDynamicLayout.set_fields(
    'Listeners',
    'data.listeners',
    fields=[
        EnumDyField.data_source('Protocol',
                                'protocol',
                                default_outline_badge=[
                                    'HTTP', 'HTTPS', 'TCP', 'TLS', 'UDP',
                                    'TCP_UDP'
                                ]),
        TextDyField.data_source('Port', 'port'),
        ListDyField.data_source('Default Actions Target',
                                'default_actions',
                                default_badge={
                                    'type': 'outline',
                                    'sub_key': 'target_group_arn'
                                }),
        TextDyField.data_source('Security Policy', 'ssl_policy'),
        ListDyField.data_source('Certificates',
                                'certificates',
                                default_badge={
                                    'type': 'outline',
                                    'sub_key': 'certificate_arn'
                                })
    ])

lb_attr = ItemDynamicLayout.set_fields(
    'Attributes',
コード例 #2
0
                                    'warning': ['PENDING']
                                }),
    ])

origin = TableDynamicLayout.set_fields(
    'Origins',
    'data.origins.items',
    fields=[
        TextDyField.data_source('Id', 'id'),
        TextDyField.data_source('DomainName', 'domain_name'),
        TextDyField.data_source('OriginPath', 'origin_path'),
        TextDyField.data_source('Origin Shield Region',
                                'origin_shield.origin_shield_region'),
        TextDyField.data_source('Origin Protocol Policy',
                                'custom_origin_config.origin_protocol_policy'),
        TextDyField.data_source('HTTPS Port',
                                'custom_origin_config.https_port'),
        TextDyField.data_source('HTTP Port', 'custom_origin_config.http_port'),
        TextDyField.data_source('Origin Response Timeout',
                                'custom_origin_config.origin_read_timeout'),
        TextDyField.data_source(
            'Origin Keep-alive Tiemout',
            'custom_origin_config.origin_keepalive_timeout'),
        TextDyField.data_source('Origin Connection Attempts',
                                'connection_attempts'),
        TextDyField.data_source('Origin Connection Timeout',
                                'connection_timeout'),
    ])

origin_group = TableDynamicLayout.set_fields(
    'Origin Groups',
    'data.origin_groups.items',
コード例 #3
0
                                }),
        ListDyField.data_source('Enabled Cloudwatch Logs Exports',
                                'data.enabled_cloudwatch_logs_exports',
                                default_badge={'type': 'outline'}),
        ListDyField.data_source('Availability Zones',
                                'data.availability_zones',
                                default_badge={'type': 'outline'}),
        DateTimeDyField.data_source('Creation Time',
                                    'data.cluster_create_time'),
    ])

cluster_sg = TableDynamicLayout.set_fields(
    'Security Groups',
    'data.vpc_security_groups',
    fields=[
        TextDyField.data_source('Security Group ID', 'vpc_security_group_id'),
        EnumDyField.data_source('Status',
                                'status',
                                default_state={'safe': ['active']}),
    ])

instances = TableDynamicLayout.set_fields(
    'Instances',
    'data.instances',
    fields=[
        TextDyField.data_source('Instance', 'db_instance_identifier'),
        EnumDyField.data_source('Status',
                                'db_instance_status',
                                default_state={'safe': ['available']}),
        TextDyField.data_source('Instance Type', 'db_instance_class'),
        TextDyField.data_source('AZ', 'availability_zone'),
コード例 #4
0
        TextDyField.data_source('Registered Instances',
                                'data.registered_container_instances_count'),
    ])

services = TableDynamicLayout.set_fields(
    'Services',
    'data.services',
    fields=[
        TextDyField.data_source('Name', 'service_name'),
        EnumDyField.data_source('Status',
                                'status',
                                default_state={
                                    'safe': ['ACTIVE'],
                                    'disable': ['INACTIVE'],
                                    'warning': ['DRAINING']
                                }),
        EnumDyField.data_source('Service Type',
                                'scheduling_strategy',
                                default_outline_badge=['REPLICA', 'DAEMON']),
        TextDyField.data_source('Task Definition', 'task_definition'),
        TextDyField.data_source('Desired tasks', 'desired_count'),
        TextDyField.data_source('Running tasks', 'running_count'),
        EnumDyField.data_source('Launch type',
                                'launch_type',
                                default_outline_badge=['EC2', 'FARGATE']),
        TextDyField.data_source('Platform version', 'platform_version'),
    ])

tasks = TableDynamicLayout.set_fields(
    'Tasks',
    'data.tasks',
コード例 #5
0
subnetgrp = ItemDynamicLayout.set_fields(
    'Subnet Group',
    fields=[
        TextDyField.data_source('Name', 'data.db_subnet_group_name'),
        TextDyField.data_source('VPC ID', 'data.vpc_id'),
        TextDyField.data_source('ARN', 'data.db_subnet_group_arn'),
        TextDyField.data_source('Description',
                                'data.db_subnet_group_description'),
    ])

subnets = TableDynamicLayout.set_fields(
    'Subnets',
    'data.subnets',
    fields=[
        TextDyField.data_source('Availability Zone',
                                'subnet_availability_zone.name'),
        TextDyField.data_source('Subnet ID', 'subnet_identifier'),
        EnumDyField.data_source('Status',
                                'subnet_status',
                                default_state={'safe': ['Active']}),
    ])
subnetgrp_tags = SimpleTableDynamicLayout.set_tags()
subnetgrp_metadata = CloudServiceMeta.set_layouts(
    layouts=[subnetgrp, subnets, subnetgrp_tags])

paramgrp = ItemDynamicLayout.set_fields(
    'Parameter Group',
    fields=[
        TextDyField.data_source('Name', 'data.db_parameter_group_name'),
        TextDyField.data_source('ARN', 'data.db_parameter_group_arn'),
        BadgeDyField.data_source('Family', 'data.db_parameter_group_family'),
コード例 #6
0
    'data.alias_icp_recordals',
    fields=[
        TextDyField.data_source('CNAME', 'cname'),
        EnumDyField.data_source('Status',
                                'icp_recordal_status',
                                default_state={
                                    'safe': ['APPROVED'],
                                    'alert': ['SUSPENDED'],
                                    'warning': ['PENDING']
                                }),
    ])

origin = TableDynamicLayout.set_fields(
    'Origins',
    'data.distribution_config.origin_groups.items',
    fields=[
        TextDyField.data_source('Id', 'id'),
        TextDyField.data_source('DomainName', 'domain_name'),
        TextDyField.data_source('OriginPath', 'origin_path'),
    ])

origin_group = TableDynamicLayout.set_fields(
    'Origin Groups',
    'data.distribution_config.origin_groups.items',
    fields=[
        TextDyField.data_source('ID', 'id'),
        ListDyField.data_source('Members',
                                'members.items',
                                default_badge={
                                    'type': 'outline',
                                    'sub_key': 'cname',
                                })
コード例 #7
0
        TextDyField.data_source("Source Name", "data.source.source_name"),
        TextDyField.data_source("Source Details", "data.source.source_details"),
        TextDyField.data_source("Server-side encryption for source records",
                                "data.delivery_stream_encryption_configuration.status"),
        TextDyField.data_source("Encryption type", "data.delivery_stream_encryption_configuration.key_type"),
    ]
)

# TAB - S3 Destination
firehose_meta_s3_destination_details = TableDynamicLayout.set_fields(
    "S3 Destination Details",
    root_path="data.destinations.s3_destination_description",
    fields=[
        TextDyField.data_source("S3 Bucket ARN", "bucket_arn"),
        TextDyField.data_source("Prefix", "prefix"),
        TextDyField.data_source("Error prefix", "error_output_prefix"),
        TextDyField.data_source("Buffer Size", "buffering_hints.size_in_mbs"),
        TextDyField.data_source("Buffer Interval", "buffering_hints.interval_in_seconds"),
        TextDyField.data_source("Compression", "compression_format"),
        TextDyField.data_source("Encryption", "encryption_configuration.kms_encryption_config.aws_kms_key_arn"),
        TextDyField.data_source("Cloud Watch Logging", "cloud_watch_logging_optinos.enabled"),
    ]
)

firehose_meta_s3_destination_extend = TableDynamicLayout.set_fields(
    "Extend Details",
    root_path="data.destinations.extended_s3_destination_description",
    fields=[
        TextDyField.data_source("S3 Backup Mode", "s3_backup_mode"),
        TextDyField.data_source("S3 Backup Bucket ARN", "s3_backup_description.bucket_arn"),
        TextDyField.data_source("Processing Configuration", "processing_configuration.enabled"),
        ListDyField.data_source("Processing Type", "processing_configuration.processors", options={
コード例 #8
0
            default_badge={
                'indigo.500': ['true'],
                'coral.600': ['false']
            }),
    ])

images = TableDynamicLayout.set_fields(
    'Images',
    'data.images',
    fields=[
        ListDyField.data_source('Image Tag',
                                'image_tags',
                                default_badge={'type': 'outline'}),
        TextDyField.data_source('Image URI', 'image_uri'),
        TextDyField.data_source('Size(MB)', 'image_size_in_megabytes'),
        TextDyField.data_source('Digest', 'image_digest'),
        EnumDyField.data_source('Scan status',
                                'image_scan_status.status',
                                default_state={
                                    'safe': ['COMPLETE'],
                                    'warning': ['IN_PROGRESS'],
                                    'alert': ['FAILED']
                                }),
        DateTimeDyField.data_source('Pushed at', 'image_pushed_at'),
    ])

metadata = CloudServiceMeta.set_layouts(layouts=[base, images])


class ECRResource(CloudServiceResource):
    cloud_service_group = StringType(default='ECR')
コード例 #9
0
            "Enhanced (shard-level) metrics",
            "data.shard_level_metrics_display",
            default_badge={"delimiter": "<br>"},
        )
    ])

# TAB - Enhanced fan-out
kds_meta_consumers_using_enhanced_fan_out = TableDynamicLayout.set_fields(
    "Consumers using enhanced fan-out",
    "data.consumers_vo.consumers",
    fields=[
        TextDyField.data_source("Consumer name", "consumer_name"),
        EnumDyField.data_source(
            "Registration status",
            "consumer_status_display",
            default_state={
                "safe": ["Active"],
                "warning": ["Creating", "Deleting"]
            },
        ),
        DateTimeDyField.data_source("Registration date",
                                    "consumer_creation_timestamp"),
    ],
)

kds_meta_enhanced_fan_out = ListDynamicLayout.set_layouts(
    "Enhanced fan-out", layouts=[kds_meta_consumers_using_enhanced_fan_out])

# TAB - Tags
kds_meta_tags = TableDynamicLayout.set_fields(
    "Tags",
コード例 #10
0
    }),
    TextDyField.data_source('Version', 'data.version'),
    TextDyField.data_source('Endpoint', 'data.endpoint'),
    TextDyField.data_source('Role ARN', 'data.role_arn'),
    TextDyField.data_source('Certificate Authority', 'data.certificate_authority.data'),
])

cluster_node_groups = TableDynamicLayout.set_fields('Node Groups', 'data.node_groups', fields=[
    TextDyField.data_source('Group Name', 'nodegroup_name'),
    EnumDyField.data_source('Status', 'status', default_state={
        'safe': ['ACTIVE'],
        'warning': ['CREATING', 'UPDATING', 'DELETING'],
        'alert': ['CREATE_FAILED', 'DELETE_FAILED', 'DEGRADED'],
    }),
    ListDyField.data_source('Instance Types', 'instance_types', options={
        'delimiter': '<br>'
    }),
    ListDyField.data_source('Subnets', 'subnets', options={
        'delimiter': '<br>'
    }),
    TextDyField.data_source('Disk Size', 'disk_size'),
    ListDyField.data_source('Health Issue', 'instance_types', options={
        'delimiter': '<br>'
    }),
])

cluster_logging = TableDynamicLayout.set_fields('Cluster Logging', 'data.logging.cluster_logging', fields=[
    ListDyField.data_source('Types', 'types', options={
        'delimiter': '<br>'
    }),
    EnumDyField.data_source('Enabled', 'enabled', default_badge={
        'indigo.500': ['true'], 'coral.600': ['false']
コード例 #11
0
        'alert': ['Suspended']
    }),
])

requester_pays = ItemDynamicLayout.set_fields('Requester Pays', fields=[
    EnumDyField.data_source('Payers', 'data.request_payment.request_payment', default_badge={
        'indigo.500': ['BucketOwner'],
        'coral.600': ['Requester']
    }),
])

tags = SimpleTableDynamicLayout.set_tags()

topic_conf = TableDynamicLayout.set_fields('Events', 'data.notification_configurations', fields=[
    TextDyField.data_source('ID', 'id'),
    TextDyField.data_source('Type', 'notification_type'),
    TextDyField.data_source('ARN', 'arn'),
    ListDyField.data_source('Events', 'events'),
])

metadata = CloudServiceMeta.set_layouts(layouts=[bucket, object_info, versioning, website_hosting, server_access_log,
                                                 encryption, object_lock, transfer_acc, requester_pays, topic_conf,
                                                 tags])


class S3Resource(CloudServiceResource):
    cloud_service_group = StringType(default='S3')


class BucketResource(S3Resource):
    cloud_service_type = StringType(default='Bucket')
    data = ModelType(Bucket)
コード例 #12
0
                                    'safe': ['ISSUED'],
                                    'warning': [
                                        'PENDING_VALIDATION', 'INACTIVE',
                                        'VALIDATION_TIMED_OUT', 'REVOKED'
                                    ],
                                    'alert': ['EXPIRED', 'FAILED']
                                }),
        DateTimeDyField.data_source('Issue Date', 'data.issued_at'),
    ])

acm_meta_domain_validation_table = \
    TableDynamicLayout.set_fields('Domain Validation Status','data.domain_validation_options',
                                  fields=[
                                      TextDyField.data_source('Domain', 'domain_name'),
                                      EnumDyField.data_source('Validation status', 'validation_status',
                                                              default_state={
                                                                  'safe': ['SUCCESS'],
                                                                  'warning': ['PENDING_VALIDATION'],
                                                                  'alert': ['FAILED']}),
                                  ])

certificate_status = ListDynamicLayout.set_layouts(
    'Status', layouts=[acm_meta_status, acm_meta_domain_validation_table])

# TAB - Detail
acm_meta_detail = ItemDynamicLayout.set_fields(
    'Details',
    fields=[
        TextDyField.data_source('Type', 'data.type'),
        TextDyField.data_source('In use?', 'data.in_use_display'),
        TextDyField.data_source('Domain Name', 'data.domain_name'),
コード例 #13
0
                                    'delimiter': '<br>',
                                })
    ])

function_env = SimpleTableDynamicLayout.set_fields(
    'Environment Variables',
    'data.environment.variables',
    fields=[
        TextDyField.data_source('Key', 'key'),
        TextDyField.data_source('Value', 'value'),
    ])

function_layers = TableDynamicLayout.set_fields(
    'Layers',
    'data.layers',
    fields=[
        TextDyField.data_source('ARN', 'arn'),
        TextDyField.data_source('Name', 'name'),
        TextDyField.data_source('Code Size', 'code_size'),
    ])

function_metadata = CloudServiceMeta.set_layouts(
    layouts=[function, function_vpc, function_env, function_layers])

layer = ItemDynamicLayout.set_fields(
    'Layers',
    fields=[
        TextDyField.data_source('Name', 'data.layer_name'),
        TextDyField.data_source('ARN', 'data.layer_arn'),
        ListDyField.data_source(
            'Compatible Runtimes',
            'data.latest_matching_version.compatible_runtimes',
コード例 #14
0
        DateTimeDyField.data_source('Creation time', 'data.created_time'),
    ])

lb_listener = TableDynamicLayout.set_fields(
    'Listeners',
    'data.listeners',
    fields=[
        EnumDyField.data_source('Protocol',
                                'protocol',
                                default_outline_badge=[
                                    'HTTP', 'HTTPS', 'TCP', 'TLS', 'UDP',
                                    'TCP_UDP'
                                ]),
        TextDyField.data_source('Port', 'port'),
        ListDyField.data_source('Default Actions Target Group ARN',
                                'default_actions',
                                options={
                                    'delimiter': '<br>',
                                    'sub_key': 'target_group_arn'
                                }),
        TextDyField.data_source('Security Policy', 'ssl_policy'),
        ListDyField.data_source('Certificates',
                                'certificates',
                                options={
                                    'delimiter': '<br>',
                                    'sub_key': 'certificate_arn'
                                })
    ])

lb_tg = TableDynamicLayout.set_fields(
    'Target Groups',
コード例 #15
0
'''
REST API
'''
# TAB - BASE
rest_api_meta_base = ItemDynamicLayout.set_fields('REST API', fields=[
    TextDyField.data_source('Id', 'data.id'),
    TextDyField.data_source('Name', 'data.name'),
    TextDyField.data_source('Description', 'data.description'),
    ListDyField.data_source('Endpoint Type', 'data.endpoint_configuration.types', default_badge={'type': 'outline'})
])

# TAB - RESOURCE
rest_api_meta_resources = TableDynamicLayout.set_fields('Resources', 'data.resources', fields=[
    TextDyField.data_source('ID', 'id'),
    TextDyField.data_source('Parent ID', 'parent_id'),
    TextDyField.data_source('Path', 'path'),
    ListDyField.data_source('HTTP Methods', 'display_methods', default_badge={'type': 'inline'}),
])

rest_api_meta = CloudServiceMeta.set_layouts([rest_api_meta_base,
                                              rest_api_meta_resources])


'''
WEBSOCKET & HTTP
'''
# TAB - BASE
websocket_meta_base = ItemDynamicLayout.set_fields('HTTP & Web Socket', fields=[
    TextDyField.data_source('Id', 'data.api_id'),
    TextDyField.data_source('Name', 'data.name'),
    TextDyField.data_source('Endpoint', 'data.api_endpoint'),
コード例 #16
0
    TextDyField.data_source('Name', 'data.launch_template.launch_template_name'),
    TextDyField.data_source('Version', 'data.launch_template.version')
])

# TAB - Instance
asg_meta_instance = TableDynamicLayout.set_fields('Instances', 'data.instances', fields=[
    TextDyField.data_source('Instance ID', 'instance_id'),
    TextDyField.data_source('Life Cycle', 'lifecycle'),
    EnumDyField.data_source('Lifecycle Status', 'lifecycle_state', default_state={
        'safe': ['InService'],
        'available': ['Standby'],
        'warning': ['Pending', 'Pending:Wait', 'Pending:Proceed', 'Quarantined', 'Detaching', 'EnteringStandby',
                    'Terminating', 'Terminating:Wait', 'Terminating:Proceed'],
        'disable': ['Detached'],
        'alert': ['Terminated']
    }),
    TextDyField.data_source('Instance Type', 'instance_type'),
    TextDyField.data_source('AZ', 'availability_zone'),
    EnumDyField.data_source('Health Status', 'health_status', default_state={
        'safe': ['Healthy'], 'alert': ['Unhealthy']
    }),
    EnumDyField.data_source('Protected from Scale In', 'protected_from_scale_in', default_badge={
        'indigo.500': ['true'], 'coral.600': ['false']
    }),
    TextDyField.data_source('Weighted Capacity', 'weighted_capacity'),
])

# TAB - ELB
asg_meta_elb = TableDynamicLayout.set_fields('ELB', root_path='data.load_balancers', fields=[
    TextDyField.data_source('Name', 'name', reference={
        'resource_type': 'inventory.CloudService',
コード例 #17
0
                                    'indigo.500': ['true'],
                                    'coral.600': ['false']
                                }),
        TextDyField.data_source('Owner', 'data.owner_id'),
    ])

vpc_subnet = TableDynamicLayout.set_fields(
    'Subnet',
    'data.subnets',
    fields=[
        TextDyField.data_source('Subnet ID', 'subnet_id'),
        EnumDyField.data_source('State',
                                'state',
                                default_state={
                                    'safe': ['available'],
                                    'warning': ['pending']
                                }),
        TextDyField.data_source('IPv4 CIDR', 'cidr_block'),
        TextDyField.data_source('Availability Zone', 'availability_zone'),
        EnumDyField.data_source('Auto-assign Public IP',
                                'map_public_ip_on_launch',
                                default_badge={
                                    'indigo.500': ['true'],
                                    'coral.600': ['false']
                                }),
    ])

vpc_route = TableDynamicLayout.set_fields(
    'Route Tables',
    'data.route_tables',
    fields=[
        TextDyField.data_source('Route Table ID', 'route_table_id'),
コード例 #18
0
record_set = TableDynamicLayout.set_fields(
    'Record Sets',
    'data.record_sets',
    fields=[
        TextDyField.data_source('Name', 'name'),
        EnumDyField.data_source('Type',
                                'type',
                                default_outline_badge=[
                                    'SOA', 'A', 'TXT', 'NS', 'CNAME', 'MX',
                                    'NAPTR', 'PTR', 'SRV', 'SPF', 'AAAA', 'CAA'
                                ]),
        ListDyField.data_source('Value',
                                'display_values',
                                default_badge={
                                    'type': 'outline',
                                    'delimiter': '<br>'
                                }),
        EnumDyField.data_source('Evaluate Target Health',
                                'alias_target.evaluate_target_health',
                                default_badge={
                                    'indigo.500': ['true'],
                                    'coral.600': ['false']
                                }),
        TextDyField.data_source('Health Check ID', 'health_check_id'),
        TextDyField.data_source('TTL', 'ttl'),
        TextDyField.data_source('Region', 'region'),
        TextDyField.data_source('Weight', 'weight'),
        TextDyField.data_source('Geolocation', 'geo_location'),
        EnumDyField.data_source('Multivalue Answer',
                                'multi_value_answer',
                                default_badge={
                                    'indigo.500': ['true'],
                                    'coral.600': ['false']
                                }),
        TextDyField.data_source('Set ID', 'set_identifier'),
    ])
コード例 #19
0
                                    'delimiter': '<br>'
                                }),
        DateTimeDyField.data_source('Creation date', 'data.creation_time')
    ])

mount_target = TableDynamicLayout.set_fields(
    'Mount Targets',
    'data.mount_targets',
    fields=[
        TextDyField.data_source('Mount target ID', 'mount_target_id'),
        EnumDyField.data_source('State',
                                'life_cycle_state',
                                default_state={
                                    'safe': ['available'],
                                    'warning':
                                    ['creating', 'updating', 'deleting'],
                                    'disable': ['deleted']
                                }),
        TextDyField.data_source('Availability Zone', 'availability_zone_name'),
        TextDyField.data_source('Subnet', 'subnet_id'),
        TextDyField.data_source('IP Address', 'ip_address'),
        TextDyField.data_source('Network Interface ID',
                                'network_interface_id'),
        ListDyField.data_source('Security Groups',
                                'security_groups',
                                default_badge={'type': 'outline'}),
    ])

tags = SimpleTableDynamicLayout.set_tags()
metadata = CloudServiceMeta.set_layouts(layouts=[base, mount_target, tags])

コード例 #20
0
from spaceone.inventory.libs.schema.dynamic_field import TextDyField, DateTimeDyField, EnumDyField, ListDyField
from spaceone.inventory.libs.schema.dynamic_layout import ItemDynamicLayout, SimpleTableDynamicLayout, \
    TableDynamicLayout

sg = ItemDynamicLayout.set_fields('Security Group', fields=[
    TextDyField.data_source('ID', 'data.group_id'),
    TextDyField.data_source('Name', 'data.group_name'),
    TextDyField.data_source('Description', 'data.description'),
    TextDyField.data_source('VPC ID', 'data.vpc_id'),
    TextDyField.data_source('Account ID', 'data.owner_id'),
])

inbound_rules = TableDynamicLayout.set_fields('Inbound Rules', 'data.ip_permissions', fields=[
    EnumDyField.data_source('Protocol', 'protocol_display', default_badge={
        'coral.600': ['ALL'], 'indigo.500': ['TCP'], 'peacock.500': ['UDP'], 'green.500': ['ICMP']}),
    TextDyField.data_source('Port range', 'port_display'),
    TextDyField.data_source('Source', 'source_display'),
    TextDyField.data_source('Description', 'description_display'),
])

outbound_rules = TableDynamicLayout.set_fields('Outbound Rules', 'data.ip_permissions_egress', fields=[
    EnumDyField.data_source('Protocol', 'protocol_display', default_badge={
        'coral.600': ['ALL'], 'indigo.500': ['TCP'], 'peacock.500': ['UDP'], 'green.500': ['ICMP']}),
    TextDyField.data_source('Port range', 'port_display'),
    TextDyField.data_source('Source', 'source_display'),
    TextDyField.data_source('Description', 'description_display'),
])

sg_instance = TableDynamicLayout.set_fields('Instances', 'data.instances', fields=[
    TextDyField.data_source('ID', 'instance_id'),
    TextDyField.data_source('Name', 'instance_name'),
コード例 #21
0
    SimpleTableDynamicLayout, ListDynamicLayout

# GROUP
group_base = ItemDynamicLayout.set_fields('Group', fields=[
    TextDyField.data_source('Group ARN', 'data.arn'),
    TextDyField.data_source('Group Name', 'data.group_name'),
    TextDyField.data_source('Group ID', 'data.group_id'),
    TextDyField.data_source('Path', 'data.path'),
    TextDyField.data_source('User Count', 'data.user_count'),
    DateTimeDyField.data_source('Created At', 'data.create_date'),
])

group_user_table = TableDynamicLayout.set_fields('Users', root_path='data.users', fields=[
    TextDyField.data_source('User Name', 'user_name'),
    TextDyField.data_source('Access Key Age', 'access_key_age_display'),
    TextDyField.data_source('Last Activity', 'last_activity'),
    EnumDyField.data_source('MFA', 'mfa_device', default_badge={
        'indigo.500': ['Virtual'], 'coral.600': ['Not enabled'],
    }),
])

group_policy_table = TableDynamicLayout.set_fields('Permissions', root_path='data.attached_permission', fields=[
    TextDyField.data_source('Policy Name', 'policy_name'),
    TextDyField.data_source('Policy ID', 'policy_id'),
    EnumDyField.data_source('Policy Type', 'policy_type', default_badge={
        'indigo.500': ['AWS Managed'], 'coral.600': ['Local Managed'],
    }),
    TextDyField.data_source('Policy ARN', 'arn'),
    TextDyField.data_source('Permission Usage Count', 'attachment_count'),
    TextDyField.data_source('Description', 'description'),
    DateTimeDyField.data_source('Created At', 'create_date'),
    DateTimeDyField.data_source('Updated At', 'update_date'),
コード例 #22
0
                                'data.snapshot_retention_limit'),
        TextDyField.data_source('Backup Window', 'data.snapshot_window'),
        DateTimeDyField.data_source('Creation Time',
                                    'data.cache_cluster_create_time')
    ])

memcached_node = TableDynamicLayout.set_fields(
    'Nodes',
    'data.nodes',
    fields=[
        TextDyField.data_source('Node Name', 'node_name'),
        EnumDyField.data_source('Status',
                                'status',
                                default_state={
                                    'safe': ['available'],
                                }),
        TextDyField.data_source('Port', 'port'),
        TextDyField.data_source('Endpoint', 'endpoint'),
        EnumDyField.data_source('Parameter Group Status',
                                'parameter_group_status',
                                default_state={
                                    'safe': ['in-sync'],
                                }),
        DateTimeDyField.data_source('Created On', 'created_on')
    ])

memcached_tags = SimpleTableDynamicLayout.set_tags()
memcached_metadata = CloudServiceMeta.set_layouts(
    layouts=[memcached_base, memcached_node, memcached_tags])
'''
Redis
コード例 #23
0
    fields=[
        TextDyField.data_source('ID', 'data.group_id'),
        TextDyField.data_source('Name', 'data.group_name'),
        TextDyField.data_source('Description', 'data.description'),
        TextDyField.data_source('VPC ID', 'data.vpc_id'),
        TextDyField.data_source('Account ID', 'data.owner_id'),
    ])

inbound_rules = TableDynamicLayout.set_fields(
    'Inbound Rules',
    'data.ip_permissions',
    fields=[
        EnumDyField.data_source('Protocol',
                                'protocol_display',
                                default_badge={
                                    'coral.600': ['ALL'],
                                    'indigo.500': ['TCP'],
                                    'peacock.500': ['UDP'],
                                    'green.500': ['ICMP']
                                }),
        TextDyField.data_source('Port range', 'port_display'),
        TextDyField.data_source('Source', 'source_display'),
        TextDyField.data_source('Description', 'description_display'),
    ])

outbound_rules = TableDynamicLayout.set_fields(
    'Outbound Rules',
    'data.ip_permissions_egress',
    fields=[
        EnumDyField.data_source('Protocol',
                                'protocol_display',
                                default_badge={
コード例 #24
0
                                                            'security_group',
                                                            options={
                                                                'delimiter': '<br>'
                                                                }),
                                    TextDyField.data_source('EBS storage volume per broker',
                                                            'storage_info.ebs_storage_info.volume_size'),
])

# Broker  Info
cluster_broker_node_info = TableDynamicLayout.set_fields('Broker Node Info', root_path='data.node_info_list', fields=[
    TextDyField.data_source('Broker ID', 'broker_node_info.broker_id'),
    TextDyField.data_source('Instance Type', 'instance_type'),
    TextDyField.data_source('Node Type', 'node_type'),
    TextDyField.data_source('Client Subnet', 'broker_node_info.client_subnet'),
    TextDyField.data_source('Client VPC IP', 'broker_node_info.client_vpc_ip_address'),
    ListDyField.data_source('Endpoints', 'broker_node_info.endpoints',
                            options={
                                'delimiter': '<br>'
                            }),
    TextDyField.data_source('Node ARN', 'node_arn'),
    TextDyField.data_source('Added To Cluster Time', 'added_to_cluster_time'),
])

broker_info = ListDynamicLayout.set_layouts('Broker', layouts=[cluster_broker_node_summary, cluster_broker_node_info])

# Encryption Info
cluster_encryption_info = ItemDynamicLayout.set_fields('Encryption Info', root_path='data.encryption_info', fields=[
    EnumDyField.data_source('Within the cluster', 'encryption_in_transit.in_cluster',
                            default_badge={'indigo.500': ['true'],
                                           'coral.600': ['false'],
                                           }),
コード例 #25
0
param_group = ItemDynamicLayout.set_fields(
    'Parameter Groups',
    'data.cluster_parameter_groups',
    fields=[
        TextDyField.data_source('Parameter Group Name',
                                'parameter_group_name'),
        EnumDyField.data_source('Apply status',
                                'parameter_apply_status',
                                default_state={'safe': ['available']}),
    ])

nodes = TableDynamicLayout.set_fields(
    'Nodes',
    'data.cluster_nodes',
    fields=[
        TextDyField.data_source('Node Role', 'node_role'),
        TextDyField.data_source('Private IP', 'private_ip_address'),
        TextDyField.data_source('Public IP', 'public_ip_address'),
    ])

snapshots = TableDynamicLayout.set_fields(
    'Snapshots',
    'data.snapshots',
    fields=[
        TextDyField.data_source('Snapshot Identifier', 'snapshot_identifier'),
        BadgeDyField.data_source('Snapshot Type', 'snapshot_type'),
        EnumDyField.data_source('Status',
                                'status',
                                default_state={'safe': ['active']}),
        TextDyField.data_source('Size(MB)', 'total_backup_size_in_mega_bytes'),
        TextDyField.data_source(
コード例 #26
0
            default_badge={
                'indigo.500': ['true'],
                'coral.600': ['false']
            }),
    ])

images = TableDynamicLayout.set_fields(
    'Images',
    'data.images',
    fields=[
        ListDyField.data_source('Image Tag',
                                'image_tags_display',
                                options={'delimiter': ', '}),
        TextDyField.data_source('Image URI', 'image_uri'),
        SizeField.data_source('Image Size', 'image_size_in_bytes'),
        TextDyField.data_source('Digest', 'image_digest'),
        EnumDyField.data_source('Scan status',
                                'image_scan_status.status',
                                default_state={
                                    'safe': ['COMPLETE'],
                                    'warning': ['IN_PROGRESS'],
                                    'alert': ['FAILED']
                                }),
        DateTimeDyField.data_source('Pushed at', 'image_pushed_at'),
    ])

metadata = CloudServiceMeta.set_layouts(layouts=[base, images])


class ECRResource(CloudServiceResource):
    cloud_service_group = StringType(default='ECR')
コード例 #27
0
        TextDyField.data_source("Backup S3 bucket", "s3_backup_info.bucket_name"),
        TextDyField.data_source("Backup S3 bucket error prefix",
                                "s3_backup_info.bucket_error_prefix"),
        TextDyField.data_source("S3 buffer conditions", "s3_backup_info.buffer_conditions"),
        TextDyField.data_source("S3 compression", "s3_backup_info.compression"),
        TextDyField.data_source("S3 encryption", "s3_backup_info.encryption")
    ]
)

# TAB - S3 Destination
firehose_meta_s3_destination_details = TableDynamicLayout.set_fields(
    "S3 Destination Details",
    root_path="data.destinations_ref.extended_s3_destination_description",
    fields=[
        TextDyField.data_source("S3 bucket", "bucket_name"),
        TextDyField.data_source("Prefix", "prefix"),
        TextDyField.data_source("Error prefix", "error_output_prefix"),
        TextDyField.data_source("Buffer conditions", "buffer_conditions"),
        TextDyField.data_source("Compression", "compression"),
        TextDyField.data_source("Encryption", "encryption_configuration.no_encryption")
    ]
)

firehose_meta_s3_destination_glue = TableDynamicLayout.set_fields(
    "Convert record format",
    root_path="data.destinations_ref.extended_s3_destination_description",
    fields=[
        TextDyField.data_source("Record format conversion",
                                "data_format_conversion_configuration.record_format_conversion"),
        ListDyField.data_source("Input format", "data_format_conversion_configuration.input_format",
                                options={"delimiter": ", "}),
        ListDyField.data_source("Output format", "data_format_conversion_configuration.output_format",
コード例 #28
0
        TextDyField.data_source('Private IP', 'data.private_ip_address'),
        TextDyField.data_source('Public IP', 'data.public_ip_address'),
        ListDyField.data_source('IPv6',
                                'data.ipv6_address',
                                default_badge={'type': 'outline'}),
        TextDyField.data_source('State', 'data.state.name'),
        TextDyField.data_source('User Name', 'data.username'),
        TextDyField.data_source('SSH Key Name', 'data.ssh_key_name')
    ])

instance_addon = TableDynamicLayout.set_fields(
    'Snapshot Time',
    root_path='data.add_ons',
    fields=[
        TextDyField.data_source('Name', 'name'),
        TextDyField.data_source('Status', 'status'),
        TextDyField.data_source('Snapshot Time Of Day',
                                'snapshot_time_of_day'),
        TextDyField.data_source('Next Snapshot Time Of Day',
                                'next_snapshot_time_of_day')
    ])

instance_hardware = TableDynamicLayout.set_fields(
    'Hardware',
    root_path='data.hardware',
    fields=[
        TextDyField.data_source('CPU Count', 'cpu_count'),
        ListDyField.data_source('Disks',
                                'disks',
                                default_badge={
                                    'type': 'outline',