diff --git a/examples/v1/usage-metering/GetUsageSummary.rb b/examples/v1/usage-metering/GetUsageSummary.rb index 0fd9049164f2..3bb7c8890877 100644 --- a/examples/v1/usage-metering/GetUsageSummary.rb +++ b/examples/v1/usage-metering/GetUsageSummary.rb @@ -1,5 +1,43 @@ # Get usage across your account returns "OK" response require "datadog_api_client" -api_instance = DatadogAPIClient::V1::UsageMeteringAPI.new -p api_instance.get_usage_summary("2021-11-11T11:11:11.111+00:00") + +# Step 1: fetch every field name at each response level. +fields_api = DatadogAPIClient::V2::UsageMeteringAPI.new +fields_resp = fields_api.get_usage_summary_available_fields +attrs = fields_resp.data.attributes +response_fields = attrs.response_fields || [] +date_fields = attrs.date_fields || [] +date_org_fields = attrs.date_org_fields || [] + +# Step 2: call get_usage_summary with org details included. +usage_api = DatadogAPIClient::V1::UsageMeteringAPI.new +resp = usage_api.get_usage_summary( + "2021-11-11T11:11:11.111+00:00", + include_org_details: true +) + +# Layer 1 — top-level additionalProperties on the response object. +response_fields.each do |field| + key = field.to_sym + value = resp.additional_properties[key] + puts "response.#{field}: #{value}" unless value.nil? +end + +# Layer 2 — per-date additionalProperties. +(resp.usage || []).each do |date_entry| + date_fields.each do |field| + key = field.to_sym + value = date_entry.additional_properties[key] + puts "date(#{date_entry.date}).#{field}: #{value}" unless value.nil? + end + + # Layer 3 — per-org additionalProperties inside each date. + (date_entry.orgs || []).each do |org| + date_org_fields.each do |field| + key = field.to_sym + value = org.additional_properties[key] + puts "date(#{date_entry.date}).org(#{org.name}).#{field}: #{value}" unless value.nil? + end + end +end diff --git a/examples/v2/usage-metering/GetUsageSummaryAvailableFields.rb b/examples/v2/usage-metering/GetUsageSummaryAvailableFields.rb index 7ce7873d98c4..8d99a89298ff 100644 --- a/examples/v2/usage-metering/GetUsageSummaryAvailableFields.rb +++ b/examples/v2/usage-metering/GetUsageSummaryAvailableFields.rb @@ -1,5 +1,16 @@ -# Get available fields for usage summary returns "OK." response +# Get available fields for usage summary returns "OK" response require "datadog_api_client" + api_instance = DatadogAPIClient::V2::UsageMeteringAPI.new -p api_instance.get_usage_summary_available_fields() +resp = api_instance.get_usage_summary_available_fields +attrs = resp.data.attributes + +puts "response_fields (#{attrs.response_fields.length}):" +attrs.response_fields.each { |f| puts " #{f}" } + +puts "date_fields (#{attrs.date_fields.length}):" +attrs.date_fields.each { |f| puts " #{f}" } + +puts "date_org_fields (#{attrs.date_org_fields.length}):" +attrs.date_org_fields.each { |f| puts " #{f}" }