DataSource

DataSource #

A DataSource is a plugin instance collecting external cost data. External cost data consists of raw data and the plugin information used for collection.

Package : spaceone.api.cost_analysis.v1



DataSource #

DataSource Methods:

MethodRequestResponse
registerRegisterDataSourceRequestDataSourceInfo
updateUpdateDataSourceRequestDataSourceInfo
update_pluginUpdateDataSourcePluginRequestDataSourceInfo
update_secret_dataUpdateSecretDataSourceRequestDataSourceInfo
verify_pluginDataSourceRequestEmpty
enableDataSourceRequestDataSourceInfo
disableDataSourceRequestDataSourceInfo
deregisterDeregisterDataSourceRequestEmpty
syncSyncDataSourceRequestJobInfo
getDataSourceRequestDataSourceInfo
listDataSourceQueryDataSourcesInfo
statDataSourceStatQueryStruct

register #

Registers a DataSource with information of the plugin to use. Information of the plugin includes version, provider, and upgrade_mode.

POST /cost-analysis/v1/data-source/register

RegisterDataSourceRequest

  • name (string) Required

  • data_source_type (DataSourceType) Required

  • resource_group (ResourceGroup) Required

  • provider (string)

  • secret_type (SecretType)

  • secret_filter (SecretFilter)

  • template (Struct)

  • plugin_info (PluginInfo)

  • tags (Struct)

  • workspace_id (string)

{
   "name": "AWS HyperBilling Data Source test",
   "data_source_type": "EXTERNAL",
   "plugin_info": {
       "plugin_id": "plugin-aws-hyperbilling-cost-datasource",
       "version": "1.0.4",
       "options": {},
       "metadata": {
           "data_source_rules": [
               {
                   "conditions_policy": "ALWAYS",
                   "options": {
                       "stop_processing": true
                   },
                   "actions": {
                       "match_service_account": {
                           "source": "account",
                           "target": "data.account_id"
                       }
                   },
                   "conditions": [],
                   "tags": {},
                   "name": "match_service_account"
               }
           ]
       },
       "secret_id": "secret-ca134639483",
       "upgrade_mode": "AUTO"
   },
   "tags": {"a": "b"}
}

DataSourceInfo

  • data_source_id (string) Required

  • name (string) Required

  • state (State) Required

  • data_source_type (DataSourceType) Required

  • provider (string) Required

  • secret_type (SecretType) Required

  • secret_filter (SecretFilter) Required

  • plugin_info (PluginInfo) Required

  • template (Struct) Required

  • tags (Struct) Required

  • cost_tag_keys (string) Repeated Required

  • cost_additional_info_keys (string) Repeated Required

  • cost_data_keys (string) Repeated Required

  • data_source_account_count (int32) Required

  • connected_workspace_count (int32) Required

  • resource_group (ResourceGroup) Required

  • domain_id (string) Required

  • workspace_id (string) Required

  • created_at (string) Required

  • last_synchronized_at (string) Required

{
       "data_source_id": "ds-085d1e872789",
       "name": "AWS HyperBilling Data Source test",
       "state": "ENABLED",
       "data_source_type": "EXTERNAL",
       "plugin_info": {
           "plugin_id": "plugin-aws-hyperbilling-cost-datasource",
           "version": "1.0.4",
           "options": {},
           "metadata": {
               "data_source_rules": [
                   {
                       "options": {
                           "stop_processing": true
                       },
                       "actions": {
                           "match_service_account": {
                               "source": "account",
                               "target": "data.account_id"
                           }
                       },
                       "domain_id": "domain-58010aa2e451",
                       "conditions": [],
                       "name": "match_service_account",
                       "tags": {},
                       "data_source_id": "ds-085d1e872789",
                       "conditions_policy": "ALWAYS"
                   }
               ]
           },
           "secret_id": "secret-ca134639483",
           "upgrade_mode": "AUTO"
       },
       "template": {},
       "tags": {
           "a": "b"
       },
       "cost_tag_keys": [
           "Name",
           "Environment",
           "Role",
           "Service"
       ],
       "cost_additional_info_keys": [
           "Instance Type",
           "Usage Type Details"
       ],
       "cost_data_keys": [
           "AmortizedCost",
           "BlendedCost",
       ]
       "domain_id": "domain-58010aa2e451",
       "created_at": "2022-07-19T10:58:36.080Z"
}

update #

Updates a specific DataSource. You can make changes in DataSource settings, including name and tags.

POST /cost-analysis/v1/data-source/update

UpdateDataSourceRequest

  • data_source_id (string) Required

  • name (string)

  • secret_filter (SecretFilter)

  • template (Struct)

  • tags (Struct)

{
       "data_source_id": "ds-085d1e872789",
       "name": "AWS HyperBilling Data Source test2",
       "tags": {
           "type": "test"
       }
}

DataSourceInfo

  • data_source_id (string) Required

  • name (string) Required

  • state (State) Required

  • data_source_type (DataSourceType) Required

  • provider (string) Required

  • secret_type (SecretType) Required

  • secret_filter (SecretFilter) Required

  • plugin_info (PluginInfo) Required

  • template (Struct) Required

  • tags (Struct) Required

  • cost_tag_keys (string) Repeated Required

  • cost_additional_info_keys (string) Repeated Required

  • cost_data_keys (string) Repeated Required

  • data_source_account_count (int32) Required

  • connected_workspace_count (int32) Required

  • resource_group (ResourceGroup) Required

  • domain_id (string) Required

  • workspace_id (string) Required

  • created_at (string) Required

  • last_synchronized_at (string) Required

{
       "data_source_id": "ds-085d1e872789",
       "name": "AWS HyperBilling Data Source test",
       "state": "ENABLED",
       "data_source_type": "EXTERNAL",
       "plugin_info": {
           "plugin_id": "plugin-aws-hyperbilling-cost-datasource",
           "version": "1.0.4",
           "options": {},
           "metadata": {
               "data_source_rules": [
                   {
                       "options": {
                           "stop_processing": true
                       },
                       "actions": {
                           "match_service_account": {
                               "source": "account",
                               "target": "data.account_id"
                           }
                       },
                       "domain_id": "domain-58010aa2e451",
                       "conditions": [],
                       "name": "match_service_account",
                       "tags": {},
                       "data_source_id": "ds-085d1e872789",
                       "conditions_policy": "ALWAYS"
                   }
               ]
           },
           "secret_id": "secret-ca134639483",
           "upgrade_mode": "AUTO"
       },
       "template": {},
       "tags": {
           "a": "b"
       },
       "cost_tag_keys": [
           "Name",
           "Environment",
           "Role",
           "Service"
       ],
       "cost_additional_info_keys": [
           "Instance Type",
           "Usage Type Details"
       ],
       "cost_data_keys": [
           "AmortizedCost",
           "BlendedCost",
       ]
       "domain_id": "domain-58010aa2e451",
       "created_at": "2022-07-19T10:58:36.080Z"
}

update_plugin #

Updates the plugin of a specific DataSource. This method resets the plugin data in the DataSource to update the metadata.

POST /cost-analysis/v1/data-source/update-plugin

UpdateDataSourcePluginRequest

  • data_source_id (string) Required

  • version (string)

  • options (Struct)

  • upgrade_mode (UpgradeMode)

{
   "data_source_id": "ds-085d1e872789",
   "version": "1.0.4",
   "options": {},
   "upgrade_mode": "AUTO"
}

DataSourceInfo

  • data_source_id (string) Required

  • name (string) Required

  • state (State) Required

  • data_source_type (DataSourceType) Required

  • provider (string) Required

  • secret_type (SecretType) Required

  • secret_filter (SecretFilter) Required

  • plugin_info (PluginInfo) Required

  • template (Struct) Required

  • tags (Struct) Required

  • cost_tag_keys (string) Repeated Required

  • cost_additional_info_keys (string) Repeated Required

  • cost_data_keys (string) Repeated Required

  • data_source_account_count (int32) Required

  • connected_workspace_count (int32) Required

  • resource_group (ResourceGroup) Required

  • domain_id (string) Required

  • workspace_id (string) Required

  • created_at (string) Required

  • last_synchronized_at (string) Required

{
       "data_source_id": "ds-085d1e872789",
       "name": "AWS HyperBilling Data Source test",
       "state": "ENABLED",
       "data_source_type": "EXTERNAL",
       "plugin_info": {
           "plugin_id": "plugin-aws-hyperbilling-cost-datasource",
           "version": "1.0.4",
           "options": {},
           "metadata": {
               "data_source_rules": [
                   {
                       "options": {
                           "stop_processing": true
                       },
                       "actions": {
                           "match_service_account": {
                               "source": "account",
                               "target": "data.account_id"
                           }
                       },
                       "domain_id": "domain-58010aa2e451",
                       "conditions": [],
                       "name": "match_service_account",
                       "tags": {},
                       "data_source_id": "ds-085d1e872789",
                       "conditions_policy": "ALWAYS"
                   }
               ]
           },
           "secret_id": "secret-ca134639483",
           "upgrade_mode": "AUTO"
       },
       "template": {},
       "tags": {
           "a": "b"
       },
       "cost_tag_keys": [
           "Name",
           "Environment",
           "Role",
           "Service"
       ],
       "cost_additional_info_keys": [
           "Instance Type",
           "Usage Type Details"
       ],
       "cost_data_keys": [
           "AmortizedCost",
           "BlendedCost",
       ]
       "domain_id": "domain-58010aa2e451",
       "created_at": "2022-07-19T10:58:36.080Z"
}

update_secret_data #

Updates the secret data of plugin for DataSource. This method updates the secret data in the DataSource to update the secret_data.

POST /cost-analysis/v1/data-source/update-secret-data

DataSourceInfo

  • data_source_id (string) Required

  • name (string) Required

  • state (State) Required

  • data_source_type (DataSourceType) Required

  • provider (string) Required

  • secret_type (SecretType) Required

  • secret_filter (SecretFilter) Required

  • plugin_info (PluginInfo) Required

  • template (Struct) Required

  • tags (Struct) Required

  • cost_tag_keys (string) Repeated Required

  • cost_additional_info_keys (string) Repeated Required

  • cost_data_keys (string) Repeated Required

  • data_source_account_count (int32) Required

  • connected_workspace_count (int32) Required

  • resource_group (ResourceGroup) Required

  • domain_id (string) Required

  • workspace_id (string) Required

  • created_at (string) Required

  • last_synchronized_at (string) Required

{
       "data_source_id": "ds-085d1e872789",
       "name": "AWS HyperBilling Data Source test",
       "state": "ENABLED",
       "data_source_type": "EXTERNAL",
       "plugin_info": {
           "plugin_id": "plugin-aws-hyperbilling-cost-datasource",
           "version": "1.0.4",
           "options": {},
           "metadata": {
               "data_source_rules": [
                   {
                       "options": {
                           "stop_processing": true
                       },
                       "actions": {
                           "match_service_account": {
                               "source": "account",
                               "target": "data.account_id"
                           }
                       },
                       "domain_id": "domain-58010aa2e451",
                       "conditions": [],
                       "name": "match_service_account",
                       "tags": {},
                       "data_source_id": "ds-085d1e872789",
                       "conditions_policy": "ALWAYS"
                   }
               ]
           },
           "secret_id": "secret-ca134639483",
           "upgrade_mode": "AUTO"
       },
       "template": {},
       "tags": {
           "a": "b"
       },
       "cost_tag_keys": [
           "Name",
           "Environment",
           "Role",
           "Service"
       ],
       "cost_additional_info_keys": [
           "Instance Type",
           "Usage Type Details"
       ],
       "cost_data_keys": [
           "AmortizedCost",
           "BlendedCost",
       ]
       "domain_id": "domain-58010aa2e451",
       "created_at": "2022-07-19T10:58:36.080Z"
}

verify_plugin #

Verifies the plugin of a specific DataSource. This method validates the plugin data, version and endpoint.

POST /cost-analysis/v1/data-source/verify-plugin

DataSourceRequest

  • data_source_id (string) Required
{
   "data_source_id": "ds-085d1e872789"
}

enable #

Enables a specific DataSource. By enabling a DataSource, you can communicate with an external cloud service via the plugin.

POST /cost-analysis/v1/data-source/enable

DataSourceRequest

  • data_source_id (string) Required
{
   "data_source_id": "ds-085d1e872789"
}

DataSourceInfo

  • data_source_id (string) Required

  • name (string) Required

  • state (State) Required

  • data_source_type (DataSourceType) Required

  • provider (string) Required

  • secret_type (SecretType) Required

  • secret_filter (SecretFilter) Required

  • plugin_info (PluginInfo) Required

  • template (Struct) Required

  • tags (Struct) Required

  • cost_tag_keys (string) Repeated Required

  • cost_additional_info_keys (string) Repeated Required

  • cost_data_keys (string) Repeated Required

  • data_source_account_count (int32) Required

  • connected_workspace_count (int32) Required

  • resource_group (ResourceGroup) Required

  • domain_id (string) Required

  • workspace_id (string) Required

  • created_at (string) Required

  • last_synchronized_at (string) Required

{
       "data_source_id": "ds-085d1e872789",
       "name": "AWS HyperBilling Data Source test",
       "state": "ENABLED",
       "data_source_type": "EXTERNAL",
       "plugin_info": {
           "plugin_id": "plugin-aws-hyperbilling-cost-datasource",
           "version": "1.0.4",
           "options": {},
           "metadata": {
               "data_source_rules": [
                   {
                       "options": {
                           "stop_processing": true
                       },
                       "actions": {
                           "match_service_account": {
                               "source": "account",
                               "target": "data.account_id"
                           }
                       },
                       "domain_id": "domain-58010aa2e451",
                       "conditions": [],
                       "name": "match_service_account",
                       "tags": {},
                       "data_source_id": "ds-085d1e872789",
                       "conditions_policy": "ALWAYS"
                   }
               ]
           },
           "secret_id": "secret-ca134639483",
           "upgrade_mode": "AUTO"
       },
       "template": {},
       "tags": {
           "a": "b"
       },
       "cost_tag_keys": [
           "Name",
           "Environment",
           "Role",
           "Service"
       ],
       "cost_additional_info_keys": [
           "Instance Type",
           "Usage Type Details"
       ],
       "cost_data_keys": [
           "AmortizedCost",
           "BlendedCost",
       ]
       "domain_id": "domain-58010aa2e451",
       "created_at": "2022-07-19T10:58:36.080Z"
}

disable #

Disables a specific DataSource. By disabling a DataSource, you can block communication with an external cloud service via the plugin.

POST /cost-analysis/v1/data-source/disable

DataSourceRequest

  • data_source_id (string) Required
{
   "data_source_id": "ds-085d1e872789"
}

DataSourceInfo

  • data_source_id (string) Required

  • name (string) Required

  • state (State) Required

  • data_source_type (DataSourceType) Required

  • provider (string) Required

  • secret_type (SecretType) Required

  • secret_filter (SecretFilter) Required

  • plugin_info (PluginInfo) Required

  • template (Struct) Required

  • tags (Struct) Required

  • cost_tag_keys (string) Repeated Required

  • cost_additional_info_keys (string) Repeated Required

  • cost_data_keys (string) Repeated Required

  • data_source_account_count (int32) Required

  • connected_workspace_count (int32) Required

  • resource_group (ResourceGroup) Required

  • domain_id (string) Required

  • workspace_id (string) Required

  • created_at (string) Required

  • last_synchronized_at (string) Required

{
       "data_source_id": "ds-085d1e872789",
       "name": "AWS HyperBilling Data Source test",
       "state": "ENABLED",
       "data_source_type": "EXTERNAL",
       "plugin_info": {
           "plugin_id": "plugin-aws-hyperbilling-cost-datasource",
           "version": "1.0.4",
           "options": {},
           "metadata": {
               "data_source_rules": [
                   {
                       "options": {
                           "stop_processing": true
                       },
                       "actions": {
                           "match_service_account": {
                               "source": "account",
                               "target": "data.account_id"
                           }
                       },
                       "domain_id": "domain-58010aa2e451",
                       "conditions": [],
                       "name": "match_service_account",
                       "tags": {},
                       "data_source_id": "ds-085d1e872789",
                       "conditions_policy": "ALWAYS"
                   }
               ]
           },
           "secret_id": "secret-ca134639483",
           "upgrade_mode": "AUTO"
       },
       "template": {},
       "tags": {
           "a": "b"
       },
       "cost_tag_keys": [
           "Name",
           "Environment",
           "Role",
           "Service"
       ],
       "cost_additional_info_keys": [
           "Instance Type",
           "Usage Type Details"
       ],
       "cost_data_keys": [
           "AmortizedCost",
           "BlendedCost",
       ]
       "domain_id": "domain-58010aa2e451",
       "created_at": "2022-07-19T10:58:36.080Z"
}

deregister #

Deregisters and deletes a specific DataSource. You must specify the data_source_id of the DataSource to deregister.

POST /cost-analysis/v1/data-source/deregister

DeregisterDataSourceRequest

  • data_source_id (string) Required

  • cascade_delete_cost (bool)

    Default value is true. If true delete all cost data related to data_source_id

{
   "data_source_id": "ds-085d1e872789",
   "cascade_delete_cost": true,
   "domain_id": "domain-085d1e872789"
}

sync #

Manually runs a specific DataSource to collect the cost data. This method is to get up-to-date cost data.

POST /cost-analysis/v1/data-source/sync


get #

Gets a specific DataSource. Prints detailed information about the DataSource, including name, state, and plugin_info.

POST /cost-analysis/v1/data-source/get

DataSourceRequest

  • data_source_id (string) Required
{
   "data_source_id": "ds-085d1e872789"
}

DataSourceInfo

  • data_source_id (string) Required

  • name (string) Required

  • state (State) Required

  • data_source_type (DataSourceType) Required

  • provider (string) Required

  • secret_type (SecretType) Required

  • secret_filter (SecretFilter) Required

  • plugin_info (PluginInfo) Required

  • template (Struct) Required

  • tags (Struct) Required

  • cost_tag_keys (string) Repeated Required

  • cost_additional_info_keys (string) Repeated Required

  • cost_data_keys (string) Repeated Required

  • data_source_account_count (int32) Required

  • connected_workspace_count (int32) Required

  • resource_group (ResourceGroup) Required

  • domain_id (string) Required

  • workspace_id (string) Required

  • created_at (string) Required

  • last_synchronized_at (string) Required

{
       "data_source_id": "ds-085d1e872789",
       "name": "AWS HyperBilling Data Source test",
       "state": "ENABLED",
       "data_source_type": "EXTERNAL",
       "plugin_info": {
           "plugin_id": "plugin-aws-hyperbilling-cost-datasource",
           "version": "1.0.4",
           "options": {},
           "metadata": {
               "data_source_rules": [
                   {
                       "options": {
                           "stop_processing": true
                       },
                       "actions": {
                           "match_service_account": {
                               "source": "account",
                               "target": "data.account_id"
                           }
                       },
                       "domain_id": "domain-58010aa2e451",
                       "conditions": [],
                       "name": "match_service_account",
                       "tags": {},
                       "data_source_id": "ds-085d1e872789",
                       "conditions_policy": "ALWAYS"
                   }
               ]
           },
           "secret_id": "secret-ca134639483",
           "upgrade_mode": "AUTO"
       },
       "template": {},
       "tags": {
           "a": "b"
       },
       "cost_tag_keys": [
           "Name",
           "Environment",
           "Role",
           "Service"
       ],
       "cost_additional_info_keys": [
           "Instance Type",
           "Usage Type Details"
       ],
       "cost_data_keys": [
           "AmortizedCost",
           "BlendedCost",
       ]
       "domain_id": "domain-58010aa2e451",
       "created_at": "2022-07-19T10:58:36.080Z"
}

list #

Gets a list of all DataSources. You can use a query to get a filtered list of DataSources.

POST /cost-analysis/v1/data-source/list

DataSourceQuery

  • workspace_id (string) Required

  • query (Query)

  • data_source_id (string)

  • name (string)

  • state (string)

  • data_source_type (DataSourceType)

  • provider (string)

  • connected_workspace_id (string)

{
   "query": {}
}

DataSourcesInfo

  • results (DataSourceInfo) Repeated Required

  • total_count (int32) Required

{
       "results": [
           {
               "data_source_id": "ds-085d1e872789",
               "name": "AWS HyperBilling Data Source test",
               "state": "ENABLED",
               "data_source_type": "EXTERNAL",
               "plugin_info": {
                   "plugin_id": "plugin-aws-hyperbilling-cost-datasource",
                   "version": "1.0.4",
                   "options": {},
                   "metadata": {
                       "data_source_rules": [
                           {
                               "options": {
                                   "stop_processing": true
                               },
                               "actions": {
                                   "match_service_account": {
                                       "source": "account",
                                       "target": "data.account_id"
                                   }
                               },
                               "domain_id": "domain-58010aa2e451",
                               "conditions": [],
                               "name": "match_service_account",
                               "tags": {},
                               "data_source_id": "ds-085d1e872789",
                               "conditions_policy": "ALWAYS"
                           }
                       ]
                   },
                   "secret_id": "secret-ca134639483",
                   "upgrade_mode": "AUTO"
               },
               "template": {},
               "tags": {
                   "a": "b"
               },
               "cost_tag_keys": [
                   "Name",
                   "Environment",
                   "Role",
                   "Service"
               ],
               "cost_additional_info_keys": [
                   "Instance Type",
                   "Usage Type Details"
               ],
               "cost_data_keys": [
                   "AmortizedCost",
                   "BlendedCost",
               ]
               "domain_id": "domain-58010aa2e451",
               "created_at": "2022-07-19T10:58:36.080Z"
           }
       ],
       "total_count": 2
}

stat #

POST /cost-analysis/v1/data-source/stat



Message #

DataSourceInfo #

  • data_source_id (string) Required

  • name (string) Required

  • state (State) Required

  • data_source_type (DataSourceType) Required

  • provider (string) Required

  • secret_type (SecretType) Required

  • secret_filter (SecretFilter) Required

  • plugin_info (PluginInfo) Required

  • template (Struct) Required

  • tags (Struct) Required

  • cost_tag_keys (string) Repeated Required

  • cost_additional_info_keys (string) Repeated Required

  • cost_data_keys (string) Repeated Required

  • data_source_account_count (int32) Required

  • connected_workspace_count (int32) Required

  • resource_group (ResourceGroup) Required

  • domain_id (string) Required

  • workspace_id (string) Required

  • created_at (string) Required

  • last_synchronized_at (string) Required


DataSourceQuery #

  • workspace_id (string) Required

  • query (Query)

  • data_source_id (string)

  • name (string)

  • state (string)

  • data_source_type (DataSourceType)

  • provider (string)

  • connected_workspace_id (string)


DataSourceRequest #

  • data_source_id (string) Required


DataSourceStatQuery #

  • query (StatisticsQuery) Required


DataSourcesInfo #

  • results (DataSourceInfo) Repeated Required

  • total_count (int32) Required


DeregisterDataSourceRequest #

  • data_source_id (string) Required

  • cascade_delete_cost (bool)

    Default value is true. If true delete all cost data related to data_source_id


PluginInfo #

  • plugin_id (string) Required

  • version (string) Required

  • options (Struct) Required

  • metadata (Struct) Required

  • secret_data (Struct) Required

  • schema_id (string) Required

  • secret_id (string) Required

  • upgrade_mode (UpgradeMode) Required


RegisterDataSourceRequest #

  • name (string) Required

  • data_source_type (DataSourceType) Required

  • resource_group (ResourceGroup) Required

  • provider (string)

  • secret_type (SecretType)

  • secret_filter (SecretFilter)

  • template (Struct)

  • plugin_info (PluginInfo)

  • tags (Struct)

  • workspace_id (string)


SecretFilter #

  • state (SecretFilterState) Required

  • secrets (string) Repeated Required

  • service_accounts (string) Repeated Required

  • schemas (string) Repeated Required


SyncDataSourceRequest #

  • data_source_id (string) Required

  • start (string)

  • no_preload_cache (bool)


UpdateDataSourcePluginRequest #

  • data_source_id (string) Required

  • version (string)

  • options (Struct)

  • upgrade_mode (UpgradeMode)


UpdateDataSourceRequest #

  • data_source_id (string) Required

  • name (string)

  • secret_filter (SecretFilter)

  • template (Struct)

  • tags (Struct)


UpdateSecretDataSourceRequest #

  • data_source_id (string) Required

  • secret_schema_id (string) Required

  • secret_data (Struct) Required


Calendar May 17, 2024
Edit Edit this page