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:

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

{{< tabs " register " >}}

{{< tab "Request Example" >}}

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)

{{< highlight json >}} { "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"} } {{< /highlight >}} {{< /tab >}}

{{< tab "Response Example" >}}

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

{{< highlight json >}} { "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" } {{< /highlight >}} {{< /tab >}}

{{< /tabs >}}

update

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

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

{{< tabs " update " >}}

{{< tab "Request Example" >}}

UpdateDataSourceRequest

  • data_source_id (string) Required

  • name (string)

  • secret_filter (SecretFilter)

  • template (Struct)

  • tags (Struct)

{{< highlight json >}} { "data_source_id": "ds-085d1e872789", "name": "AWS HyperBilling Data Source test2", "tags": { "type": "test" } } {{< /highlight >}} {{< /tab >}}

{{< tab "Response Example" >}}

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

{{< highlight json >}} { "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" } {{< /highlight >}} {{< /tab >}}

{{< /tabs >}}

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

{{< tabs " update_plugin " >}}

{{< tab "Request Example" >}}

UpdateDataSourcePluginRequest

  • data_source_id (string) Required

  • version (string)

  • options (Struct)

  • upgrade_mode (UpgradeMode)

{{< highlight json >}} { "data_source_id": "ds-085d1e872789", "version": "1.0.4", "options": {}, "upgrade_mode": "AUTO" } {{< /highlight >}} {{< /tab >}}

{{< tab "Response Example" >}}

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

{{< highlight json >}} { "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" } {{< /highlight >}} {{< /tab >}}

{{< /tabs >}}

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

{{< tabs " update_secret_data " >}}

{{< tab "Response Example" >}}

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

{{< highlight json >}} { "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" } {{< /highlight >}} {{< /tab >}}

{{< /tabs >}}

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

{{< tabs " verify_plugin " >}}

{{< tab "Request Example" >}}

DataSourceRequest

  • data_source_id (string) Required

{{< highlight json >}} { "data_source_id": "ds-085d1e872789" } {{< /highlight >}} {{< /tab >}}

{{< /tabs >}}

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

{{< tabs " enable " >}}

{{< tab "Request Example" >}}

DataSourceRequest

  • data_source_id (string) Required

{{< highlight json >}} { "data_source_id": "ds-085d1e872789" } {{< /highlight >}} {{< /tab >}}

{{< tab "Response Example" >}}

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

{{< highlight json >}} { "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" } {{< /highlight >}} {{< /tab >}}

{{< /tabs >}}

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

{{< tabs " disable " >}}

{{< tab "Request Example" >}}

DataSourceRequest

  • data_source_id (string) Required

{{< highlight json >}} { "data_source_id": "ds-085d1e872789" } {{< /highlight >}} {{< /tab >}}

{{< tab "Response Example" >}}

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

{{< highlight json >}} { "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" } {{< /highlight >}} {{< /tab >}}

{{< /tabs >}}

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

{{< tabs " deregister " >}}

{{< tab "Request Example" >}}

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

{{< highlight json >}} { "data_source_id": "ds-085d1e872789", "cascade_delete_cost": true, "domain_id": "domain-085d1e872789" } {{< /highlight >}} {{< /tab >}}

{{< /tabs >}}

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

{{< tabs " get " >}}

{{< tab "Request Example" >}}

DataSourceRequest

  • data_source_id (string) Required

{{< highlight json >}} { "data_source_id": "ds-085d1e872789" } {{< /highlight >}} {{< /tab >}}

{{< tab "Response Example" >}}

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

{{< highlight json >}} { "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" } {{< /highlight >}} {{< /tab >}}

{{< /tabs >}}

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

{{< tabs " list " >}}

{{< tab "Request Example" >}}

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)

{{< highlight json >}} { "query": {} } {{< /highlight >}} {{< /tab >}}

{{< tab "Response Example" >}}

DataSourcesInfo

  • results (DataSourceInfo) Repeated Required

  • total_count (int32) Required

{{< highlight json >}} { "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 } {{< /highlight >}} {{< /tab >}}

{{< /tabs >}}

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

Last updated