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