cst_phd.tags = {
    'spaceone:icon': 'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/aws/AWS-Personal-Health-Dashboard.svg',
}

cst_phd._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Event', 'data.event_title'),
        EnumDyField.data_source('Status', 'data.status_code', default_state={
            'safe': ['closed'],
            'warning': ['upcoming'],
            'alert': ['open']
        }),
        TextDyField.data_source('Event Category', 'data.event_type_category'),
        TextDyField.data_source('Region', 'region_code'),
        TextDyField.data_source('Affected Resources', 'data.affected_resource_display'),
        DateTimeDyField.data_source('Start Time', 'data.start_time'),
        DateTimeDyField.data_source('Last Update Time', 'data.last_update_time'),
    ],
    search=[
        SearchField.set(name='ARN', key='data.arn'),
        SearchField.set(name='Event', key='data.event_type_code'),
        SearchField.set(name='Event Category', key='data.event_type_category'),
        SearchField.set(name='Event Scope Code', key='data.event_scope_code'),
        SearchField.set(name='Status Code', key='data.status_code'),
        SearchField.set(name='Service', key='data.service'),
        SearchField.set(name='Start Time', key='data.start_time', data_type='datetime'),
        SearchField.set(name='Last Update Time', key='data.last_update_time', data_type='datetime'),
        SearchField.set(name='End Time', key='data.end_type', data_type='datetime'),
        SearchField.set(name='Affected Resource', key='data.affected_resources.entity_value')
    ]
)
Exemplo n.º 2
0
cst_snapshot.is_major = False
cst_snapshot.tags = {
    'spaceone:icon':
    'https://spaceone-custom-assets.s3.ap-northeast-2.amazonaws.com/console-assets/icons/cloud-services/azure/azure-disk-snapshot.svg',
}

cst_snapshot._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.name'),
        TextDyField.data_source('Source disk', 'data.source_disk_name'),
        TextDyField.data_source('Snapshot type', 'data.incremental_display'),
        SizeField.data_source('Source disk size', 'data.disk_size_bytes'),
        TextDyField.data_source('Resource Group', 'data.resource_group'),
        TextDyField.data_source('Location', 'data.location'),
        TextDyField.data_source('Subscription', 'data.subscription_name'),
        DateTimeDyField.data_source('Time created', 'data.time_created')
    ],
    search=[
        SearchField.set(name='ID', key='data.id', data_type='string'),
        SearchField.set(name='Name', key='data.name', data_type='string'),
        SearchField.set(name='Subscription ID',
                        key='data.subscription_id',
                        data_type='string'),
        SearchField.set(name='Subscription Name',
                        key='data.subscription_name',
                        data_type='string'),
        SearchField.set(name='Resource Group',
                        key='data.resource_group',
                        data_type='string'),
        SearchField.set(name='Location',
                        key='data.location',
Exemplo n.º 3
0
         'Min Replicas',
         'data.auto_scaler.autoscaling_policy.min_num_replicas'),
     TextDyField.data_source(
         'Max Replicas',
         'data.auto_scaler.autoscaling_policy.max_num_replicas'),
     TextDyField.data_source('Recommended Size',
                             'data.auto_scaler.recommended_size'),
     TextDyField.data_source('Template', 'data.template.name'),
     EnumDyField.data_source('Autoscaling Mode',
                             'data.auto_scaler.autoscaling_policy.mode',
                             default_badge={
                                 'indigo.500': ['ON'],
                                 'coral.600': ['OFF']
                             }),
     TextDyField.data_source('Autoscaling', 'data.autoscaling_display'),
     DateTimeDyField.data_source('Creation Time',
                                 'data.creation_timestamp'),
 ],
 search=[
     SearchField.set(name='Name', key='data.name'),
     SearchField.set(name='Instance Counts',
                     key='data.name',
                     data_type='integer'),
     SearchField.set(
         name='Minimum Number of Replicas',
         key='data.auto_scaler.autoscaling_policy.min_num_replicas',
         data_type='integer'),
     SearchField.set(
         name='Maximum Number of Replicas',
         key='data.auto_scaler.autoscaling_policy.max_num_replicas',
         data_type='integer'),
     SearchField.set(name='Recommended Size',
Exemplo n.º 4
0
             'UPDATING', 'TERMINATING', 'MAINTENANCE_IN_PROGRESS',
             'PROVISIONING'
         ],
         'alert':
         ['TERMINATED', 'FAILED', 'MIGRATED', 'NEEDS_ATTENTION']
     }),
 TextDyField.data_source('Availability Domain',
                         'data.availability_domain'),
 ListDyField.data_source('Fault Domains',
                         'data.fault_domains',
                         options={'delimiter': '<br>'}),
 TextDyField.data_source('Cluster Name', 'data.cluster_name'),
 TextDyField.data_source('OCID', 'data.id'),
 TextDyField.data_source('Shape', 'data.shape'),
 TextDyField.data_source('Version', 'data.version'),
 DateTimeDyField.data_source('Created', 'data.time_created'),
 TextDyField.data_source('Time Zone', 'data.time_zone'),
 TextDyField.data_source('Compartment', 'data.compartment_name'),
 TextDyField.data_source('Oracle Database Software Edition',
                         'data.database_edition'),
 TextDyField.data_source('Storage Management Software',
                         'data.db_system_options.storage_management'),
 SizeField.data_source('Storage Size',
                       'data.data_storage_size_in_gbs',
                       options={
                           'display_unit': 'GB',
                           'source_unit': 'GB'
                       }),
 TextDyField.data_source('Licence Type', 'data.license_model'),
 TextDyField.data_source('Maintenance Window',
                         'data.maintenance_window.display'),
                'warning': ['ReadyToUpload'],
                'available': ['Unattached']
            }),
        TextDyField.data_source('Attached VM', 'data.managed_by'),
        TextDyField.data_source('Location', 'data.location'),
        TextDyField.data_source('Resource Group', 'data.resource_group'),
        TextDyField.data_source('Resource ID', 'data.id'),
        ListDyField.data_source('Zones',
                                'data.zones',
                                options={'delimiter': '<br>'}),
        TextDyField.data_source('Subscription ID', 'data.subscription_id'),
        TextDyField.data_source('Subscription Name', 'data.subscription_name'),
        TextDyField.data_source('Encryption Type', 'data.encryption.type'),
        TextDyField.data_source('Networking',
                                'data.network_access_policy_display'),
        DateTimeDyField.data_source('Created Time', 'data.time_created'),
        TextDyField.data_source('Max Shares', 'data.max_shares')
    ])

# TAB - tags
disk_info_tags = TableDynamicLayout.set_fields(
    'Tags',
    'data.tags',
    fields=[
        TextDyField.data_source('Key', 'key'),
        TextDyField.data_source('Value', 'value')
    ])

disk_meta = CloudServiceMeta.set_layouts([disk_info_meta, disk_info_tags])

Exemplo n.º 6
0
cst_sql_workspace._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Name', 'data.name'),
        TextDyField.data_source('Location', 'data.location'),
        TextDyField.data_source(
            'Default Partition Expires',
            'data.default_partition_expiration_ms_display'),
        TextDyField.data_source('Default Table Expires',
                                'data.default_table_expiration_ms_display'),
        EnumDyField.data_source('Visible on Console',
                                'data.visible_on_console',
                                default_badge={
                                    'indigo.500': ['true'],
                                    'coral.600': ['false']
                                }),
        DateTimeDyField.data_source('Creation Time', 'data.creation_time'),
        DateTimeDyField.data_source('Last Modified Time',
                                    'data.last_modified_time'),
    ],
    search=[
        SearchField.set(name='ID', key='data.id'),
        SearchField.set(name='Name', key='data.name'),
        SearchField.set(name='Location', key='data.location'),
        SearchField.set(name='Creation Time',
                        key='data.creation_time',
                        data_type='datetime'),
        SearchField.set(name='Last Modified Time',
                        key='data.last_modified_time',
                        data_type='datetime'),
    ])
Exemplo n.º 7
0
             ],
             'alert':
             ['TERMINATED', 'FAILED', 'MIGRATED', 'NEEDS_ATTENTION']
         }),
     TextDyField.data_source('Availability Domain',
                             'data.availability_domain'),
     TextDyField.data_source('Shape', 'data.shape'),
     TextDyField.data_source('CPU Core Count', 'data.cpu_core_count'),
     SizeField.data_source('Storage Size',
                           'data.data_storage_size_in_gbs',
                           options={
                               'display_unit': 'GB',
                               'source_unit': 'GB'
                           }),
     TextDyField.data_source('Edition', 'data.database_edition'),
     DateTimeDyField.data_source('Created', 'data.time_created'),
 ],
 search=[
     SearchField.set(name='Display Name', key='data.display_name'),
     SearchField.set(name='State', key='data.lifecycle_state'),
     SearchField.set(name='Availability Domain',
                     key='data.availability_domain'),
     SearchField.set(name='Shape', key='data.shape'),
     SearchField.set(name='CPU Core Count', key='data.cpu_core_count'),
     SearchField.set(name='Edition', key='data.database_edition'),
     SearchField.set(name='Storage Size',
                     key='data.data_storage_size_in_gbs'),
     SearchField.set(name='Created',
                     key='data.time_created',
                     data_type='datetime'),
 ])
    fields=[
        TextDyField.data_source('ID', 'data.id'),
        TextDyField.data_source('Name', 'data.name'),
        TextDyField.data_source('Location', 'data.location'),
        TextDyField.data_source(
            'Default Partition Expires',
            'data.default_partition_expiration_ms_display'),
        TextDyField.data_source('Default Table Expires',
                                'data.default_table_expiration_ms_display'),
        EnumDyField.data_source('Visible on Console',
                                'data.visible_on_console',
                                default_badge={
                                    'indigo.500': ['true'],
                                    'coral.600': ['false']
                                }),
        DateTimeDyField.data_source('Creation Time', 'data.creation_time'),
        DateTimeDyField.data_source('Last Modified Time',
                                    'data.last_modified_time'),
    ])

access_table_meta = SimpleTableDynamicLayout.set_fields(
    'Access',
    root_path='data.access',
    fields=[
        TextDyField.data_source('Role', 'role'),
        TextDyField.data_source('Special Group', 'special_group'),
        TextDyField.data_source('User by E-mail', 'user_by_email')
    ])

workspace_dataset_meta = ListDynamicLayout.set_layouts(
    'Dataset Details', layouts=[dataset_details_meta, access_table_meta])
                'warning': [
                    'AutoClosed', 'Inaccessible', 'Offline',
                    'OfflineChangingDwPerformanceTiers', 'OfflineSecondary',
                    'Pausing', 'Recovering', 'RecoveryPending', 'Suspect'
                ],
                'disable': ['Disabled', 'Paused', 'Shutdown'],
                'alert': ['EmergencyMode']
            }),
        TextDyField.data_source('Resource ID', 'data.id'),
        TextDyField.data_source('Resource Group', 'data.resource_group'),
        TextDyField.data_source('Location', 'data.location'),
        TextDyField.data_source('Subscription ID', 'data.subscription_id'),
        TextDyField.data_source('Server Name', 'data.server_name'),
        TextDyField.data_source('Elastic Pool', 'data.elastic_pool_id'),
        TextDyField.data_source('Pricing Tier', 'data.pricing_tier_display'),
        DateTimeDyField.data_source('Earliest Restore Point',
                                    'data.earliest_restore_date'),
        TextDyField.data_source('Collation', 'data.collation'),
        DateTimeDyField.data_source('Creation Date', 'data.creation_date'),
        TextDyField.data_source('Server Admin Login',
                                'data.administrator_login'),
    ])

# TAB - Configure
sql_databases_configure = ItemDynamicLayout.set_fields(
    'Configure',
    fields=[
        TextDyField.data_source('Service Tier', 'data.service_tier_display'),
        TextDyField.data_source('Compute Tier', 'data.compute_tier'),
        TextDyField.data_source('Compute Hardware', 'data.sku.family'),
        TextDyField.data_source('Licence Type', 'data.license_type'),
        TextDyField.data_source('vCores', 'data.current_sku.capacity'),
Exemplo n.º 10
0
        TextDyField.data_source('Connection name', 'data.connection_name'),
        ListDyField.data_source('IP Address Type',
                                'data.ip_addresses',
                                default_badge={
                                    'type': 'outline',
                                    'sub_key': 'type',
                                    'delimiter': '<br>'
                                }),
        ListDyField.data_source('Public IP Address',
                                'data.ip_addresses',
                                default_badge={
                                    'type': 'outline',
                                    'sub_key': 'ip_address',
                                    'delimiter': '<br>'
                                }),
        DateTimeDyField.data_source('SSL certificates Creation Time',
                                    'data.server_ca_cert.create_time'),
        DateTimeDyField.data_source('SSL certificates Expiration Time',
                                    'data.server_ca_cert.expiration_time'),
    ])

# TAB - Database
sql_meta_database = TableDynamicLayout.set_fields(
    'Database',
    'data.databases',
    fields=[
        TextDyField.data_source('Name', 'name'),
        TextDyField.data_source('charset', 'charset'),
        TextDyField.data_source('collation', 'collation'),
        TextDyField.data_source(
            'Compatibility Level',
            'sql_server_database_details.compatibility_level'),
Exemplo n.º 11
0
    fields=[
        TextDyField.data_source('Resource ID', 'data.id'),
        TextDyField.data_source('Name', 'data.name'),
        EnumDyField.data_source(
            'Type',
            'data.instance_group_type',
            default_outline_badge=['STATELESS', 'STATEFUL', 'UNMANAGED']),
        TextDyField.data_source('Project', 'data.project'),
        TextDyField.data_source('Region', 'data.region'),
        TextDyField.data_source('Zone', 'data.zone'),
        TextDyField.data_source('Network', 'data.network'),
        TextDyField.data_source('Subnet', 'data.subnetwork'),
        TextDyField.data_source('Description', 'data.description'),
        TextDyField.data_source('Instance Counts', 'data.instance_counts'),
        TextDyField.data_source('Self Link', 'data.self_link'),
        DateTimeDyField.data_source('Creation Time',
                                    'data.creation_timestamp'),
    ])

instance_template_item = ItemDynamicLayout.set_fields(
    'Instance Template',
    fields=[
        TextDyField.data_source('Resource ID', 'data.template.id'),
        TextDyField.data_source('Name', 'data.template.name'),
        TextDyField.data_source('Description', 'data.template.description'),
        TextDyField.data_source('Self Link', 'data.template.self_link'),
        DateTimeDyField.data_source('Creation Time',
                                    'data.creation_timestamp'),
    ])

instance_group_layout = ListDynamicLayout.set_layouts(
    'Instance Group', layouts=[instance_group_item, instance_template_item])
Exemplo n.º 12
0
                                'coral.600': ['false'],
                            }),
    TextDyField.data_source('Open Mode', 'data.open_mode'),
    EnumDyField.data_source('Data Guard Enable', 'data.is_data_guard_enable', default_badge={
                                'indigo.500': ['true'],
                                'coral.600': ['false']
                            }),
    TextDyField.data_source('Service Console URL', 'data.service_console_url'),
    EnumDyField.data_source('Data Safe Status', 'data.data_safe_status', default_state={
                                'safe': ['REGISTERED'],
                                'warning': ['REGISTERING', 'DEREGISTERING'],
                                'alert': ['NOT_REGISTERED', 'FAILED']
                            }),
    TextDyField.data_source('Key Store id', 'data.key_store_id'),
    TextDyField.data_source('Oracle Key Vault Wallet Name', 'data.key_store_wallet_name'),
    DateTimeDyField.data_source('Created', 'data.time_created')
])

network_meta = ItemDynamicLayout.set_fields('Network', fields=[
    TextDyField.data_source('Access Type', 'data.permission_level'),
    ListDyField.data_source('NSG ids', 'data.nsg_ids', options={'delimiter': '<br>'}),
    TextDyField.data_source('Subnet id', 'data.subnet_id'),
    TextDyField.data_source('Private Endpoint', 'data.private_endpoint'),
    TextDyField.data_source('Private Endpoint ip', 'data.private_endpoint_ip'),
    TextDyField.data_source('Private Endpoint Label', 'data.private_endpoint_label')
])

maintenance_meta = ItemDynamicLayout.set_fields('Maintenance', fields=[
    DateTimeDyField.data_source('Next Maintenance Begin', 'data.time_maintenance_begin'),
    DateTimeDyField.data_source('Next Maintenance End', 'data.time_maintenance_end')
])
        TextDyField.data_source('Compute Count', 'data.compute_count'),
        TextDyField.data_source('Storage Count', 'data.storage_count'),
        SizeField.data_source('Total Storage Size',
                              'data.total_storage_size_in_gbs',
                              options={
                                  'display_unit': 'GB',
                                  'source_unit': 'GB'
                              }),
        SizeField.data_source('Available Storage Size',
                              'data.available_storage_size_in_gbs',
                              options={
                                  'display_unit': 'GB',
                                  'source_unit': 'GB'
                              }),
        #TextDyField.data_source('Maintenance Window' 'data.maintenance_window.display'),
        DateTimeDyField.data_source('Created', 'data.time_created')
    ])

exadata_last_maintenance_run = ItemDynamicLayout.set_fields(
    'Last Maintenance Run',
    root_path='data.last_maintenance_run',
    fields=[
        TextDyField.data_source('Display', 'maintenance_display'),
        TextDyField.data_source('Id', 'id'),
        EnumDyField.data_source('State',
                                'lifecycle_state',
                                default_state={
                                    'safe': ['SUCCEEDED'],
                                    'warning': [
                                        'SCHEDULED', 'IN_PROGRESS', 'SKIPPED',
                                        'UPDATING', 'DELETING'
    TextDyField.data_source('Earliest Restore Point', 'earliest_restore_date'),
])

# TAB - SQL Databases - Configure
sql_servers_databases_configure = TableDynamicLayout.set_fields('Databases Configure', 'data.databases', fields=[
    TextDyField.data_source('Service Tier', 'service_tier_display'),
    TextDyField.data_source('Compute Tier', 'compute_tier'),
    TextDyField.data_source('Compute Hardware', 'sku.family'),
    TextDyField.data_source('License Type', 'license_type'),
    TextDyField.data_source('vCores', 'sku.capacity'),
    TextDyField.data_source('Data Max Size', 'max_size_gb'),
    TextDyField.data_source('Zone Redundant', 'zone_redundant'),
    ListDyField.data_source('Sync Groups', 'sync_group_display'),
    ListDyField.data_source('Sync Agents', 'sync_agent_display'),
    TextDyField.data_source('Collation', 'collation'),
    DateTimeDyField.data_source('Creation Date', 'creation_date'),
    # TextDyField.data_source('Server Admin Login', '')   # Remove: DB is already under the specific server
    # TextDyField.data_source('Active Directory Login', ''),  # Remove: DB is already under the specific server

])

# TAB - SQL Databases - tags
sql_databases_info_tags = TableDynamicLayout.set_fields('Tags', 'data.tags', fields=[
    TextDyField.data_source('Key', 'key'),
    TextDyField.data_source('Value', 'value')
])

# TAB - Dynamic Data Masking : "Masking rules: + Tab "Recommended fields to mask"  # TODO: confirm!!
sql_servers_databases_info = ListDynamicLayout.set_layouts('SQL Databases',
                                                           layouts=[sql_servers_databases,
                                                                    sql_servers_databases_configure,
        TextDyField.data_source('Availability Domain', 'data.compute.ad'),
        TextDyField.data_source('Fault Domain',
                                'data.oracle_cloud.fault_domain'),
        ListDyField.data_source('Security Groups',
                                'data.security_group',
                                default_badge={
                                    'type': 'outline',
                                    'delimeter': '<br>',
                                    'sub_key': 'security_group_name'
                                },
                                reference={
                                    'resource_type': 'inventory.CloudService',
                                    'reference_key': 'data.security_group_id'
                                }),
        TextDyField.data_source('Key Pair', 'data.compute.keypair'),
        DateTimeDyField.data_source('Launched At', 'data.compute.launched_at')
    ])

compute_instance_vcn = ItemDynamicLayout(
    'VCN',
    fields=[
        TextDyField.data_source('VCN Name', 'data.vcn.display_name'),
        TextDyField.data_source('VCN ID',
                                'data.vcn.id',
                                reference={
                                    'resource_type': 'inventory.CloudService',
                                    'reference_key': 'data.id'
                                }),
        TextDyField.data_source('Subnet Name', 'data.subnet.name'),
        TextDyField.data_source('Subnet ID',
                                'data.subnet.id',
cst_adb.group = 'AutonomousDatabase'
cst_adb.labels = ['database']
cst_adb.service_code = ''
cst_adb.is_primary = True
cst_adb.is_major = True
cst_adb.tags = {
    'spaceone:icon': ''
}

cst_adb._metadata = CloudServiceTypeMeta.set_meta(
    fields=[
        TextDyField.data_source('Display Name', ''),
        TextDyField.data_source('State', ''),
        TextDyField.data_source('Dedicated', ''),
        TextDyField.data_source('OCPUs', ''),
        TextDyField.data_source('Storage (TB)', ''),
        TextDyField.data_source('Workload Type', ''),
        TextDyField.data_source('Autonomous Data Guard', ''),
        DateTimeDyField.data_source('Created', ''),
    ],
    search=[
        SearchField.set(name='ID', key='data.id'),
    ]

)


CLOUD_SERVICE_TYPES = [
    CloudServiceTypeResponse({'resource': cst_adb})
]
                                default_state={
                                    'safe':
                                    ['Subject to object ACLs', 'Not public'],
                                    'warning': ['Not authorized'],
                                    'alert': ['Public to internet'],
                                }),
        EnumDyField.data_source('Requester Pays',
                                'data.requester_pays',
                                default_badge={
                                    'indigo.500': ['OFF'],
                                    'coral.600': ['ON']
                                }),
        TextDyField.data_source('Access Control', 'data.access_control'),
        TextDyField.data_source('Link URL', 'data.links.link_url'),
        TextDyField.data_source('Link for gsutil', 'data.links.gsutil_link'),
        DateTimeDyField.data_source('Created', 'data.creation_timestamp'),
        DateTimeDyField.data_source('Updated', 'data.update_timestamp'),
    ])

bucket_permission_info_meta = ItemDynamicLayout.set_fields(
    'Details',
    fields=[
        TextDyField.data_source('Public Access', 'data.public_access'),
        TextDyField.data_source('Access Control', 'data.access_control'),
    ])

bucket_permission_member_meta = SimpleTableDynamicLayout.set_fields(
    'Permissions Member',
    root_path='data.iam_policy_binding',
    fields=[
        TextDyField.data_source('Member', 'member'),
                                }),
        ListDyField.data_source('Snapshot Schedule',
                                'data.snapshot_schedule_display',
                                default_badge={
                                    'type': 'outline',
                                    'delimiter': '<br>'
                                }),
        EnumDyField.data_source('Encryption Type',
                                'data.encryption',
                                default_badge={
                                    'primary': ['Google managed'],
                                    'indigo.500': ['Customer managed'],
                                    'coral.600': ['Customer supplied']
                                }),
        TextDyField.data_source('Source Image', 'data.source_image_display'),
        DateTimeDyField.data_source('Last Attach Time',
                                    'data.last_attach_timestamp'),
        DateTimeDyField.data_source('Last Detach Time',
                                    'data.last_detach_timestamp'),
        DateTimeDyField.data_source('Creation Time',
                                    'data.creation_timestamp'),
    ])

# TAB - Instance Group
disk_performance_meta = ItemDynamicLayout.set_fields(
    'Estimated Performance',
    fields=[
        TextDyField.data_source('Read IOPS', 'data.read_iops'),
        TextDyField.data_source('Write IOPS', 'data.write_iops'),
        TextDyField.data_source('Read Throughput(MB/s)',
                                'data.read_throughput'),
        TextDyField.data_source('Write Throughput(MB/s)',