diff --git a/.generator/schemas/v1/openapi.yaml b/.generator/schemas/v1/openapi.yaml index 1a0f742ff687..e9a5dfa9bc9c 100644 --- a/.generator/schemas/v1/openapi.yaml +++ b/.generator/schemas/v1/openapi.yaml @@ -24110,6 +24110,7 @@ components: format: int64 type: integer type: object + x-keep-typed-in-additional-properties: true UsageSummaryDateOrg: description: |- Global hourly report of all data billed by Datadog for a given organization. @@ -25429,6 +25430,7 @@ components: format: int64 type: integer type: object + x-keep-typed-in-additional-properties: true UsageSummaryResponse: description: |- Response summarizing all usage aggregated across the months in the request for @@ -26776,6 +26778,7 @@ components: format: int64 type: integer type: object + x-keep-typed-in-additional-properties: true UsageSyntheticsAPIHour: description: Number of Synthetics API tests run for each hour for a given organization. properties: diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 92c1c1fc720d..607e2e287b54 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -215,6 +215,16 @@ components: required: true schema: type: string + ApplicationSecurityServiceNameParam: + description: |- + The name of the service to retrieve Application Security details for. + Returns all matching services across environments. + example: web-store + in: path + name: service_filter + required: true + schema: + type: string ApplicationSecurityWafCustomRuleIDParam: description: The ID of the custom rule. example: 3b5-v82-ns6 @@ -8309,6 +8319,303 @@ components: required: - data type: object + ApplicationSecurityServiceAttributes: + description: Application Security details describing a service in a given environment. + properties: + agent_versions: + description: The Datadog Agent versions reporting for the service. + example: + - 7.50.0 + items: + description: A Datadog Agent version reporting for the service. + example: 7.50.0 + type: string + type: array + app_type: + description: The application type of the service, such as `web` or `serverless`. + example: web + type: string + asm_threat_compatible: + description: Whether the service is compatible with Application Security Management (Threats). + example: true + type: boolean + backend_waf_event_count: + description: The number of backend WAF events detected for the service. + example: 10 + format: int64 + type: integer + business_logic: + description: The enabled business logic detection rules for the service. + example: + - users.login.success + items: + description: A business logic detection rule enabled for the service. + example: users.login.success + type: string + type: array + color: + deprecated: true + description: "Deprecated: a display color associated with the service in the UI." + example: "" + type: string + env: + description: The environment the service runs in. + example: prod + type: string + event_count: + description: The number of Application Security events detected for the service. + example: 42 + format: int64 + type: integer + event_trend: + deprecated: true + description: "Deprecated: the trend of Application Security events over time." + example: + - 0 + items: + description: A point in the Application Security events trend. + example: 0 + format: int64 + type: integer + type: array + has_appsec_enabled: + description: Whether Application Security Management (Threats) is enabled for the service. + example: true + type: boolean + hits: + deprecated: true + description: "Deprecated: the number of hits for the service." + example: 0 + format: int64 + type: integer + iast_product_activation: + description: Whether Interactive Application Security Testing (IAST) is enabled for the service. + example: false + type: boolean + iast_product_compatibility: + description: The Interactive Application Security Testing (IAST) compatibility status of the service. + example: compatible + type: string + iast_product_compatibility_reasons: + description: The reasons explaining the Interactive Application Security Testing (IAST) compatibility status. + example: + - service_not_compatible + items: + description: A reason explaining the Interactive Application Security Testing (IAST) compatibility status. + example: service_not_compatible + type: string + type: array + languages: + description: The programming languages detected for the service. + example: + - go + items: + description: A programming language detected for the service. + example: go + type: string + type: array + last_ingested_spans: + description: The Unix timestamp, in seconds, of the last ingested span for the service. + example: 1610000000 + format: int64 + type: integer + rc_capabilities: + description: The Remote Configuration capabilities reported by the service. + example: + - ASM_DD_RULES + items: + description: A Remote Configuration capability reported by the service. + example: ASM_DD_RULES + type: string + type: array + recommended_business_logic: + description: The recommended business logic detection rules for the service. + example: + - users.login.success + items: + description: A recommended business logic detection rule for the service. + example: users.login.success + type: string + type: array + risk_product_activation: + description: Whether Software Composition Analysis (SCA) is enabled for the service. + example: false + type: boolean + risk_product_compatibility: + description: The Software Composition Analysis (SCA) compatibility status of the service. + example: compatible + type: string + risk_product_compatibility_reasons: + description: The reasons explaining the Software Composition Analysis (SCA) compatibility status. + example: + - service_not_compatible + items: + description: A reason explaining the Software Composition Analysis (SCA) compatibility status. + example: service_not_compatible + type: string + type: array + rules_version: + description: The WAF rules versions applied to the service. + example: + - 1.13.0 + items: + description: A WAF rules version applied to the service. + example: 1.13.0 + type: string + type: array + service: + description: The name of the service. + example: web-store + type: string + signal_count: + deprecated: true + description: "Deprecated: the number of security signals for the service." + example: 0 + format: int64 + type: integer + signal_trend: + deprecated: true + description: "Deprecated: the trend of security signals over time." + example: + - 0 + items: + description: A point in the security signals trend. + example: 0 + format: int64 + type: integer + type: array + source: + description: The data sources that contributed information about the service. + example: + - services-activity + items: + description: A data source that contributed information about the service. + example: services-activity + type: string + type: array + teams: + description: The teams that own the service. + example: + - security-team + items: + description: A team that owns the service. + example: security-team + type: string + type: array + tracer_versions: + description: The Datadog tracing library versions reporting for the service. + example: + - 1.60.0 + items: + description: A Datadog tracing library version reporting for the service. + example: 1.60.0 + type: string + type: array + vm-activation: + description: The Vulnerability Management activation status of the service. + example: enabled + type: string + vuln_critical_count: + deprecated: true + description: "Deprecated: the number of critical-severity vulnerabilities for the service." + example: 0 + format: int64 + type: integer + vuln_high_count: + deprecated: true + description: "Deprecated: the number of high-severity vulnerabilities for the service." + example: 0 + format: int64 + type: integer + without_filter_services: + description: The total number of services available without applying the service filter. + example: 0 + format: int64 + type: integer + required: + - service + - env + - app_type + - has_appsec_enabled + - asm_threat_compatible + - languages + - teams + - event_count + - backend_waf_event_count + - risk_product_activation + - risk_product_compatibility + - risk_product_compatibility_reasons + - iast_product_activation + - iast_product_compatibility + - iast_product_compatibility_reasons + - vm-activation + - agent_versions + - tracer_versions + - rules_version + - rc_capabilities + - source + - last_ingested_spans + - business_logic + - recommended_business_logic + - without_filter_services + - color + - event_trend + - signal_trend + - signal_count + - hits + - vuln_high_count + - vuln_critical_count + type: object + ApplicationSecurityServiceResource: + description: A JSON:API resource describing a service and its Application Security details. + properties: + attributes: + $ref: "#/components/schemas/ApplicationSecurityServiceAttributes" + id: + description: The unique identifier of the service, formatted as `_`. + example: web-store_prod + type: string + type: + $ref: "#/components/schemas/ApplicationSecurityServiceType" + required: + - id + - type + - attributes + type: object + ApplicationSecurityServiceType: + default: service_env + description: The type of the resource. The value should always be `service_env`. + enum: + - service_env + example: service_env + type: string + x-enum-varnames: + - SERVICE_ENV + ApplicationSecurityServicesMetadata: + description: Metadata returned alongside the list of services. + properties: + num_services_with_appsec: + description: The number of services with Application Security Management (Threats) enabled. + example: 1 + format: int64 + type: integer + required: + - num_services_with_appsec + type: object + ApplicationSecurityServicesResponse: + description: Response object containing the list of services matching the requested name. + properties: + data: + description: The list of services matching the requested name. + items: + $ref: "#/components/schemas/ApplicationSecurityServiceResource" + type: array + meta: + $ref: "#/components/schemas/ApplicationSecurityServicesMetadata" + required: + - data + - meta + type: object ApplicationSecurityWafCustomRuleAction: description: The definition of `ApplicationSecurityWafCustomRuleAction` object. properties: @@ -54925,6 +55232,35 @@ components: required: - data type: object + ListWorkflowsResponse: + description: The response object for a listing workflows request. + properties: + data: + description: A list of workflows. + items: + $ref: "#/components/schemas/WorkflowListItem" + type: array + meta: + $ref: "#/components/schemas/ListWorkflowsResponseMeta" + type: object + ListWorkflowsResponseMeta: + description: Metadata for a List Workflows response. + properties: + page: + $ref: "#/components/schemas/ListWorkflowsResponseMetaPage" + type: object + ListWorkflowsResponseMetaPage: + description: Pagination metadata for a List Workflows response. + properties: + totalCount: + description: The total number of workflows in the organization. + format: int64 + type: integer + totalFilteredCount: + description: The total number of workflows matching the applied filters. + format: int64 + type: integer + type: object Log: description: Object description of a log after being processed and stored by Datadog. properties: @@ -106265,6 +106601,58 @@ components: format: int64 type: integer type: object + WorkflowListItem: + description: A workflow returned by the list workflows endpoint. + properties: + attributes: + $ref: "#/components/schemas/WorkflowListItemAttributes" + id: + description: The workflow identifier. + readOnly: true + type: string + relationships: + $ref: "#/components/schemas/WorkflowDataRelationships" + type: + $ref: "#/components/schemas/WorkflowDataType" + required: + - type + - attributes + type: object + WorkflowListItemAttributes: + description: Attributes of a workflow returned in a list response. + properties: + createdAt: + description: When the workflow was created. + format: date-time + readOnly: true + type: string + description: + description: Description of the workflow. + type: string + name: + description: Name of the workflow. + example: "My Workflow" + type: string + published: + description: Whether the workflow is published. Unpublished workflows can only be run manually. Automatic triggers such as Schedule do not fire until the workflow is published. + type: boolean + spec: + $ref: "#/components/schemas/Spec" + nullable: true + tags: + description: Tags of the workflow. + items: + description: A tag string in `key:value` format. + type: string + type: array + updatedAt: + description: When the workflow was last updated. + format: date-time + readOnly: true + type: string + required: + - name + type: object WorkflowTriggerWrapper: description: "Schema for a Workflow-based trigger." properties: @@ -165752,6 +166140,87 @@ paths: x-unstable: |- **Note**: This endpoint is in public beta and it's subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/security/asm/services/{service_filter}: + get: + description: |- + Retrieve Application Security details for services matching the given name. + Returns Application Security activation, compatibility, and product enablement + information for each matching `(service, environment)` pair, along with a count + of services that have Application Security Management (Threats) enabled. + operationId: GetAsmServiceByName + parameters: + - $ref: "#/components/parameters/ApplicationSecurityServiceNameParam" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + agent_versions: + - 7.50.0 + app_type: web + asm_threat_compatible: true + backend_waf_event_count: 10 + business_logic: [] + color: "" + env: prod + event_count: 42 + event_trend: [] + has_appsec_enabled: true + hits: 0 + iast_product_activation: false + iast_product_compatibility: compatible + iast_product_compatibility_reasons: [] + languages: + - go + last_ingested_spans: 1610000000 + rc_capabilities: + - ASM_DD_RULES + recommended_business_logic: [] + risk_product_activation: false + risk_product_compatibility: compatible + risk_product_compatibility_reasons: [] + rules_version: + - 1.13.0 + service: web-store + signal_count: 0 + signal_trend: [] + source: + - services-activity + teams: + - security-team + tracer_versions: + - 1.60.0 + vm-activation: enabled + vuln_critical_count: 0 + vuln_high_count: 0 + without_filter_services: 0 + id: web-store_prod + type: service_env + meta: + num_services_with_appsec: 1 + schema: + $ref: "#/components/schemas/ApplicationSecurityServicesResponse" + description: OK + "403": + $ref: "#/components/responses/NotAuthorizedResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get Application Security details for a service + tags: + - "Application Security" + "x-permission": + operator: OR + permissions: + - apm_service_catalog_read + - appsec_protect_read + - apm_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/security/cloud_workload/policy/download: get: description: |- @@ -188385,6 +188854,120 @@ paths: - manage_log_reports - product_analytics_saved_widgets_write /api/v2/workflows: + get: + description: List all workflows in your organization. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). + operationId: ListWorkflows + parameters: + - description: The maximum number of workflows to return per page. + example: 50 + in: query + name: limit + required: false + schema: + default: 50 + format: int64 + type: integer + - description: The page number to return, starting from 0. + example: 0 + in: query + name: page + required: false + schema: + default: 0 + format: int64 + type: integer + - description: "The sort order for the returned workflows. Provide a comma-separated list of fields, each optionally prefixed with `-` for descending order. Supported fields are `name`, `createdAt`, `updatedAt`, `creatorName`, `ownerName`, and `lastExecutedAt`." + example: "-updatedAt" + in: query + name: sort + required: false + schema: + type: string + - description: "A search query used to filter the returned workflows. The query performs a case-insensitive substring match against each workflow's name, creator name, and handle. If the query contains a colon (for example, `team:infra`), the query is treated as a `key:value` tag filter." + example: deploy + in: query + name: filter[query] + required: false + schema: + type: string + - description: Filters the returned workflows by one or more trigger types, such as `monitor`, `schedule`, or `githubWebhook`. To specify the multiple types, repeat this parameter. + example: + - monitor + explode: true + in: query + name: filter[triggerIds] + required: false + schema: + items: + type: string + type: array + - description: Whether to include unpublished workflows in the response. + in: query + name: filter[includeUnpublished] + required: false + schema: + default: false + type: boolean + - description: Whether to include the full spec of each workflow in the response. When `false` (the default), each workflow's `spec` is returned as `null`. + in: query + name: filter[includeSpecs] + required: false + schema: + default: false + type: boolean + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + createdAt: "2024-01-01T00:00:00+00:00" + description: A sample workflow. + name: Example Workflow + published: true + spec: {} + tags: + - team:infra + updatedAt: "2024-01-01T00:00:00+00:00" + id: 00000000-0000-0000-0000-000000000002 + relationships: + creator: + data: + id: 00000000-0000-0000-0000-000000000009 + type: users + owner: + data: + id: 00000000-0000-0000-0000-000000000009 + type: users + type: workflows + meta: + page: + totalCount: 1 + totalFilteredCount: 1 + schema: + $ref: "#/components/schemas/ListWorkflowsResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List workflows + tags: + - Workflow Automation + x-pagination: + limitParam: limit + pageParam: page + pageStart: 0 + resultsPath: data + "x-permission": + operator: OR + permissions: + - workflows_read post: description: Create a new workflow, returning the workflow ID. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). operationId: CreateWorkflow diff --git a/.generator/src/generator/templates/model_generic.j2 b/.generator/src/generator/templates/model_generic.j2 index 61bfcab4004a..8ebe035e1b7e 100644 --- a/.generator/src/generator/templates/model_generic.j2 +++ b/.generator/src/generator/templates/model_generic.j2 @@ -101,6 +101,11 @@ {%- endif %} end {%- endfor %} +{%- if model.get("x-keep-typed-in-additional-properties") %} +{%- for attr, definition in model.get("properties", {}).items() %} + self.additional_properties[:'{{ attr|attribute_name }}'] = self.{{ attr|attribute_name }} if attributes.key?(:'{{ attr|attribute_name }}') +{%- endfor %} +{%- endif %} end {%- set ns = namespace(hasValidation=False) %} diff --git a/cassettes/features/v2/workflow_automation/List-workflows-returns-OK-response-with-pagination.frozen b/cassettes/features/v2/workflow_automation/List-workflows-returns-OK-response-with-pagination.frozen new file mode 100644 index 000000000000..9c4802e3e5f1 --- /dev/null +++ b/cassettes/features/v2/workflow_automation/List-workflows-returns-OK-response-with-pagination.frozen @@ -0,0 +1 @@ +2026-06-01T21:52:42.662Z \ No newline at end of file diff --git a/cassettes/features/v2/workflow_automation/List-workflows-returns-OK-response-with-pagination.yml b/cassettes/features/v2/workflow_automation/List-workflows-returns-OK-response-with-pagination.yml new file mode 100644 index 000000000000..ffbdbda037c4 --- /dev/null +++ b/cassettes/features/v2/workflow_automation/List-workflows-returns-OK-response-with-pagination.yml @@ -0,0 +1,20 @@ +http_interactions: +- recorded_at: Mon, 01 Jun 2026 21:52:42 GMT + request: + body: null + headers: + Accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/workflows?filter%5Bquery%5D=Test-List_workflows_returns_OK_response_with_pagination-1780350762&limit=2&page=0 + response: + body: + encoding: UTF-8 + string: '{"data":[],"meta":{"page":{"totalCount":547,"totalFilteredCount":0}}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/workflow_automation/List-workflows-returns-OK-response.frozen b/cassettes/features/v2/workflow_automation/List-workflows-returns-OK-response.frozen new file mode 100644 index 000000000000..efce7c49296e --- /dev/null +++ b/cassettes/features/v2/workflow_automation/List-workflows-returns-OK-response.frozen @@ -0,0 +1 @@ +2026-06-01T20:36:33.245Z \ No newline at end of file diff --git a/cassettes/features/v2/workflow_automation/List-workflows-returns-OK-response.yml b/cassettes/features/v2/workflow_automation/List-workflows-returns-OK-response.yml new file mode 100644 index 000000000000..e4c157013ce9 --- /dev/null +++ b/cassettes/features/v2/workflow_automation/List-workflows-returns-OK-response.yml @@ -0,0 +1,109 @@ +http_interactions: +- recorded_at: Mon, 01 Jun 2026 20:36:33 GMT + request: + body: + encoding: UTF-8 + string: '{"data":{"attributes":{"name":"Cassette Workflow x-given","spec":{"steps":[{"actionId":"com.datadoghq.core.noop","name":"No_op"}],"triggers":[{"startStepNames":["No_op"],"workflowTrigger":{}}]}},"type":"workflows"}}' + headers: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/workflows + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"72ea47e5-3bf2-41a2-bf7b-1857908234b6","type":"workflows","attributes":{"createdAt":"2026-06-01T20:36:33.514948Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":{"triggers":[{"startStepNames":["No_op"],"workflowTrigger":{}}],"steps":[{"name":"No_op","actionId":"com.datadoghq.core.noop"}]},"tags":[],"updatedAt":"2026-06-01T20:36:33.514948Z"},"relationships":{"creator":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"users"}},"owner":{"data":{"id":"3ad549bf-eba0-11e9-a77a-0705486660d0","type":"users"}}}}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Mon, 01 Jun 2026 20:36:33 GMT + request: + body: null + headers: + Accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/workflows + response: + body: + encoding: UTF-8 + string: '{"data":[{"id":"72cfa149-f153-45bc-aad6-2f601b7bfd9b","type":"workflows","attributes":{"createdAt":"2025-06-25T11:21:13.41766Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-25T11:21:13.41766Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"fe8c24c3-6574-4cf9-a3ee-4d84dd9b4354","type":"workflows","attributes":{"createdAt":"2025-06-25T11:21:14.456399Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-25T11:21:14.456399Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"7049520d-e564-4f35-8955-1750577b508e","type":"workflows","attributes":{"createdAt":"2025-06-25T11:21:14.872733Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-25T11:21:14.872733Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"c0e61b1b-486a-498d-a6ef-5b18d713a022","type":"workflows","attributes":{"createdAt":"2025-07-28T11:14:25.070776Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-07-28T11:14:25.070776Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"ceaea4db-f9b7-4133-8049-734c20e08170","type":"workflows","attributes":{"createdAt":"2025-06-25T11:21:15.742156Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-25T11:21:15.742156Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"d5f402b6-c5b1-4d8f-ab32-b7102fb3ef5e","type":"workflows","attributes":{"createdAt":"2025-06-20T11:20:34.434583Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-20T11:20:34.434583Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"59006312-23ea-4467-9921-310d1a17c2d9","type":"workflows","attributes":{"createdAt":"2025-06-20T11:20:35.557523Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-20T11:20:35.557523Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"8e9f8221-5788-4f1a-a341-afe4a73e8d2d","type":"workflows","attributes":{"createdAt":"2025-06-20T11:20:35.915972Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-20T11:20:35.915972Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"73c21683-cf0b-4140-92b3-d3f1be896160","type":"workflows","attributes":{"createdAt":"2025-06-20T11:20:36.779377Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-20T11:20:36.779377Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"8cf1582b-d398-4d35-bbba-a4b957c3db30","type":"workflows","attributes":{"createdAt":"2025-05-21T11:16:44.847574Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-21T11:16:44.847574Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"58031916-ffdb-4021-8670-d78298875765","type":"workflows","attributes":{"createdAt":"2025-05-21T11:16:45.55826Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-21T11:16:45.55826Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"3b7de88e-731c-4d2f-80d9-32ed547dff86","type":"workflows","attributes":{"createdAt":"2025-05-21T11:16:45.777562Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-21T11:16:45.777562Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"a187147a-094a-443a-a811-7b106914ec96","type":"workflows","attributes":{"createdAt":"2025-05-21T11:16:46.261047Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-21T11:16:46.261047Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"b7c893dc-f694-41a7-aa2b-633ceca08c2f","type":"workflows","attributes":{"createdAt":"2025-07-02T11:22:01.701809Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-07-02T11:22:01.701809Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"1d598ddd-5b9b-4ab7-9f7a-5e2574404ec7","type":"workflows","attributes":{"createdAt":"2025-07-02T11:22:02.789201Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-07-02T11:22:02.789201Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"e8508f29-ced6-4f95-a348-2ac062177472","type":"workflows","attributes":{"createdAt":"2025-07-02T11:22:03.20927Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-07-02T11:22:03.20927Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"f6d3e46b-eeaf-4017-a865-e1f045deae3f","type":"workflows","attributes":{"createdAt":"2025-07-02T11:22:04.030122Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-07-02T11:22:04.030122Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"e5fe54aa-9e17-4200-a710-cd916bfd39db","type":"workflows","attributes":{"createdAt":"2025-06-24T11:13:41.595876Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-24T11:13:41.595876Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"615d90f0-3478-4748-b489-177a4e3e2b74","type":"workflows","attributes":{"createdAt":"2025-06-24T11:13:41.828316Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-24T11:13:41.828316Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"a7a049f3-4c58-4e30-8157-a3a9b3132843","type":"workflows","attributes":{"createdAt":"2025-06-24T11:13:41.921301Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-24T11:13:41.921301Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"a8a64e61-7a8e-46fb-83ae-4220c7aa33ca","type":"workflows","attributes":{"createdAt":"2025-06-24T11:13:42.204916Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-24T11:13:42.204916Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"a50f8797-df93-4227-968b-4a653602d405","type":"workflows","attributes":{"createdAt":"2025-06-03T11:15:35.801277Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-03T11:15:35.801277Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"5567b478-806b-4768-9a3f-2b4ac9ad04e4","type":"workflows","attributes":{"createdAt":"2025-06-03T11:15:36.152307Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-03T11:15:36.152307Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"7f306d13-6e65-4962-b89d-5acfe0ada98a","type":"workflows","attributes":{"createdAt":"2025-06-03T11:15:35.623566Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-03T11:15:35.623566Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"8e9be134-5307-451f-8e40-0cc2546b6ed2","type":"workflows","attributes":{"createdAt":"2025-06-03T11:15:35.127727Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-06-03T11:15:35.127727Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"98144b6c-fc26-4e13-9fd9-943619e791d8","type":"workflows","attributes":{"createdAt":"2025-09-23T11:13:25.508416Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-09-23T11:13:25.508416Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"f422939b-e916-46fc-ba26-d25e1dcd2c66","type":"workflows","attributes":{"createdAt":"2025-09-23T11:13:25.765614Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-09-23T11:13:25.765614Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"5480f5c0-6128-4a56-9801-37e2e44496db","type":"workflows","attributes":{"createdAt":"2025-05-20T11:16:34.563405Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-20T11:16:34.563405Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"f00c51f1-6b32-401a-8bd4-08e360f94278","type":"workflows","attributes":{"createdAt":"2025-05-20T11:16:33.073415Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-20T11:16:33.073415Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"27fae62b-27e0-4802-94f4-5fc2fdef43f7","type":"workflows","attributes":{"createdAt":"2025-05-20T11:16:33.978668Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-20T11:16:33.978668Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"c0ccd673-e34a-49dd-a16f-bac77817fa62","type":"workflows","attributes":{"createdAt":"2025-05-20T11:16:33.744349Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-20T11:16:33.744349Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"f7380a3f-dd8f-4811-ac33-3245e6ad7dec","type":"workflows","attributes":{"createdAt":"2025-05-28T11:13:45.369167Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-28T11:13:45.369167Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"03bda67d-2cee-4828-a152-b263085b59cd","type":"workflows","attributes":{"createdAt":"2025-05-22T11:13:37.2763Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-22T11:13:37.2763Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"06c78ee4-a4aa-402e-8940-63ef512490d8","type":"workflows","attributes":{"createdAt":"2025-05-22T11:13:36.897095Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-22T11:13:36.897095Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"7aa75a8b-17b9-4c7e-b5fa-194dcd5f54c9","type":"workflows","attributes":{"createdAt":"2025-05-22T11:13:36.579513Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-22T11:13:36.579513Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"81112f53-d69b-4139-8790-f2adf2d80260","type":"workflows","attributes":{"createdAt":"2025-05-22T11:13:36.994612Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-22T11:13:36.994612Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"ba03c9fa-aa23-436c-ac69-e20bde5fb108","type":"workflows","attributes":{"createdAt":"2025-05-28T11:13:45.553954Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-28T11:13:45.553954Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"cbe3cd7d-4902-4863-9aba-ac4cb9038995","type":"workflows","attributes":{"createdAt":"2025-05-28T11:13:45.659208Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-28T11:13:45.659208Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"4c1cc171-9757-4e67-874e-64c962ed5352","type":"workflows","attributes":{"createdAt":"2025-05-28T11:13:45.894752Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-28T11:13:45.894752Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"52bfc481-46b4-44c1-8392-a32f405c21be","type":"workflows","attributes":{"createdAt":"2025-07-03T11:21:31.639998Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-07-03T11:21:31.639998Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"a12f3d3d-2dfb-449f-b1da-9d73dcc1284f","type":"workflows","attributes":{"createdAt":"2025-05-26T11:16:57.708411Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-26T11:16:57.708411Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"5a3ee825-3f39-4842-978c-afb8c997ba76","type":"workflows","attributes":{"createdAt":"2025-05-30T11:19:54.84087Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-30T11:19:54.84087Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"5b6dc390-841e-46e2-ad18-29aa33cd0aa1","type":"workflows","attributes":{"createdAt":"2025-05-30T11:19:52.696163Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-30T11:19:52.696163Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"80d42530-2ef1-40bb-ba31-7c44a0159a92","type":"workflows","attributes":{"createdAt":"2025-05-27T11:17:22.645064Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-27T11:17:22.645064Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"a2d791d3-407a-468b-b1eb-f38676b238d9","type":"workflows","attributes":{"createdAt":"2025-05-26T11:16:56.170659Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-26T11:16:56.170659Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"08620ae9-44ed-43c3-9941-e3936f3fd68b","type":"workflows","attributes":{"createdAt":"2025-05-26T11:16:56.942366Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-26T11:16:56.942366Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"d3bba643-1ce2-44c3-8ccb-3ad7647ec64d","type":"workflows","attributes":{"createdAt":"2025-05-26T11:16:57.184285Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-26T11:16:57.184285Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"a7ba3c17-c21b-4e50-8109-ae258395fcf0","type":"workflows","attributes":{"createdAt":"2025-05-27T11:17:22.915147Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-27T11:17:22.915147Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"8222b63d-8c1d-49fd-b31a-f18c870785e8","type":"workflows","attributes":{"createdAt":"2025-05-27T11:17:23.444244Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-27T11:17:23.444244Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}},{"id":"cb5040a1-b989-41bf-9a4f-59c75c0523e0","type":"workflows","attributes":{"createdAt":"2025-05-27T11:17:21.869589Z","description":"","name":"Cassette + Workflow x-given","published":true,"spec":null,"tags":[],"updatedAt":"2025-05-27T11:17:21.869589Z"},"relationships":{"creator":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}},"owner":{"data":{"id":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","type":"users"}}}}],"meta":{"page":{"totalCount":548,"totalFilteredCount":548}}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +- recorded_at: Mon, 01 Jun 2026 20:36:33 GMT + request: + body: null + headers: + Accept: + - '*/*' + method: DELETE + uri: https://api.datadoghq.com/api/v2/workflows/72ea47e5-3bf2-41a2-bf7b-1857908234b6 + response: + body: + encoding: UTF-8 + string: '' + headers: {} + status: + code: 204 + message: No Content +recorded_with: VCR 6.0.0 diff --git a/examples/v2/application-security/GetAsmServiceByName.rb b/examples/v2/application-security/GetAsmServiceByName.rb new file mode 100644 index 000000000000..64fd840916b1 --- /dev/null +++ b/examples/v2/application-security/GetAsmServiceByName.rb @@ -0,0 +1,8 @@ +# Get Application Security details for a service returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.get_asm_service_by_name".to_sym] = true +end +api_instance = DatadogAPIClient::V2::ApplicationSecurityAPI.new +p api_instance.get_asm_service_by_name("service_filter") diff --git a/examples/v2/workflow-automation/ListWorkflows.rb b/examples/v2/workflow-automation/ListWorkflows.rb new file mode 100644 index 000000000000..08c104e576c8 --- /dev/null +++ b/examples/v2/workflow-automation/ListWorkflows.rb @@ -0,0 +1,5 @@ +# List workflows returns "OK" response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::WorkflowAutomationAPI.new +p api_instance.list_workflows() diff --git a/examples/v2/workflow-automation/ListWorkflows_71111569.rb b/examples/v2/workflow-automation/ListWorkflows_71111569.rb new file mode 100644 index 000000000000..5dfb9ee97a3f --- /dev/null +++ b/examples/v2/workflow-automation/ListWorkflows_71111569.rb @@ -0,0 +1,9 @@ +# List workflows returns "OK" response with pagination + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::WorkflowAutomationAPI.new +opts = { + filter_query: "Example-Workflow-Automation", + limit: 2, +} +api_instance.list_workflows_with_pagination(opts) { |item| puts item } diff --git a/features/scenarios_model_mapping.rb b/features/scenarios_model_mapping.rb index d3e0ad731b63..1e0b02b8a3de 100644 --- a/features/scenarios_model_mapping.rb +++ b/features/scenarios_model_mapping.rb @@ -4711,6 +4711,9 @@ "policy_id" => "String", "body" => "ApplicationSecurityPolicyUpdateRequest", }, + "v2.GetAsmServiceByName" => { + "service_filter" => "String", + }, "v2.ListCSMThreatsAgentRules" => { "policy_id" => "String", }, @@ -5858,6 +5861,15 @@ "uuid" => "UUID", "body" => "CreateOrUpdateWidgetRequest", }, + "v2.ListWorkflows" => { + "limit" => "Integer", + "page" => "Integer", + "sort" => "String", + "filter_query" => "String", + "filter_trigger_ids" => "Array", + "filter_include_unpublished" => "Boolean", + "filter_include_specs" => "Boolean", + }, "v2.CreateWorkflow" => { "body" => "CreateWorkflowRequest", }, diff --git a/features/v2/application_security.feature b/features/v2/application_security.feature index 4dbda1c46942..710a60641417 100644 --- a/features/v2/application_security.feature +++ b/features/v2/application_security.feature @@ -148,6 +148,14 @@ Feature: Application Security When the request is sent Then the response status is 204 OK + @generated @skip @team:DataDog/asm-backend + Scenario: Get Application Security details for a service returns "OK" response + Given operation "GetAsmServiceByName" enabled + And new "GetAsmServiceByName" request + And request contains "service_filter" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @team:DataDog/asm-backend Scenario: Get a WAF Policy returns "OK" response Given there is a valid "policy" in the system diff --git a/features/v2/undo.json b/features/v2/undo.json index b7bddb161788..32eeb14e332b 100644 --- a/features/v2/undo.json +++ b/features/v2/undo.json @@ -6883,6 +6883,12 @@ "type": "safe" } }, + "GetAsmServiceByName": { + "tag": "Application Security", + "undo": { + "type": "safe" + } + }, "DownloadCloudWorkloadPolicyFile": { "tag": "CSM Threats", "undo": { @@ -9228,6 +9234,12 @@ "type": "safe" } }, + "ListWorkflows": { + "tag": "Workflow Automation", + "undo": { + "type": "safe" + } + }, "CreateWorkflow": { "tag": "Workflow Automation", "undo": { diff --git a/features/v2/workflow_automation.feature b/features/v2/workflow_automation.feature index df51d5013900..96b0adf4e22b 100644 --- a/features/v2/workflow_automation.feature +++ b/features/v2/workflow_automation.feature @@ -142,6 +142,28 @@ Feature: Workflow Automation When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/workflow-automation-dev + Scenario: List workflows returns "Bad Request" response + Given new "ListWorkflows" request + When the request is sent + Then the response status is 400 Bad Request + + @team:DataDog/workflow-automation-dev + Scenario: List workflows returns "OK" response + Given there is a valid "workflow" in the system + And new "ListWorkflows" request + When the request is sent + Then the response status is 200 OK + + @replay-only @skip-validation @team:DataDog/workflow-automation-dev @with-pagination + Scenario: List workflows returns "OK" response with pagination + Given new "ListWorkflows" request + And request contains "filter[query]" parameter with value "{{ unique }}" + And request contains "limit" parameter with value 2 + When the request with pagination is sent + Then the response status is 200 OK + And the response has 0 items + @team:DataDog/workflow-automation-dev Scenario: Update an existing Workflow returns "Bad request" response Given there is a valid "workflow" in the system diff --git a/lib/datadog_api_client/configuration.rb b/lib/datadog_api_client/configuration.rb index 260c407d8944..13e999f11dfc 100644 --- a/lib/datadog_api_client/configuration.rb +++ b/lib/datadog_api_client/configuration.rb @@ -611,6 +611,7 @@ def initialize "v2.update_connection": false, "v2.get_pruned_trace_by_id": false, "v2.get_trace_by_id": false, + "v2.get_asm_service_by_name": false, "v2.create_report_schedule": false, "v2.patch_report_schedule": false, "v2.delete_sourcemaps": false, diff --git a/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index 7eb6c8c9119a..ba2bd1963c98 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -1383,6 +1383,11 @@ def overrides "v2.application_security_policy_update_attributes" => "ApplicationSecurityPolicyUpdateAttributes", "v2.application_security_policy_update_data" => "ApplicationSecurityPolicyUpdateData", "v2.application_security_policy_update_request" => "ApplicationSecurityPolicyUpdateRequest", + "v2.application_security_service_attributes" => "ApplicationSecurityServiceAttributes", + "v2.application_security_service_resource" => "ApplicationSecurityServiceResource", + "v2.application_security_services_metadata" => "ApplicationSecurityServicesMetadata", + "v2.application_security_services_response" => "ApplicationSecurityServicesResponse", + "v2.application_security_service_type" => "ApplicationSecurityServiceType", "v2.application_security_waf_custom_rule_action" => "ApplicationSecurityWafCustomRuleAction", "v2.application_security_waf_custom_rule_action_action" => "ApplicationSecurityWafCustomRuleActionAction", "v2.application_security_waf_custom_rule_action_parameters" => "ApplicationSecurityWafCustomRuleActionParameters", @@ -4012,6 +4017,9 @@ def overrides "v2.list_teams_sort" => "ListTeamsSort", "v2.list_vulnerabilities_response" => "ListVulnerabilitiesResponse", "v2.list_vulnerable_assets_response" => "ListVulnerableAssetsResponse", + "v2.list_workflows_response" => "ListWorkflowsResponse", + "v2.list_workflows_response_meta" => "ListWorkflowsResponseMeta", + "v2.list_workflows_response_meta_page" => "ListWorkflowsResponseMetaPage", "v2.llm_obs_annotated_interaction_by_trace_item" => "LLMObsAnnotatedInteractionByTraceItem", "v2.llm_obs_annotated_interaction_item" => "LLMObsAnnotatedInteractionItem", "v2.llm_obs_annotated_interactions_by_trace_data_attributes_response" => "LLMObsAnnotatedInteractionsByTraceDataAttributesResponse", @@ -7647,6 +7655,8 @@ def overrides "v2.workflow_list_instances_response" => "WorkflowListInstancesResponse", "v2.workflow_list_instances_response_meta" => "WorkflowListInstancesResponseMeta", "v2.workflow_list_instances_response_meta_page" => "WorkflowListInstancesResponseMetaPage", + "v2.workflow_list_item" => "WorkflowListItem", + "v2.workflow_list_item_attributes" => "WorkflowListItemAttributes", "v2.workflow_trigger_wrapper" => "WorkflowTriggerWrapper", "v2.workflow_user_relationship" => "WorkflowUserRelationship", "v2.workflow_user_relationship_data" => "WorkflowUserRelationshipData", diff --git a/lib/datadog_api_client/v1/models/usage_summary_date.rb b/lib/datadog_api_client/v1/models/usage_summary_date.rb index 7f8170262f06..0d695534e168 100644 --- a/lib/datadog_api_client/v1/models/usage_summary_date.rb +++ b/lib/datadog_api_client/v1/models/usage_summary_date.rb @@ -2806,6 +2806,307 @@ def initialize(attributes = {}) if attributes.key?(:'workflow_executions_usage_sum') self.workflow_executions_usage_sum = attributes[:'workflow_executions_usage_sum'] end + self.additional_properties[:'agent_host_top99p'] = self.agent_host_top99p if attributes.key?(:'agent_host_top99p') + self.additional_properties[:'ai_credits_agent_builder_ai_credits_sum'] = self.ai_credits_agent_builder_ai_credits_sum if attributes.key?(:'ai_credits_agent_builder_ai_credits_sum') + self.additional_properties[:'ai_credits_bits_assistant_ai_credits_sum'] = self.ai_credits_bits_assistant_ai_credits_sum if attributes.key?(:'ai_credits_bits_assistant_ai_credits_sum') + self.additional_properties[:'ai_credits_bits_dev_ai_credits_sum'] = self.ai_credits_bits_dev_ai_credits_sum if attributes.key?(:'ai_credits_bits_dev_ai_credits_sum') + self.additional_properties[:'ai_credits_bits_sre_ai_credits_sum'] = self.ai_credits_bits_sre_ai_credits_sum if attributes.key?(:'ai_credits_bits_sre_ai_credits_sum') + self.additional_properties[:'ai_credits_sum'] = self.ai_credits_sum if attributes.key?(:'ai_credits_sum') + self.additional_properties[:'apm_azure_app_service_host_top99p'] = self.apm_azure_app_service_host_top99p if attributes.key?(:'apm_azure_app_service_host_top99p') + self.additional_properties[:'apm_devsecops_host_top99p'] = self.apm_devsecops_host_top99p if attributes.key?(:'apm_devsecops_host_top99p') + self.additional_properties[:'apm_enterprise_standalone_hosts_top99p'] = self.apm_enterprise_standalone_hosts_top99p if attributes.key?(:'apm_enterprise_standalone_hosts_top99p') + self.additional_properties[:'apm_fargate_count_avg'] = self.apm_fargate_count_avg if attributes.key?(:'apm_fargate_count_avg') + self.additional_properties[:'apm_host_top99p'] = self.apm_host_top99p if attributes.key?(:'apm_host_top99p') + self.additional_properties[:'apm_pro_standalone_hosts_top99p'] = self.apm_pro_standalone_hosts_top99p if attributes.key?(:'apm_pro_standalone_hosts_top99p') + self.additional_properties[:'appsec_fargate_count_avg'] = self.appsec_fargate_count_avg if attributes.key?(:'appsec_fargate_count_avg') + self.additional_properties[:'asm_serverless_sum'] = self.asm_serverless_sum if attributes.key?(:'asm_serverless_sum') + self.additional_properties[:'audit_logs_lines_indexed_sum'] = self.audit_logs_lines_indexed_sum if attributes.key?(:'audit_logs_lines_indexed_sum') + self.additional_properties[:'audit_trail_enabled_hwm'] = self.audit_trail_enabled_hwm if attributes.key?(:'audit_trail_enabled_hwm') + self.additional_properties[:'audit_trail_event_forwarding_events_sum'] = self.audit_trail_event_forwarding_events_sum if attributes.key?(:'audit_trail_event_forwarding_events_sum') + self.additional_properties[:'avg_profiled_fargate_tasks'] = self.avg_profiled_fargate_tasks if attributes.key?(:'avg_profiled_fargate_tasks') + self.additional_properties[:'aws_host_top99p'] = self.aws_host_top99p if attributes.key?(:'aws_host_top99p') + self.additional_properties[:'aws_lambda_func_count'] = self.aws_lambda_func_count if attributes.key?(:'aws_lambda_func_count') + self.additional_properties[:'aws_lambda_invocations_sum'] = self.aws_lambda_invocations_sum if attributes.key?(:'aws_lambda_invocations_sum') + self.additional_properties[:'azure_app_service_top99p'] = self.azure_app_service_top99p if attributes.key?(:'azure_app_service_top99p') + self.additional_properties[:'billable_ingested_bytes_sum'] = self.billable_ingested_bytes_sum if attributes.key?(:'billable_ingested_bytes_sum') + self.additional_properties[:'bits_ai_investigations_sum'] = self.bits_ai_investigations_sum if attributes.key?(:'bits_ai_investigations_sum') + self.additional_properties[:'browser_rum_lite_session_count_sum'] = self.browser_rum_lite_session_count_sum if attributes.key?(:'browser_rum_lite_session_count_sum') + self.additional_properties[:'browser_rum_replay_session_count_sum'] = self.browser_rum_replay_session_count_sum if attributes.key?(:'browser_rum_replay_session_count_sum') + self.additional_properties[:'browser_rum_units_sum'] = self.browser_rum_units_sum if attributes.key?(:'browser_rum_units_sum') + self.additional_properties[:'ccm_anthropic_spend_last'] = self.ccm_anthropic_spend_last if attributes.key?(:'ccm_anthropic_spend_last') + self.additional_properties[:'ccm_aws_spend_last'] = self.ccm_aws_spend_last if attributes.key?(:'ccm_aws_spend_last') + self.additional_properties[:'ccm_azure_spend_last'] = self.ccm_azure_spend_last if attributes.key?(:'ccm_azure_spend_last') + self.additional_properties[:'ccm_confluent_spend_last'] = self.ccm_confluent_spend_last if attributes.key?(:'ccm_confluent_spend_last') + self.additional_properties[:'ccm_databricks_spend_last'] = self.ccm_databricks_spend_last if attributes.key?(:'ccm_databricks_spend_last') + self.additional_properties[:'ccm_elastic_spend_last'] = self.ccm_elastic_spend_last if attributes.key?(:'ccm_elastic_spend_last') + self.additional_properties[:'ccm_fastly_spend_last'] = self.ccm_fastly_spend_last if attributes.key?(:'ccm_fastly_spend_last') + self.additional_properties[:'ccm_gcp_spend_last'] = self.ccm_gcp_spend_last if attributes.key?(:'ccm_gcp_spend_last') + self.additional_properties[:'ccm_github_spend_last'] = self.ccm_github_spend_last if attributes.key?(:'ccm_github_spend_last') + self.additional_properties[:'ccm_mongodb_spend_last'] = self.ccm_mongodb_spend_last if attributes.key?(:'ccm_mongodb_spend_last') + self.additional_properties[:'ccm_oci_spend_last'] = self.ccm_oci_spend_last if attributes.key?(:'ccm_oci_spend_last') + self.additional_properties[:'ccm_openai_spend_last'] = self.ccm_openai_spend_last if attributes.key?(:'ccm_openai_spend_last') + self.additional_properties[:'ccm_snowflake_spend_last'] = self.ccm_snowflake_spend_last if attributes.key?(:'ccm_snowflake_spend_last') + self.additional_properties[:'ccm_spend_monitored_ent_last'] = self.ccm_spend_monitored_ent_last if attributes.key?(:'ccm_spend_monitored_ent_last') + self.additional_properties[:'ccm_spend_monitored_pro_last'] = self.ccm_spend_monitored_pro_last if attributes.key?(:'ccm_spend_monitored_pro_last') + self.additional_properties[:'ccm_twilio_spend_last'] = self.ccm_twilio_spend_last if attributes.key?(:'ccm_twilio_spend_last') + self.additional_properties[:'ci_pipeline_indexed_spans_sum'] = self.ci_pipeline_indexed_spans_sum if attributes.key?(:'ci_pipeline_indexed_spans_sum') + self.additional_properties[:'ci_test_indexed_spans_sum'] = self.ci_test_indexed_spans_sum if attributes.key?(:'ci_test_indexed_spans_sum') + self.additional_properties[:'ci_visibility_itr_committers_hwm'] = self.ci_visibility_itr_committers_hwm if attributes.key?(:'ci_visibility_itr_committers_hwm') + self.additional_properties[:'ci_visibility_pipeline_committers_hwm'] = self.ci_visibility_pipeline_committers_hwm if attributes.key?(:'ci_visibility_pipeline_committers_hwm') + self.additional_properties[:'ci_visibility_test_committers_hwm'] = self.ci_visibility_test_committers_hwm if attributes.key?(:'ci_visibility_test_committers_hwm') + self.additional_properties[:'cloud_cost_management_aws_host_count_avg'] = self.cloud_cost_management_aws_host_count_avg if attributes.key?(:'cloud_cost_management_aws_host_count_avg') + self.additional_properties[:'cloud_cost_management_azure_host_count_avg'] = self.cloud_cost_management_azure_host_count_avg if attributes.key?(:'cloud_cost_management_azure_host_count_avg') + self.additional_properties[:'cloud_cost_management_gcp_host_count_avg'] = self.cloud_cost_management_gcp_host_count_avg if attributes.key?(:'cloud_cost_management_gcp_host_count_avg') + self.additional_properties[:'cloud_cost_management_host_count_avg'] = self.cloud_cost_management_host_count_avg if attributes.key?(:'cloud_cost_management_host_count_avg') + self.additional_properties[:'cloud_cost_management_oci_host_count_avg'] = self.cloud_cost_management_oci_host_count_avg if attributes.key?(:'cloud_cost_management_oci_host_count_avg') + self.additional_properties[:'cloud_siem_events_sum'] = self.cloud_siem_events_sum if attributes.key?(:'cloud_siem_events_sum') + self.additional_properties[:'cloud_siem_indexed_logs_sum'] = self.cloud_siem_indexed_logs_sum if attributes.key?(:'cloud_siem_indexed_logs_sum') + self.additional_properties[:'code_analysis_sa_committers_hwm'] = self.code_analysis_sa_committers_hwm if attributes.key?(:'code_analysis_sa_committers_hwm') + self.additional_properties[:'code_analysis_sca_committers_hwm'] = self.code_analysis_sca_committers_hwm if attributes.key?(:'code_analysis_sca_committers_hwm') + self.additional_properties[:'code_security_host_top99p'] = self.code_security_host_top99p if attributes.key?(:'code_security_host_top99p') + self.additional_properties[:'container_avg'] = self.container_avg if attributes.key?(:'container_avg') + self.additional_properties[:'container_excl_agent_avg'] = self.container_excl_agent_avg if attributes.key?(:'container_excl_agent_avg') + self.additional_properties[:'container_hwm'] = self.container_hwm if attributes.key?(:'container_hwm') + self.additional_properties[:'csm_container_enterprise_compliance_count_sum'] = self.csm_container_enterprise_compliance_count_sum if attributes.key?(:'csm_container_enterprise_compliance_count_sum') + self.additional_properties[:'csm_container_enterprise_cws_count_sum'] = self.csm_container_enterprise_cws_count_sum if attributes.key?(:'csm_container_enterprise_cws_count_sum') + self.additional_properties[:'csm_container_enterprise_total_count_sum'] = self.csm_container_enterprise_total_count_sum if attributes.key?(:'csm_container_enterprise_total_count_sum') + self.additional_properties[:'csm_host_enterprise_aas_host_count_top99p'] = self.csm_host_enterprise_aas_host_count_top99p if attributes.key?(:'csm_host_enterprise_aas_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_aws_host_count_top99p'] = self.csm_host_enterprise_aws_host_count_top99p if attributes.key?(:'csm_host_enterprise_aws_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_azure_host_count_top99p'] = self.csm_host_enterprise_azure_host_count_top99p if attributes.key?(:'csm_host_enterprise_azure_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_compliance_host_count_top99p'] = self.csm_host_enterprise_compliance_host_count_top99p if attributes.key?(:'csm_host_enterprise_compliance_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_cws_host_count_top99p'] = self.csm_host_enterprise_cws_host_count_top99p if attributes.key?(:'csm_host_enterprise_cws_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_gcp_host_count_top99p'] = self.csm_host_enterprise_gcp_host_count_top99p if attributes.key?(:'csm_host_enterprise_gcp_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_oci_host_count_top99p'] = self.csm_host_enterprise_oci_host_count_top99p if attributes.key?(:'csm_host_enterprise_oci_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_total_host_count_top99p'] = self.csm_host_enterprise_total_host_count_top99p if attributes.key?(:'csm_host_enterprise_total_host_count_top99p') + self.additional_properties[:'csm_host_pro_hosts_agentless_scanners_sum'] = self.csm_host_pro_hosts_agentless_scanners_sum if attributes.key?(:'csm_host_pro_hosts_agentless_scanners_sum') + self.additional_properties[:'csm_host_pro_hosts_agentless_scanners_top99p'] = self.csm_host_pro_hosts_agentless_scanners_top99p if attributes.key?(:'csm_host_pro_hosts_agentless_scanners_top99p') + self.additional_properties[:'csm_host_pro_oci_host_count_top99p'] = self.csm_host_pro_oci_host_count_top99p if attributes.key?(:'csm_host_pro_oci_host_count_top99p') + self.additional_properties[:'cspm_aas_host_top99p'] = self.cspm_aas_host_top99p if attributes.key?(:'cspm_aas_host_top99p') + self.additional_properties[:'cspm_aws_host_top99p'] = self.cspm_aws_host_top99p if attributes.key?(:'cspm_aws_host_top99p') + self.additional_properties[:'cspm_azure_host_top99p'] = self.cspm_azure_host_top99p if attributes.key?(:'cspm_azure_host_top99p') + self.additional_properties[:'cspm_container_avg'] = self.cspm_container_avg if attributes.key?(:'cspm_container_avg') + self.additional_properties[:'cspm_container_hwm'] = self.cspm_container_hwm if attributes.key?(:'cspm_container_hwm') + self.additional_properties[:'cspm_gcp_host_top99p'] = self.cspm_gcp_host_top99p if attributes.key?(:'cspm_gcp_host_top99p') + self.additional_properties[:'cspm_host_top99p'] = self.cspm_host_top99p if attributes.key?(:'cspm_host_top99p') + self.additional_properties[:'cspm_hosts_agentless_scanners_sum'] = self.cspm_hosts_agentless_scanners_sum if attributes.key?(:'cspm_hosts_agentless_scanners_sum') + self.additional_properties[:'cspm_hosts_agentless_scanners_top99p'] = self.cspm_hosts_agentless_scanners_top99p if attributes.key?(:'cspm_hosts_agentless_scanners_top99p') + self.additional_properties[:'custom_ts_avg'] = self.custom_ts_avg if attributes.key?(:'custom_ts_avg') + self.additional_properties[:'cws_container_count_avg'] = self.cws_container_count_avg if attributes.key?(:'cws_container_count_avg') + self.additional_properties[:'cws_fargate_task_avg'] = self.cws_fargate_task_avg if attributes.key?(:'cws_fargate_task_avg') + self.additional_properties[:'cws_host_top99p'] = self.cws_host_top99p if attributes.key?(:'cws_host_top99p') + self.additional_properties[:'data_jobs_monitoring_host_hr_sum'] = self.data_jobs_monitoring_host_hr_sum if attributes.key?(:'data_jobs_monitoring_host_hr_sum') + self.additional_properties[:'data_stream_monitoring_host_count_sum'] = self.data_stream_monitoring_host_count_sum if attributes.key?(:'data_stream_monitoring_host_count_sum') + self.additional_properties[:'data_stream_monitoring_host_count_top99p'] = self.data_stream_monitoring_host_count_top99p if attributes.key?(:'data_stream_monitoring_host_count_top99p') + self.additional_properties[:'date'] = self.date if attributes.key?(:'date') + self.additional_properties[:'dbm_host_top99p'] = self.dbm_host_top99p if attributes.key?(:'dbm_host_top99p') + self.additional_properties[:'dbm_queries_count_avg'] = self.dbm_queries_count_avg if attributes.key?(:'dbm_queries_count_avg') + self.additional_properties[:'do_jobs_monitoring_orchestrators_job_hours_sum'] = self.do_jobs_monitoring_orchestrators_job_hours_sum if attributes.key?(:'do_jobs_monitoring_orchestrators_job_hours_sum') + self.additional_properties[:'eph_infra_host_agent_sum'] = self.eph_infra_host_agent_sum if attributes.key?(:'eph_infra_host_agent_sum') + self.additional_properties[:'eph_infra_host_alibaba_sum'] = self.eph_infra_host_alibaba_sum if attributes.key?(:'eph_infra_host_alibaba_sum') + self.additional_properties[:'eph_infra_host_aws_sum'] = self.eph_infra_host_aws_sum if attributes.key?(:'eph_infra_host_aws_sum') + self.additional_properties[:'eph_infra_host_azure_sum'] = self.eph_infra_host_azure_sum if attributes.key?(:'eph_infra_host_azure_sum') + self.additional_properties[:'eph_infra_host_basic_infra_basic_agent_sum'] = self.eph_infra_host_basic_infra_basic_agent_sum if attributes.key?(:'eph_infra_host_basic_infra_basic_agent_sum') + self.additional_properties[:'eph_infra_host_basic_infra_basic_vsphere_sum'] = self.eph_infra_host_basic_infra_basic_vsphere_sum if attributes.key?(:'eph_infra_host_basic_infra_basic_vsphere_sum') + self.additional_properties[:'eph_infra_host_basic_sum'] = self.eph_infra_host_basic_sum if attributes.key?(:'eph_infra_host_basic_sum') + self.additional_properties[:'eph_infra_host_ent_sum'] = self.eph_infra_host_ent_sum if attributes.key?(:'eph_infra_host_ent_sum') + self.additional_properties[:'eph_infra_host_gcp_sum'] = self.eph_infra_host_gcp_sum if attributes.key?(:'eph_infra_host_gcp_sum') + self.additional_properties[:'eph_infra_host_heroku_sum'] = self.eph_infra_host_heroku_sum if attributes.key?(:'eph_infra_host_heroku_sum') + self.additional_properties[:'eph_infra_host_only_aas_sum'] = self.eph_infra_host_only_aas_sum if attributes.key?(:'eph_infra_host_only_aas_sum') + self.additional_properties[:'eph_infra_host_only_vsphere_sum'] = self.eph_infra_host_only_vsphere_sum if attributes.key?(:'eph_infra_host_only_vsphere_sum') + self.additional_properties[:'eph_infra_host_opentelemetry_apm_sum'] = self.eph_infra_host_opentelemetry_apm_sum if attributes.key?(:'eph_infra_host_opentelemetry_apm_sum') + self.additional_properties[:'eph_infra_host_opentelemetry_sum'] = self.eph_infra_host_opentelemetry_sum if attributes.key?(:'eph_infra_host_opentelemetry_sum') + self.additional_properties[:'eph_infra_host_pro_sum'] = self.eph_infra_host_pro_sum if attributes.key?(:'eph_infra_host_pro_sum') + self.additional_properties[:'eph_infra_host_proplus_sum'] = self.eph_infra_host_proplus_sum if attributes.key?(:'eph_infra_host_proplus_sum') + self.additional_properties[:'eph_infra_host_proxmox_sum'] = self.eph_infra_host_proxmox_sum if attributes.key?(:'eph_infra_host_proxmox_sum') + self.additional_properties[:'error_tracking_apm_error_events_sum'] = self.error_tracking_apm_error_events_sum if attributes.key?(:'error_tracking_apm_error_events_sum') + self.additional_properties[:'error_tracking_error_events_sum'] = self.error_tracking_error_events_sum if attributes.key?(:'error_tracking_error_events_sum') + self.additional_properties[:'error_tracking_events_sum'] = self.error_tracking_events_sum if attributes.key?(:'error_tracking_events_sum') + self.additional_properties[:'error_tracking_rum_error_events_sum'] = self.error_tracking_rum_error_events_sum if attributes.key?(:'error_tracking_rum_error_events_sum') + self.additional_properties[:'event_management_correlation_correlated_events_sum'] = self.event_management_correlation_correlated_events_sum if attributes.key?(:'event_management_correlation_correlated_events_sum') + self.additional_properties[:'event_management_correlation_correlated_related_events_sum'] = self.event_management_correlation_correlated_related_events_sum if attributes.key?(:'event_management_correlation_correlated_related_events_sum') + self.additional_properties[:'event_management_correlation_sum'] = self.event_management_correlation_sum if attributes.key?(:'event_management_correlation_sum') + self.additional_properties[:'fargate_container_profiler_profiling_fargate_avg'] = self.fargate_container_profiler_profiling_fargate_avg if attributes.key?(:'fargate_container_profiler_profiling_fargate_avg') + self.additional_properties[:'fargate_container_profiler_profiling_fargate_eks_avg'] = self.fargate_container_profiler_profiling_fargate_eks_avg if attributes.key?(:'fargate_container_profiler_profiling_fargate_eks_avg') + self.additional_properties[:'fargate_tasks_count_avg'] = self.fargate_tasks_count_avg if attributes.key?(:'fargate_tasks_count_avg') + self.additional_properties[:'fargate_tasks_count_hwm'] = self.fargate_tasks_count_hwm if attributes.key?(:'fargate_tasks_count_hwm') + self.additional_properties[:'feature_flags_config_requests_sum'] = self.feature_flags_config_requests_sum if attributes.key?(:'feature_flags_config_requests_sum') + self.additional_properties[:'flex_logs_compute_large_avg'] = self.flex_logs_compute_large_avg if attributes.key?(:'flex_logs_compute_large_avg') + self.additional_properties[:'flex_logs_compute_medium_avg'] = self.flex_logs_compute_medium_avg if attributes.key?(:'flex_logs_compute_medium_avg') + self.additional_properties[:'flex_logs_compute_small_avg'] = self.flex_logs_compute_small_avg if attributes.key?(:'flex_logs_compute_small_avg') + self.additional_properties[:'flex_logs_compute_xlarge_avg'] = self.flex_logs_compute_xlarge_avg if attributes.key?(:'flex_logs_compute_xlarge_avg') + self.additional_properties[:'flex_logs_compute_xsmall_avg'] = self.flex_logs_compute_xsmall_avg if attributes.key?(:'flex_logs_compute_xsmall_avg') + self.additional_properties[:'flex_logs_starter_avg'] = self.flex_logs_starter_avg if attributes.key?(:'flex_logs_starter_avg') + self.additional_properties[:'flex_logs_starter_storage_index_avg'] = self.flex_logs_starter_storage_index_avg if attributes.key?(:'flex_logs_starter_storage_index_avg') + self.additional_properties[:'flex_logs_starter_storage_retention_adjustment_avg'] = self.flex_logs_starter_storage_retention_adjustment_avg if attributes.key?(:'flex_logs_starter_storage_retention_adjustment_avg') + self.additional_properties[:'flex_stored_logs_avg'] = self.flex_stored_logs_avg if attributes.key?(:'flex_stored_logs_avg') + self.additional_properties[:'forwarding_events_bytes_sum'] = self.forwarding_events_bytes_sum if attributes.key?(:'forwarding_events_bytes_sum') + self.additional_properties[:'gcp_host_top99p'] = self.gcp_host_top99p if attributes.key?(:'gcp_host_top99p') + self.additional_properties[:'heroku_host_top99p'] = self.heroku_host_top99p if attributes.key?(:'heroku_host_top99p') + self.additional_properties[:'incident_management_monthly_active_users_hwm'] = self.incident_management_monthly_active_users_hwm if attributes.key?(:'incident_management_monthly_active_users_hwm') + self.additional_properties[:'incident_management_seats_hwm'] = self.incident_management_seats_hwm if attributes.key?(:'incident_management_seats_hwm') + self.additional_properties[:'indexed_events_count_sum'] = self.indexed_events_count_sum if attributes.key?(:'indexed_events_count_sum') + self.additional_properties[:'indexed_points_sum'] = self.indexed_points_sum if attributes.key?(:'indexed_points_sum') + self.additional_properties[:'infra_cpu_avg'] = self.infra_cpu_avg if attributes.key?(:'infra_cpu_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_agent_avg'] = self.infra_cpu_default_infra_host_vcpu_agent_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_agent_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_agent_basic_avg'] = self.infra_cpu_default_infra_host_vcpu_agent_basic_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_agent_basic_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_agent_basic_sum'] = self.infra_cpu_default_infra_host_vcpu_agent_basic_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_agent_basic_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_agent_sum'] = self.infra_cpu_default_infra_host_vcpu_agent_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_agent_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_aws_avg'] = self.infra_cpu_default_infra_host_vcpu_aws_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_aws_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_aws_sum'] = self.infra_cpu_default_infra_host_vcpu_aws_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_aws_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_azure_avg'] = self.infra_cpu_default_infra_host_vcpu_azure_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_azure_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_azure_sum'] = self.infra_cpu_default_infra_host_vcpu_azure_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_azure_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_gcp_avg'] = self.infra_cpu_default_infra_host_vcpu_gcp_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_gcp_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_gcp_sum'] = self.infra_cpu_default_infra_host_vcpu_gcp_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_gcp_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_nutanix_avg'] = self.infra_cpu_default_infra_host_vcpu_nutanix_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_nutanix_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_nutanix_basic_avg'] = self.infra_cpu_default_infra_host_vcpu_nutanix_basic_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_nutanix_basic_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_nutanix_basic_sum'] = self.infra_cpu_default_infra_host_vcpu_nutanix_basic_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_nutanix_basic_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_nutanix_sum'] = self.infra_cpu_default_infra_host_vcpu_nutanix_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_nutanix_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_opentelemetry_avg'] = self.infra_cpu_default_infra_host_vcpu_opentelemetry_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_opentelemetry_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_opentelemetry_sum'] = self.infra_cpu_default_infra_host_vcpu_opentelemetry_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_opentelemetry_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_agent_avg'] = self.infra_cpu_observed_infra_host_vcpu_agent_avg if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_agent_avg') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_agent_sum'] = self.infra_cpu_observed_infra_host_vcpu_agent_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_agent_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_aws_avg'] = self.infra_cpu_observed_infra_host_vcpu_aws_avg if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_aws_avg') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_aws_sum'] = self.infra_cpu_observed_infra_host_vcpu_aws_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_aws_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_azure_avg'] = self.infra_cpu_observed_infra_host_vcpu_azure_avg if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_azure_avg') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_azure_sum'] = self.infra_cpu_observed_infra_host_vcpu_azure_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_azure_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_gcp_avg'] = self.infra_cpu_observed_infra_host_vcpu_gcp_avg if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_gcp_avg') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_gcp_sum'] = self.infra_cpu_observed_infra_host_vcpu_gcp_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_gcp_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_nutanix_avg'] = self.infra_cpu_observed_infra_host_vcpu_nutanix_avg if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_nutanix_avg') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_nutanix_sum'] = self.infra_cpu_observed_infra_host_vcpu_nutanix_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_nutanix_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_opentelemetry_avg'] = self.infra_cpu_observed_infra_host_vcpu_opentelemetry_avg if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_opentelemetry_avg') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_opentelemetry_sum'] = self.infra_cpu_observed_infra_host_vcpu_opentelemetry_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_opentelemetry_sum') + self.additional_properties[:'infra_cpu_sum'] = self.infra_cpu_sum if attributes.key?(:'infra_cpu_sum') + self.additional_properties[:'infra_edge_monitoring_devices_top99p'] = self.infra_edge_monitoring_devices_top99p if attributes.key?(:'infra_edge_monitoring_devices_top99p') + self.additional_properties[:'infra_host_basic_infra_basic_agent_top99p'] = self.infra_host_basic_infra_basic_agent_top99p if attributes.key?(:'infra_host_basic_infra_basic_agent_top99p') + self.additional_properties[:'infra_host_basic_infra_basic_vsphere_top99p'] = self.infra_host_basic_infra_basic_vsphere_top99p if attributes.key?(:'infra_host_basic_infra_basic_vsphere_top99p') + self.additional_properties[:'infra_host_basic_top99p'] = self.infra_host_basic_top99p if attributes.key?(:'infra_host_basic_top99p') + self.additional_properties[:'infra_host_top99p'] = self.infra_host_top99p if attributes.key?(:'infra_host_top99p') + self.additional_properties[:'infra_storage_mgmt_objects_count_avg'] = self.infra_storage_mgmt_objects_count_avg if attributes.key?(:'infra_storage_mgmt_objects_count_avg') + self.additional_properties[:'ingest_points_sum'] = self.ingest_points_sum if attributes.key?(:'ingest_points_sum') + self.additional_properties[:'ingested_events_bytes_sum'] = self.ingested_events_bytes_sum if attributes.key?(:'ingested_events_bytes_sum') + self.additional_properties[:'iot_apm_host_sum'] = self.iot_apm_host_sum if attributes.key?(:'iot_apm_host_sum') + self.additional_properties[:'iot_apm_host_top99p'] = self.iot_apm_host_top99p if attributes.key?(:'iot_apm_host_top99p') + self.additional_properties[:'iot_device_sum'] = self.iot_device_sum if attributes.key?(:'iot_device_sum') + self.additional_properties[:'iot_device_top99p'] = self.iot_device_top99p if attributes.key?(:'iot_device_top99p') + self.additional_properties[:'llm_observability_15day_retention_spans_sum'] = self.llm_observability_15day_retention_spans_sum if attributes.key?(:'llm_observability_15day_retention_spans_sum') + self.additional_properties[:'llm_observability_30day_retention_spans_sum'] = self.llm_observability_30day_retention_spans_sum if attributes.key?(:'llm_observability_30day_retention_spans_sum') + self.additional_properties[:'llm_observability_60day_retention_spans_sum'] = self.llm_observability_60day_retention_spans_sum if attributes.key?(:'llm_observability_60day_retention_spans_sum') + self.additional_properties[:'llm_observability_90day_retention_spans_sum'] = self.llm_observability_90day_retention_spans_sum if attributes.key?(:'llm_observability_90day_retention_spans_sum') + self.additional_properties[:'llm_observability_min_spend_sum'] = self.llm_observability_min_spend_sum if attributes.key?(:'llm_observability_min_spend_sum') + self.additional_properties[:'llm_observability_sum'] = self.llm_observability_sum if attributes.key?(:'llm_observability_sum') + self.additional_properties[:'logs_archive_search_gb_scanned_sum'] = self.logs_archive_search_gb_scanned_sum if attributes.key?(:'logs_archive_search_gb_scanned_sum') + self.additional_properties[:'metric_names_sum'] = self.metric_names_sum if attributes.key?(:'metric_names_sum') + self.additional_properties[:'mobile_rum_lite_session_count_sum'] = self.mobile_rum_lite_session_count_sum if attributes.key?(:'mobile_rum_lite_session_count_sum') + self.additional_properties[:'mobile_rum_session_count_android_sum'] = self.mobile_rum_session_count_android_sum if attributes.key?(:'mobile_rum_session_count_android_sum') + self.additional_properties[:'mobile_rum_session_count_flutter_sum'] = self.mobile_rum_session_count_flutter_sum if attributes.key?(:'mobile_rum_session_count_flutter_sum') + self.additional_properties[:'mobile_rum_session_count_ios_sum'] = self.mobile_rum_session_count_ios_sum if attributes.key?(:'mobile_rum_session_count_ios_sum') + self.additional_properties[:'mobile_rum_session_count_reactnative_sum'] = self.mobile_rum_session_count_reactnative_sum if attributes.key?(:'mobile_rum_session_count_reactnative_sum') + self.additional_properties[:'mobile_rum_session_count_roku_sum'] = self.mobile_rum_session_count_roku_sum if attributes.key?(:'mobile_rum_session_count_roku_sum') + self.additional_properties[:'mobile_rum_session_count_sum'] = self.mobile_rum_session_count_sum if attributes.key?(:'mobile_rum_session_count_sum') + self.additional_properties[:'mobile_rum_units_sum'] = self.mobile_rum_units_sum if attributes.key?(:'mobile_rum_units_sum') + self.additional_properties[:'ndm_netflow_events_sum'] = self.ndm_netflow_events_sum if attributes.key?(:'ndm_netflow_events_sum') + self.additional_properties[:'netflow_indexed_events_count_sum'] = self.netflow_indexed_events_count_sum if attributes.key?(:'netflow_indexed_events_count_sum') + self.additional_properties[:'network_device_wireless_top99p'] = self.network_device_wireless_top99p if attributes.key?(:'network_device_wireless_top99p') + self.additional_properties[:'network_path_sum'] = self.network_path_sum if attributes.key?(:'network_path_sum') + self.additional_properties[:'npm_host_top99p'] = self.npm_host_top99p if attributes.key?(:'npm_host_top99p') + self.additional_properties[:'observability_pipelines_bytes_processed_sum'] = self.observability_pipelines_bytes_processed_sum if attributes.key?(:'observability_pipelines_bytes_processed_sum') + self.additional_properties[:'oci_host_sum'] = self.oci_host_sum if attributes.key?(:'oci_host_sum') + self.additional_properties[:'oci_host_top99p'] = self.oci_host_top99p if attributes.key?(:'oci_host_top99p') + self.additional_properties[:'on_call_seat_hwm'] = self.on_call_seat_hwm if attributes.key?(:'on_call_seat_hwm') + self.additional_properties[:'online_archive_events_count_sum'] = self.online_archive_events_count_sum if attributes.key?(:'online_archive_events_count_sum') + self.additional_properties[:'opentelemetry_apm_host_top99p'] = self.opentelemetry_apm_host_top99p if attributes.key?(:'opentelemetry_apm_host_top99p') + self.additional_properties[:'opentelemetry_host_top99p'] = self.opentelemetry_host_top99p if attributes.key?(:'opentelemetry_host_top99p') + self.additional_properties[:'orgs'] = self.orgs if attributes.key?(:'orgs') + self.additional_properties[:'product_analytics_sum'] = self.product_analytics_sum if attributes.key?(:'product_analytics_sum') + self.additional_properties[:'profiling_aas_count_top99p'] = self.profiling_aas_count_top99p if attributes.key?(:'profiling_aas_count_top99p') + self.additional_properties[:'profiling_host_top99p'] = self.profiling_host_top99p if attributes.key?(:'profiling_host_top99p') + self.additional_properties[:'proxmox_host_sum'] = self.proxmox_host_sum if attributes.key?(:'proxmox_host_sum') + self.additional_properties[:'proxmox_host_top99p'] = self.proxmox_host_top99p if attributes.key?(:'proxmox_host_top99p') + self.additional_properties[:'published_app_hwm'] = self.published_app_hwm if attributes.key?(:'published_app_hwm') + self.additional_properties[:'rum_browser_and_mobile_session_count'] = self.rum_browser_and_mobile_session_count if attributes.key?(:'rum_browser_and_mobile_session_count') + self.additional_properties[:'rum_browser_legacy_session_count_sum'] = self.rum_browser_legacy_session_count_sum if attributes.key?(:'rum_browser_legacy_session_count_sum') + self.additional_properties[:'rum_browser_lite_session_count_sum'] = self.rum_browser_lite_session_count_sum if attributes.key?(:'rum_browser_lite_session_count_sum') + self.additional_properties[:'rum_browser_replay_session_count_sum'] = self.rum_browser_replay_session_count_sum if attributes.key?(:'rum_browser_replay_session_count_sum') + self.additional_properties[:'rum_indexed_sessions_sum'] = self.rum_indexed_sessions_sum if attributes.key?(:'rum_indexed_sessions_sum') + self.additional_properties[:'rum_ingested_sessions_sum'] = self.rum_ingested_sessions_sum if attributes.key?(:'rum_ingested_sessions_sum') + self.additional_properties[:'rum_lite_session_count_sum'] = self.rum_lite_session_count_sum if attributes.key?(:'rum_lite_session_count_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_android_sum'] = self.rum_mobile_legacy_session_count_android_sum if attributes.key?(:'rum_mobile_legacy_session_count_android_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_flutter_sum'] = self.rum_mobile_legacy_session_count_flutter_sum if attributes.key?(:'rum_mobile_legacy_session_count_flutter_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_ios_sum'] = self.rum_mobile_legacy_session_count_ios_sum if attributes.key?(:'rum_mobile_legacy_session_count_ios_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_reactnative_sum'] = self.rum_mobile_legacy_session_count_reactnative_sum if attributes.key?(:'rum_mobile_legacy_session_count_reactnative_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_roku_sum'] = self.rum_mobile_legacy_session_count_roku_sum if attributes.key?(:'rum_mobile_legacy_session_count_roku_sum') + self.additional_properties[:'rum_mobile_lite_session_count_android_sum'] = self.rum_mobile_lite_session_count_android_sum if attributes.key?(:'rum_mobile_lite_session_count_android_sum') + self.additional_properties[:'rum_mobile_lite_session_count_flutter_sum'] = self.rum_mobile_lite_session_count_flutter_sum if attributes.key?(:'rum_mobile_lite_session_count_flutter_sum') + self.additional_properties[:'rum_mobile_lite_session_count_ios_sum'] = self.rum_mobile_lite_session_count_ios_sum if attributes.key?(:'rum_mobile_lite_session_count_ios_sum') + self.additional_properties[:'rum_mobile_lite_session_count_kotlinmultiplatform_sum'] = self.rum_mobile_lite_session_count_kotlinmultiplatform_sum if attributes.key?(:'rum_mobile_lite_session_count_kotlinmultiplatform_sum') + self.additional_properties[:'rum_mobile_lite_session_count_reactnative_sum'] = self.rum_mobile_lite_session_count_reactnative_sum if attributes.key?(:'rum_mobile_lite_session_count_reactnative_sum') + self.additional_properties[:'rum_mobile_lite_session_count_roku_sum'] = self.rum_mobile_lite_session_count_roku_sum if attributes.key?(:'rum_mobile_lite_session_count_roku_sum') + self.additional_properties[:'rum_mobile_lite_session_count_unity_sum'] = self.rum_mobile_lite_session_count_unity_sum if attributes.key?(:'rum_mobile_lite_session_count_unity_sum') + self.additional_properties[:'rum_mobile_replay_session_count_android_sum'] = self.rum_mobile_replay_session_count_android_sum if attributes.key?(:'rum_mobile_replay_session_count_android_sum') + self.additional_properties[:'rum_mobile_replay_session_count_ios_sum'] = self.rum_mobile_replay_session_count_ios_sum if attributes.key?(:'rum_mobile_replay_session_count_ios_sum') + self.additional_properties[:'rum_mobile_replay_session_count_kotlinmultiplatform_sum'] = self.rum_mobile_replay_session_count_kotlinmultiplatform_sum if attributes.key?(:'rum_mobile_replay_session_count_kotlinmultiplatform_sum') + self.additional_properties[:'rum_mobile_replay_session_count_reactnative_sum'] = self.rum_mobile_replay_session_count_reactnative_sum if attributes.key?(:'rum_mobile_replay_session_count_reactnative_sum') + self.additional_properties[:'rum_replay_session_count_sum'] = self.rum_replay_session_count_sum if attributes.key?(:'rum_replay_session_count_sum') + self.additional_properties[:'rum_session_count_sum'] = self.rum_session_count_sum if attributes.key?(:'rum_session_count_sum') + self.additional_properties[:'rum_session_replay_add_on_sum'] = self.rum_session_replay_add_on_sum if attributes.key?(:'rum_session_replay_add_on_sum') + self.additional_properties[:'rum_total_session_count_sum'] = self.rum_total_session_count_sum if attributes.key?(:'rum_total_session_count_sum') + self.additional_properties[:'rum_units_sum'] = self.rum_units_sum if attributes.key?(:'rum_units_sum') + self.additional_properties[:'sca_fargate_count_avg'] = self.sca_fargate_count_avg if attributes.key?(:'sca_fargate_count_avg') + self.additional_properties[:'sca_fargate_count_hwm'] = self.sca_fargate_count_hwm if attributes.key?(:'sca_fargate_count_hwm') + self.additional_properties[:'sds_apm_scanned_bytes_sum'] = self.sds_apm_scanned_bytes_sum if attributes.key?(:'sds_apm_scanned_bytes_sum') + self.additional_properties[:'sds_events_scanned_bytes_sum'] = self.sds_events_scanned_bytes_sum if attributes.key?(:'sds_events_scanned_bytes_sum') + self.additional_properties[:'sds_logs_scanned_bytes_sum'] = self.sds_logs_scanned_bytes_sum if attributes.key?(:'sds_logs_scanned_bytes_sum') + self.additional_properties[:'sds_rum_scanned_bytes_sum'] = self.sds_rum_scanned_bytes_sum if attributes.key?(:'sds_rum_scanned_bytes_sum') + self.additional_properties[:'sds_total_scanned_bytes_sum'] = self.sds_total_scanned_bytes_sum if attributes.key?(:'sds_total_scanned_bytes_sum') + self.additional_properties[:'serverless_apps_apm_apm_azure_appservice_instances_avg'] = self.serverless_apps_apm_apm_azure_appservice_instances_avg if attributes.key?(:'serverless_apps_apm_apm_azure_appservice_instances_avg') + self.additional_properties[:'serverless_apps_apm_apm_azure_azurefunction_instances_avg'] = self.serverless_apps_apm_apm_azure_azurefunction_instances_avg if attributes.key?(:'serverless_apps_apm_apm_azure_azurefunction_instances_avg') + self.additional_properties[:'serverless_apps_apm_apm_azure_containerapp_instances_avg'] = self.serverless_apps_apm_apm_azure_containerapp_instances_avg if attributes.key?(:'serverless_apps_apm_apm_azure_containerapp_instances_avg') + self.additional_properties[:'serverless_apps_apm_apm_fargate_ecs_tasks_avg'] = self.serverless_apps_apm_apm_fargate_ecs_tasks_avg if attributes.key?(:'serverless_apps_apm_apm_fargate_ecs_tasks_avg') + self.additional_properties[:'serverless_apps_apm_apm_gcp_cloudfunction_instances_avg'] = self.serverless_apps_apm_apm_gcp_cloudfunction_instances_avg if attributes.key?(:'serverless_apps_apm_apm_gcp_cloudfunction_instances_avg') + self.additional_properties[:'serverless_apps_apm_apm_gcp_cloudrun_instances_avg'] = self.serverless_apps_apm_apm_gcp_cloudrun_instances_avg if attributes.key?(:'serverless_apps_apm_apm_gcp_cloudrun_instances_avg') + self.additional_properties[:'serverless_apps_apm_apm_gcp_gke_autopilot_pods_avg'] = self.serverless_apps_apm_apm_gcp_gke_autopilot_pods_avg if attributes.key?(:'serverless_apps_apm_apm_gcp_gke_autopilot_pods_avg') + self.additional_properties[:'serverless_apps_apm_avg'] = self.serverless_apps_apm_avg if attributes.key?(:'serverless_apps_apm_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_azure_appservice_instances_avg'] = self.serverless_apps_apm_excl_fargate_apm_azure_appservice_instances_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_azure_appservice_instances_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_azure_azurefunction_instances_avg'] = self.serverless_apps_apm_excl_fargate_apm_azure_azurefunction_instances_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_azure_azurefunction_instances_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_azure_containerapp_instances_avg'] = self.serverless_apps_apm_excl_fargate_apm_azure_containerapp_instances_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_azure_containerapp_instances_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_gcp_cloudfunction_instances_avg'] = self.serverless_apps_apm_excl_fargate_apm_gcp_cloudfunction_instances_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_gcp_cloudfunction_instances_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_gcp_cloudrun_instances_avg'] = self.serverless_apps_apm_excl_fargate_apm_gcp_cloudrun_instances_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_gcp_cloudrun_instances_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_gcp_gke_autopilot_pods_avg'] = self.serverless_apps_apm_excl_fargate_apm_gcp_gke_autopilot_pods_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_gcp_gke_autopilot_pods_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_avg'] = self.serverless_apps_apm_excl_fargate_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_avg') + self.additional_properties[:'serverless_apps_azure_container_app_instances_avg'] = self.serverless_apps_azure_container_app_instances_avg if attributes.key?(:'serverless_apps_azure_container_app_instances_avg') + self.additional_properties[:'serverless_apps_azure_count_avg'] = self.serverless_apps_azure_count_avg if attributes.key?(:'serverless_apps_azure_count_avg') + self.additional_properties[:'serverless_apps_azure_function_app_instances_avg'] = self.serverless_apps_azure_function_app_instances_avg if attributes.key?(:'serverless_apps_azure_function_app_instances_avg') + self.additional_properties[:'serverless_apps_azure_web_app_instances_avg'] = self.serverless_apps_azure_web_app_instances_avg if attributes.key?(:'serverless_apps_azure_web_app_instances_avg') + self.additional_properties[:'serverless_apps_dsm_fargate_tasks_avg'] = self.serverless_apps_dsm_fargate_tasks_avg if attributes.key?(:'serverless_apps_dsm_fargate_tasks_avg') + self.additional_properties[:'serverless_apps_ecs_avg'] = self.serverless_apps_ecs_avg if attributes.key?(:'serverless_apps_ecs_avg') + self.additional_properties[:'serverless_apps_eks_avg'] = self.serverless_apps_eks_avg if attributes.key?(:'serverless_apps_eks_avg') + self.additional_properties[:'serverless_apps_excl_fargate_avg'] = self.serverless_apps_excl_fargate_avg if attributes.key?(:'serverless_apps_excl_fargate_avg') + self.additional_properties[:'serverless_apps_excl_fargate_azure_container_app_instances_avg'] = self.serverless_apps_excl_fargate_azure_container_app_instances_avg if attributes.key?(:'serverless_apps_excl_fargate_azure_container_app_instances_avg') + self.additional_properties[:'serverless_apps_excl_fargate_azure_function_app_instances_avg'] = self.serverless_apps_excl_fargate_azure_function_app_instances_avg if attributes.key?(:'serverless_apps_excl_fargate_azure_function_app_instances_avg') + self.additional_properties[:'serverless_apps_excl_fargate_azure_web_app_instances_avg'] = self.serverless_apps_excl_fargate_azure_web_app_instances_avg if attributes.key?(:'serverless_apps_excl_fargate_azure_web_app_instances_avg') + self.additional_properties[:'serverless_apps_excl_fargate_google_cloud_functions_instances_avg'] = self.serverless_apps_excl_fargate_google_cloud_functions_instances_avg if attributes.key?(:'serverless_apps_excl_fargate_google_cloud_functions_instances_avg') + self.additional_properties[:'serverless_apps_excl_fargate_google_cloud_run_instances_avg'] = self.serverless_apps_excl_fargate_google_cloud_run_instances_avg if attributes.key?(:'serverless_apps_excl_fargate_google_cloud_run_instances_avg') + self.additional_properties[:'serverless_apps_excl_fargate_infra_gcp_gke_autopilot_pods_avg'] = self.serverless_apps_excl_fargate_infra_gcp_gke_autopilot_pods_avg if attributes.key?(:'serverless_apps_excl_fargate_infra_gcp_gke_autopilot_pods_avg') + self.additional_properties[:'serverless_apps_google_cloud_functions_instances_avg'] = self.serverless_apps_google_cloud_functions_instances_avg if attributes.key?(:'serverless_apps_google_cloud_functions_instances_avg') + self.additional_properties[:'serverless_apps_google_cloud_run_instances_avg'] = self.serverless_apps_google_cloud_run_instances_avg if attributes.key?(:'serverless_apps_google_cloud_run_instances_avg') + self.additional_properties[:'serverless_apps_google_count_avg'] = self.serverless_apps_google_count_avg if attributes.key?(:'serverless_apps_google_count_avg') + self.additional_properties[:'serverless_apps_infra_gcp_gke_autopilot_pods_avg'] = self.serverless_apps_infra_gcp_gke_autopilot_pods_avg if attributes.key?(:'serverless_apps_infra_gcp_gke_autopilot_pods_avg') + self.additional_properties[:'serverless_apps_total_count_avg'] = self.serverless_apps_total_count_avg if attributes.key?(:'serverless_apps_total_count_avg') + self.additional_properties[:'siem_12mo_retention_sum'] = self.siem_12mo_retention_sum if attributes.key?(:'siem_12mo_retention_sum') + self.additional_properties[:'siem_6mo_retention_sum'] = self.siem_6mo_retention_sum if attributes.key?(:'siem_6mo_retention_sum') + self.additional_properties[:'siem_analyzed_logs_add_on_count_sum'] = self.siem_analyzed_logs_add_on_count_sum if attributes.key?(:'siem_analyzed_logs_add_on_count_sum') + self.additional_properties[:'snmp_device_count_sum'] = self.snmp_device_count_sum if attributes.key?(:'snmp_device_count_sum') + self.additional_properties[:'snmp_device_count_top99p'] = self.snmp_device_count_top99p if attributes.key?(:'snmp_device_count_top99p') + self.additional_properties[:'synthetics_browser_check_calls_count_sum'] = self.synthetics_browser_check_calls_count_sum if attributes.key?(:'synthetics_browser_check_calls_count_sum') + self.additional_properties[:'synthetics_check_calls_count_sum'] = self.synthetics_check_calls_count_sum if attributes.key?(:'synthetics_check_calls_count_sum') + self.additional_properties[:'synthetics_mobile_test_runs_sum'] = self.synthetics_mobile_test_runs_sum if attributes.key?(:'synthetics_mobile_test_runs_sum') + self.additional_properties[:'synthetics_parallel_testing_max_slots_hwm'] = self.synthetics_parallel_testing_max_slots_hwm if attributes.key?(:'synthetics_parallel_testing_max_slots_hwm') + self.additional_properties[:'trace_search_indexed_events_count_sum'] = self.trace_search_indexed_events_count_sum if attributes.key?(:'trace_search_indexed_events_count_sum') + self.additional_properties[:'twol_ingested_events_bytes_sum'] = self.twol_ingested_events_bytes_sum if attributes.key?(:'twol_ingested_events_bytes_sum') + self.additional_properties[:'universal_service_monitoring_host_top99p'] = self.universal_service_monitoring_host_top99p if attributes.key?(:'universal_service_monitoring_host_top99p') + self.additional_properties[:'vsphere_host_top99p'] = self.vsphere_host_top99p if attributes.key?(:'vsphere_host_top99p') + self.additional_properties[:'vuln_management_host_count_top99p'] = self.vuln_management_host_count_top99p if attributes.key?(:'vuln_management_host_count_top99p') + self.additional_properties[:'workflow_executions_usage_sum'] = self.workflow_executions_usage_sum if attributes.key?(:'workflow_executions_usage_sum') end # Returns the object in the form of hash, with additionalProperties support. diff --git a/lib/datadog_api_client/v1/models/usage_summary_date_org.rb b/lib/datadog_api_client/v1/models/usage_summary_date_org.rb index 4bd85f030635..703ef3c507f4 100644 --- a/lib/datadog_api_client/v1/models/usage_summary_date_org.rb +++ b/lib/datadog_api_client/v1/models/usage_summary_date_org.rb @@ -2858,6 +2858,313 @@ def initialize(attributes = {}) if attributes.key?(:'workflow_executions_usage_sum') self.workflow_executions_usage_sum = attributes[:'workflow_executions_usage_sum'] end + self.additional_properties[:'account_name'] = self.account_name if attributes.key?(:'account_name') + self.additional_properties[:'account_public_id'] = self.account_public_id if attributes.key?(:'account_public_id') + self.additional_properties[:'agent_host_top99p'] = self.agent_host_top99p if attributes.key?(:'agent_host_top99p') + self.additional_properties[:'ai_credits_agent_builder_ai_credits_sum'] = self.ai_credits_agent_builder_ai_credits_sum if attributes.key?(:'ai_credits_agent_builder_ai_credits_sum') + self.additional_properties[:'ai_credits_bits_assistant_ai_credits_sum'] = self.ai_credits_bits_assistant_ai_credits_sum if attributes.key?(:'ai_credits_bits_assistant_ai_credits_sum') + self.additional_properties[:'ai_credits_bits_dev_ai_credits_sum'] = self.ai_credits_bits_dev_ai_credits_sum if attributes.key?(:'ai_credits_bits_dev_ai_credits_sum') + self.additional_properties[:'ai_credits_bits_sre_ai_credits_sum'] = self.ai_credits_bits_sre_ai_credits_sum if attributes.key?(:'ai_credits_bits_sre_ai_credits_sum') + self.additional_properties[:'ai_credits_sum'] = self.ai_credits_sum if attributes.key?(:'ai_credits_sum') + self.additional_properties[:'apm_azure_app_service_host_top99p'] = self.apm_azure_app_service_host_top99p if attributes.key?(:'apm_azure_app_service_host_top99p') + self.additional_properties[:'apm_devsecops_host_top99p'] = self.apm_devsecops_host_top99p if attributes.key?(:'apm_devsecops_host_top99p') + self.additional_properties[:'apm_enterprise_standalone_hosts_top99p'] = self.apm_enterprise_standalone_hosts_top99p if attributes.key?(:'apm_enterprise_standalone_hosts_top99p') + self.additional_properties[:'apm_fargate_count_avg'] = self.apm_fargate_count_avg if attributes.key?(:'apm_fargate_count_avg') + self.additional_properties[:'apm_host_top99p'] = self.apm_host_top99p if attributes.key?(:'apm_host_top99p') + self.additional_properties[:'apm_pro_standalone_hosts_top99p'] = self.apm_pro_standalone_hosts_top99p if attributes.key?(:'apm_pro_standalone_hosts_top99p') + self.additional_properties[:'appsec_fargate_count_avg'] = self.appsec_fargate_count_avg if attributes.key?(:'appsec_fargate_count_avg') + self.additional_properties[:'asm_serverless_sum'] = self.asm_serverless_sum if attributes.key?(:'asm_serverless_sum') + self.additional_properties[:'audit_logs_lines_indexed_sum'] = self.audit_logs_lines_indexed_sum if attributes.key?(:'audit_logs_lines_indexed_sum') + self.additional_properties[:'audit_trail_enabled_hwm'] = self.audit_trail_enabled_hwm if attributes.key?(:'audit_trail_enabled_hwm') + self.additional_properties[:'audit_trail_event_forwarding_events_sum'] = self.audit_trail_event_forwarding_events_sum if attributes.key?(:'audit_trail_event_forwarding_events_sum') + self.additional_properties[:'avg_profiled_fargate_tasks'] = self.avg_profiled_fargate_tasks if attributes.key?(:'avg_profiled_fargate_tasks') + self.additional_properties[:'aws_host_top99p'] = self.aws_host_top99p if attributes.key?(:'aws_host_top99p') + self.additional_properties[:'aws_lambda_func_count'] = self.aws_lambda_func_count if attributes.key?(:'aws_lambda_func_count') + self.additional_properties[:'aws_lambda_invocations_sum'] = self.aws_lambda_invocations_sum if attributes.key?(:'aws_lambda_invocations_sum') + self.additional_properties[:'azure_app_service_top99p'] = self.azure_app_service_top99p if attributes.key?(:'azure_app_service_top99p') + self.additional_properties[:'billable_ingested_bytes_sum'] = self.billable_ingested_bytes_sum if attributes.key?(:'billable_ingested_bytes_sum') + self.additional_properties[:'bits_ai_investigations_sum'] = self.bits_ai_investigations_sum if attributes.key?(:'bits_ai_investigations_sum') + self.additional_properties[:'browser_rum_lite_session_count_sum'] = self.browser_rum_lite_session_count_sum if attributes.key?(:'browser_rum_lite_session_count_sum') + self.additional_properties[:'browser_rum_replay_session_count_sum'] = self.browser_rum_replay_session_count_sum if attributes.key?(:'browser_rum_replay_session_count_sum') + self.additional_properties[:'browser_rum_units_sum'] = self.browser_rum_units_sum if attributes.key?(:'browser_rum_units_sum') + self.additional_properties[:'ccm_anthropic_spend_last'] = self.ccm_anthropic_spend_last if attributes.key?(:'ccm_anthropic_spend_last') + self.additional_properties[:'ccm_aws_spend_last'] = self.ccm_aws_spend_last if attributes.key?(:'ccm_aws_spend_last') + self.additional_properties[:'ccm_azure_spend_last'] = self.ccm_azure_spend_last if attributes.key?(:'ccm_azure_spend_last') + self.additional_properties[:'ccm_confluent_spend_last'] = self.ccm_confluent_spend_last if attributes.key?(:'ccm_confluent_spend_last') + self.additional_properties[:'ccm_databricks_spend_last'] = self.ccm_databricks_spend_last if attributes.key?(:'ccm_databricks_spend_last') + self.additional_properties[:'ccm_elastic_spend_last'] = self.ccm_elastic_spend_last if attributes.key?(:'ccm_elastic_spend_last') + self.additional_properties[:'ccm_fastly_spend_last'] = self.ccm_fastly_spend_last if attributes.key?(:'ccm_fastly_spend_last') + self.additional_properties[:'ccm_gcp_spend_last'] = self.ccm_gcp_spend_last if attributes.key?(:'ccm_gcp_spend_last') + self.additional_properties[:'ccm_github_spend_last'] = self.ccm_github_spend_last if attributes.key?(:'ccm_github_spend_last') + self.additional_properties[:'ccm_mongodb_spend_last'] = self.ccm_mongodb_spend_last if attributes.key?(:'ccm_mongodb_spend_last') + self.additional_properties[:'ccm_oci_spend_last'] = self.ccm_oci_spend_last if attributes.key?(:'ccm_oci_spend_last') + self.additional_properties[:'ccm_openai_spend_last'] = self.ccm_openai_spend_last if attributes.key?(:'ccm_openai_spend_last') + self.additional_properties[:'ccm_snowflake_spend_last'] = self.ccm_snowflake_spend_last if attributes.key?(:'ccm_snowflake_spend_last') + self.additional_properties[:'ccm_spend_monitored_ent_last'] = self.ccm_spend_monitored_ent_last if attributes.key?(:'ccm_spend_monitored_ent_last') + self.additional_properties[:'ccm_spend_monitored_pro_last'] = self.ccm_spend_monitored_pro_last if attributes.key?(:'ccm_spend_monitored_pro_last') + self.additional_properties[:'ccm_twilio_spend_last'] = self.ccm_twilio_spend_last if attributes.key?(:'ccm_twilio_spend_last') + self.additional_properties[:'ci_pipeline_indexed_spans_sum'] = self.ci_pipeline_indexed_spans_sum if attributes.key?(:'ci_pipeline_indexed_spans_sum') + self.additional_properties[:'ci_test_indexed_spans_sum'] = self.ci_test_indexed_spans_sum if attributes.key?(:'ci_test_indexed_spans_sum') + self.additional_properties[:'ci_visibility_itr_committers_hwm'] = self.ci_visibility_itr_committers_hwm if attributes.key?(:'ci_visibility_itr_committers_hwm') + self.additional_properties[:'ci_visibility_pipeline_committers_hwm'] = self.ci_visibility_pipeline_committers_hwm if attributes.key?(:'ci_visibility_pipeline_committers_hwm') + self.additional_properties[:'ci_visibility_test_committers_hwm'] = self.ci_visibility_test_committers_hwm if attributes.key?(:'ci_visibility_test_committers_hwm') + self.additional_properties[:'cloud_cost_management_aws_host_count_avg'] = self.cloud_cost_management_aws_host_count_avg if attributes.key?(:'cloud_cost_management_aws_host_count_avg') + self.additional_properties[:'cloud_cost_management_azure_host_count_avg'] = self.cloud_cost_management_azure_host_count_avg if attributes.key?(:'cloud_cost_management_azure_host_count_avg') + self.additional_properties[:'cloud_cost_management_gcp_host_count_avg'] = self.cloud_cost_management_gcp_host_count_avg if attributes.key?(:'cloud_cost_management_gcp_host_count_avg') + self.additional_properties[:'cloud_cost_management_host_count_avg'] = self.cloud_cost_management_host_count_avg if attributes.key?(:'cloud_cost_management_host_count_avg') + self.additional_properties[:'cloud_cost_management_oci_host_count_avg'] = self.cloud_cost_management_oci_host_count_avg if attributes.key?(:'cloud_cost_management_oci_host_count_avg') + self.additional_properties[:'cloud_siem_events_sum'] = self.cloud_siem_events_sum if attributes.key?(:'cloud_siem_events_sum') + self.additional_properties[:'cloud_siem_indexed_logs_sum'] = self.cloud_siem_indexed_logs_sum if attributes.key?(:'cloud_siem_indexed_logs_sum') + self.additional_properties[:'code_analysis_sa_committers_hwm'] = self.code_analysis_sa_committers_hwm if attributes.key?(:'code_analysis_sa_committers_hwm') + self.additional_properties[:'code_analysis_sca_committers_hwm'] = self.code_analysis_sca_committers_hwm if attributes.key?(:'code_analysis_sca_committers_hwm') + self.additional_properties[:'code_security_host_top99p'] = self.code_security_host_top99p if attributes.key?(:'code_security_host_top99p') + self.additional_properties[:'container_avg'] = self.container_avg if attributes.key?(:'container_avg') + self.additional_properties[:'container_excl_agent_avg'] = self.container_excl_agent_avg if attributes.key?(:'container_excl_agent_avg') + self.additional_properties[:'container_hwm'] = self.container_hwm if attributes.key?(:'container_hwm') + self.additional_properties[:'csm_container_enterprise_compliance_count_sum'] = self.csm_container_enterprise_compliance_count_sum if attributes.key?(:'csm_container_enterprise_compliance_count_sum') + self.additional_properties[:'csm_container_enterprise_cws_count_sum'] = self.csm_container_enterprise_cws_count_sum if attributes.key?(:'csm_container_enterprise_cws_count_sum') + self.additional_properties[:'csm_container_enterprise_total_count_sum'] = self.csm_container_enterprise_total_count_sum if attributes.key?(:'csm_container_enterprise_total_count_sum') + self.additional_properties[:'csm_host_enterprise_aas_host_count_top99p'] = self.csm_host_enterprise_aas_host_count_top99p if attributes.key?(:'csm_host_enterprise_aas_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_aws_host_count_top99p'] = self.csm_host_enterprise_aws_host_count_top99p if attributes.key?(:'csm_host_enterprise_aws_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_azure_host_count_top99p'] = self.csm_host_enterprise_azure_host_count_top99p if attributes.key?(:'csm_host_enterprise_azure_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_compliance_host_count_top99p'] = self.csm_host_enterprise_compliance_host_count_top99p if attributes.key?(:'csm_host_enterprise_compliance_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_cws_host_count_top99p'] = self.csm_host_enterprise_cws_host_count_top99p if attributes.key?(:'csm_host_enterprise_cws_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_gcp_host_count_top99p'] = self.csm_host_enterprise_gcp_host_count_top99p if attributes.key?(:'csm_host_enterprise_gcp_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_oci_host_count_top99p'] = self.csm_host_enterprise_oci_host_count_top99p if attributes.key?(:'csm_host_enterprise_oci_host_count_top99p') + self.additional_properties[:'csm_host_enterprise_total_host_count_top99p'] = self.csm_host_enterprise_total_host_count_top99p if attributes.key?(:'csm_host_enterprise_total_host_count_top99p') + self.additional_properties[:'csm_host_pro_hosts_agentless_scanners_sum'] = self.csm_host_pro_hosts_agentless_scanners_sum if attributes.key?(:'csm_host_pro_hosts_agentless_scanners_sum') + self.additional_properties[:'csm_host_pro_hosts_agentless_scanners_top99p'] = self.csm_host_pro_hosts_agentless_scanners_top99p if attributes.key?(:'csm_host_pro_hosts_agentless_scanners_top99p') + self.additional_properties[:'csm_host_pro_oci_host_count_top99p'] = self.csm_host_pro_oci_host_count_top99p if attributes.key?(:'csm_host_pro_oci_host_count_top99p') + self.additional_properties[:'cspm_aas_host_top99p'] = self.cspm_aas_host_top99p if attributes.key?(:'cspm_aas_host_top99p') + self.additional_properties[:'cspm_aws_host_top99p'] = self.cspm_aws_host_top99p if attributes.key?(:'cspm_aws_host_top99p') + self.additional_properties[:'cspm_azure_host_top99p'] = self.cspm_azure_host_top99p if attributes.key?(:'cspm_azure_host_top99p') + self.additional_properties[:'cspm_container_avg'] = self.cspm_container_avg if attributes.key?(:'cspm_container_avg') + self.additional_properties[:'cspm_container_hwm'] = self.cspm_container_hwm if attributes.key?(:'cspm_container_hwm') + self.additional_properties[:'cspm_gcp_host_top99p'] = self.cspm_gcp_host_top99p if attributes.key?(:'cspm_gcp_host_top99p') + self.additional_properties[:'cspm_host_top99p'] = self.cspm_host_top99p if attributes.key?(:'cspm_host_top99p') + self.additional_properties[:'cspm_hosts_agentless_scanners_sum'] = self.cspm_hosts_agentless_scanners_sum if attributes.key?(:'cspm_hosts_agentless_scanners_sum') + self.additional_properties[:'cspm_hosts_agentless_scanners_top99p'] = self.cspm_hosts_agentless_scanners_top99p if attributes.key?(:'cspm_hosts_agentless_scanners_top99p') + self.additional_properties[:'custom_historical_ts_avg'] = self.custom_historical_ts_avg if attributes.key?(:'custom_historical_ts_avg') + self.additional_properties[:'custom_live_ts_avg'] = self.custom_live_ts_avg if attributes.key?(:'custom_live_ts_avg') + self.additional_properties[:'custom_ts_avg'] = self.custom_ts_avg if attributes.key?(:'custom_ts_avg') + self.additional_properties[:'cws_container_count_avg'] = self.cws_container_count_avg if attributes.key?(:'cws_container_count_avg') + self.additional_properties[:'cws_fargate_task_avg'] = self.cws_fargate_task_avg if attributes.key?(:'cws_fargate_task_avg') + self.additional_properties[:'cws_host_top99p'] = self.cws_host_top99p if attributes.key?(:'cws_host_top99p') + self.additional_properties[:'data_jobs_monitoring_host_hr_sum'] = self.data_jobs_monitoring_host_hr_sum if attributes.key?(:'data_jobs_monitoring_host_hr_sum') + self.additional_properties[:'data_stream_monitoring_host_count_sum'] = self.data_stream_monitoring_host_count_sum if attributes.key?(:'data_stream_monitoring_host_count_sum') + self.additional_properties[:'data_stream_monitoring_host_count_top99p'] = self.data_stream_monitoring_host_count_top99p if attributes.key?(:'data_stream_monitoring_host_count_top99p') + self.additional_properties[:'dbm_host_top99p_sum'] = self.dbm_host_top99p_sum if attributes.key?(:'dbm_host_top99p_sum') + self.additional_properties[:'dbm_queries_avg_sum'] = self.dbm_queries_avg_sum if attributes.key?(:'dbm_queries_avg_sum') + self.additional_properties[:'do_jobs_monitoring_orchestrators_job_hours_sum'] = self.do_jobs_monitoring_orchestrators_job_hours_sum if attributes.key?(:'do_jobs_monitoring_orchestrators_job_hours_sum') + self.additional_properties[:'eph_infra_host_agent_sum'] = self.eph_infra_host_agent_sum if attributes.key?(:'eph_infra_host_agent_sum') + self.additional_properties[:'eph_infra_host_alibaba_sum'] = self.eph_infra_host_alibaba_sum if attributes.key?(:'eph_infra_host_alibaba_sum') + self.additional_properties[:'eph_infra_host_aws_sum'] = self.eph_infra_host_aws_sum if attributes.key?(:'eph_infra_host_aws_sum') + self.additional_properties[:'eph_infra_host_azure_sum'] = self.eph_infra_host_azure_sum if attributes.key?(:'eph_infra_host_azure_sum') + self.additional_properties[:'eph_infra_host_basic_infra_basic_agent_sum'] = self.eph_infra_host_basic_infra_basic_agent_sum if attributes.key?(:'eph_infra_host_basic_infra_basic_agent_sum') + self.additional_properties[:'eph_infra_host_basic_infra_basic_vsphere_sum'] = self.eph_infra_host_basic_infra_basic_vsphere_sum if attributes.key?(:'eph_infra_host_basic_infra_basic_vsphere_sum') + self.additional_properties[:'eph_infra_host_basic_sum'] = self.eph_infra_host_basic_sum if attributes.key?(:'eph_infra_host_basic_sum') + self.additional_properties[:'eph_infra_host_ent_sum'] = self.eph_infra_host_ent_sum if attributes.key?(:'eph_infra_host_ent_sum') + self.additional_properties[:'eph_infra_host_gcp_sum'] = self.eph_infra_host_gcp_sum if attributes.key?(:'eph_infra_host_gcp_sum') + self.additional_properties[:'eph_infra_host_heroku_sum'] = self.eph_infra_host_heroku_sum if attributes.key?(:'eph_infra_host_heroku_sum') + self.additional_properties[:'eph_infra_host_only_aas_sum'] = self.eph_infra_host_only_aas_sum if attributes.key?(:'eph_infra_host_only_aas_sum') + self.additional_properties[:'eph_infra_host_only_vsphere_sum'] = self.eph_infra_host_only_vsphere_sum if attributes.key?(:'eph_infra_host_only_vsphere_sum') + self.additional_properties[:'eph_infra_host_opentelemetry_apm_sum'] = self.eph_infra_host_opentelemetry_apm_sum if attributes.key?(:'eph_infra_host_opentelemetry_apm_sum') + self.additional_properties[:'eph_infra_host_opentelemetry_sum'] = self.eph_infra_host_opentelemetry_sum if attributes.key?(:'eph_infra_host_opentelemetry_sum') + self.additional_properties[:'eph_infra_host_pro_sum'] = self.eph_infra_host_pro_sum if attributes.key?(:'eph_infra_host_pro_sum') + self.additional_properties[:'eph_infra_host_proplus_sum'] = self.eph_infra_host_proplus_sum if attributes.key?(:'eph_infra_host_proplus_sum') + self.additional_properties[:'eph_infra_host_proxmox_sum'] = self.eph_infra_host_proxmox_sum if attributes.key?(:'eph_infra_host_proxmox_sum') + self.additional_properties[:'error_tracking_apm_error_events_sum'] = self.error_tracking_apm_error_events_sum if attributes.key?(:'error_tracking_apm_error_events_sum') + self.additional_properties[:'error_tracking_error_events_sum'] = self.error_tracking_error_events_sum if attributes.key?(:'error_tracking_error_events_sum') + self.additional_properties[:'error_tracking_events_sum'] = self.error_tracking_events_sum if attributes.key?(:'error_tracking_events_sum') + self.additional_properties[:'error_tracking_rum_error_events_sum'] = self.error_tracking_rum_error_events_sum if attributes.key?(:'error_tracking_rum_error_events_sum') + self.additional_properties[:'event_management_correlation_correlated_events_sum'] = self.event_management_correlation_correlated_events_sum if attributes.key?(:'event_management_correlation_correlated_events_sum') + self.additional_properties[:'event_management_correlation_correlated_related_events_sum'] = self.event_management_correlation_correlated_related_events_sum if attributes.key?(:'event_management_correlation_correlated_related_events_sum') + self.additional_properties[:'event_management_correlation_sum'] = self.event_management_correlation_sum if attributes.key?(:'event_management_correlation_sum') + self.additional_properties[:'fargate_container_profiler_profiling_fargate_avg'] = self.fargate_container_profiler_profiling_fargate_avg if attributes.key?(:'fargate_container_profiler_profiling_fargate_avg') + self.additional_properties[:'fargate_container_profiler_profiling_fargate_eks_avg'] = self.fargate_container_profiler_profiling_fargate_eks_avg if attributes.key?(:'fargate_container_profiler_profiling_fargate_eks_avg') + self.additional_properties[:'fargate_tasks_count_avg'] = self.fargate_tasks_count_avg if attributes.key?(:'fargate_tasks_count_avg') + self.additional_properties[:'fargate_tasks_count_hwm'] = self.fargate_tasks_count_hwm if attributes.key?(:'fargate_tasks_count_hwm') + self.additional_properties[:'feature_flags_config_requests_sum'] = self.feature_flags_config_requests_sum if attributes.key?(:'feature_flags_config_requests_sum') + self.additional_properties[:'flex_logs_compute_large_avg'] = self.flex_logs_compute_large_avg if attributes.key?(:'flex_logs_compute_large_avg') + self.additional_properties[:'flex_logs_compute_medium_avg'] = self.flex_logs_compute_medium_avg if attributes.key?(:'flex_logs_compute_medium_avg') + self.additional_properties[:'flex_logs_compute_small_avg'] = self.flex_logs_compute_small_avg if attributes.key?(:'flex_logs_compute_small_avg') + self.additional_properties[:'flex_logs_compute_xlarge_avg'] = self.flex_logs_compute_xlarge_avg if attributes.key?(:'flex_logs_compute_xlarge_avg') + self.additional_properties[:'flex_logs_compute_xsmall_avg'] = self.flex_logs_compute_xsmall_avg if attributes.key?(:'flex_logs_compute_xsmall_avg') + self.additional_properties[:'flex_logs_starter_avg'] = self.flex_logs_starter_avg if attributes.key?(:'flex_logs_starter_avg') + self.additional_properties[:'flex_logs_starter_storage_index_avg'] = self.flex_logs_starter_storage_index_avg if attributes.key?(:'flex_logs_starter_storage_index_avg') + self.additional_properties[:'flex_logs_starter_storage_retention_adjustment_avg'] = self.flex_logs_starter_storage_retention_adjustment_avg if attributes.key?(:'flex_logs_starter_storage_retention_adjustment_avg') + self.additional_properties[:'flex_stored_logs_avg'] = self.flex_stored_logs_avg if attributes.key?(:'flex_stored_logs_avg') + self.additional_properties[:'forwarding_events_bytes_sum'] = self.forwarding_events_bytes_sum if attributes.key?(:'forwarding_events_bytes_sum') + self.additional_properties[:'gcp_host_top99p'] = self.gcp_host_top99p if attributes.key?(:'gcp_host_top99p') + self.additional_properties[:'heroku_host_top99p'] = self.heroku_host_top99p if attributes.key?(:'heroku_host_top99p') + self.additional_properties[:'id'] = self.id if attributes.key?(:'id') + self.additional_properties[:'incident_management_monthly_active_users_hwm'] = self.incident_management_monthly_active_users_hwm if attributes.key?(:'incident_management_monthly_active_users_hwm') + self.additional_properties[:'incident_management_seats_hwm'] = self.incident_management_seats_hwm if attributes.key?(:'incident_management_seats_hwm') + self.additional_properties[:'indexed_events_count_sum'] = self.indexed_events_count_sum if attributes.key?(:'indexed_events_count_sum') + self.additional_properties[:'indexed_points_sum'] = self.indexed_points_sum if attributes.key?(:'indexed_points_sum') + self.additional_properties[:'infra_cpu_avg'] = self.infra_cpu_avg if attributes.key?(:'infra_cpu_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_agent_avg'] = self.infra_cpu_default_infra_host_vcpu_agent_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_agent_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_agent_basic_avg'] = self.infra_cpu_default_infra_host_vcpu_agent_basic_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_agent_basic_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_agent_basic_sum'] = self.infra_cpu_default_infra_host_vcpu_agent_basic_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_agent_basic_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_agent_sum'] = self.infra_cpu_default_infra_host_vcpu_agent_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_agent_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_aws_avg'] = self.infra_cpu_default_infra_host_vcpu_aws_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_aws_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_aws_sum'] = self.infra_cpu_default_infra_host_vcpu_aws_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_aws_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_azure_avg'] = self.infra_cpu_default_infra_host_vcpu_azure_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_azure_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_azure_sum'] = self.infra_cpu_default_infra_host_vcpu_azure_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_azure_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_gcp_avg'] = self.infra_cpu_default_infra_host_vcpu_gcp_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_gcp_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_gcp_sum'] = self.infra_cpu_default_infra_host_vcpu_gcp_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_gcp_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_nutanix_avg'] = self.infra_cpu_default_infra_host_vcpu_nutanix_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_nutanix_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_nutanix_basic_avg'] = self.infra_cpu_default_infra_host_vcpu_nutanix_basic_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_nutanix_basic_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_nutanix_basic_sum'] = self.infra_cpu_default_infra_host_vcpu_nutanix_basic_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_nutanix_basic_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_nutanix_sum'] = self.infra_cpu_default_infra_host_vcpu_nutanix_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_nutanix_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_opentelemetry_avg'] = self.infra_cpu_default_infra_host_vcpu_opentelemetry_avg if attributes.key?(:'infra_cpu_default_infra_host_vcpu_opentelemetry_avg') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_opentelemetry_sum'] = self.infra_cpu_default_infra_host_vcpu_opentelemetry_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_opentelemetry_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_agent_avg'] = self.infra_cpu_observed_infra_host_vcpu_agent_avg if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_agent_avg') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_agent_sum'] = self.infra_cpu_observed_infra_host_vcpu_agent_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_agent_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_aws_avg'] = self.infra_cpu_observed_infra_host_vcpu_aws_avg if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_aws_avg') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_aws_sum'] = self.infra_cpu_observed_infra_host_vcpu_aws_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_aws_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_azure_avg'] = self.infra_cpu_observed_infra_host_vcpu_azure_avg if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_azure_avg') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_azure_sum'] = self.infra_cpu_observed_infra_host_vcpu_azure_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_azure_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_gcp_avg'] = self.infra_cpu_observed_infra_host_vcpu_gcp_avg if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_gcp_avg') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_gcp_sum'] = self.infra_cpu_observed_infra_host_vcpu_gcp_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_gcp_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_nutanix_avg'] = self.infra_cpu_observed_infra_host_vcpu_nutanix_avg if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_nutanix_avg') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_nutanix_sum'] = self.infra_cpu_observed_infra_host_vcpu_nutanix_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_nutanix_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_opentelemetry_avg'] = self.infra_cpu_observed_infra_host_vcpu_opentelemetry_avg if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_opentelemetry_avg') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_opentelemetry_sum'] = self.infra_cpu_observed_infra_host_vcpu_opentelemetry_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_opentelemetry_sum') + self.additional_properties[:'infra_cpu_sum'] = self.infra_cpu_sum if attributes.key?(:'infra_cpu_sum') + self.additional_properties[:'infra_edge_monitoring_devices_top99p'] = self.infra_edge_monitoring_devices_top99p if attributes.key?(:'infra_edge_monitoring_devices_top99p') + self.additional_properties[:'infra_host_basic_infra_basic_agent_top99p'] = self.infra_host_basic_infra_basic_agent_top99p if attributes.key?(:'infra_host_basic_infra_basic_agent_top99p') + self.additional_properties[:'infra_host_basic_infra_basic_vsphere_top99p'] = self.infra_host_basic_infra_basic_vsphere_top99p if attributes.key?(:'infra_host_basic_infra_basic_vsphere_top99p') + self.additional_properties[:'infra_host_basic_top99p'] = self.infra_host_basic_top99p if attributes.key?(:'infra_host_basic_top99p') + self.additional_properties[:'infra_host_top99p'] = self.infra_host_top99p if attributes.key?(:'infra_host_top99p') + self.additional_properties[:'infra_storage_mgmt_objects_count_avg'] = self.infra_storage_mgmt_objects_count_avg if attributes.key?(:'infra_storage_mgmt_objects_count_avg') + self.additional_properties[:'ingest_points_sum'] = self.ingest_points_sum if attributes.key?(:'ingest_points_sum') + self.additional_properties[:'ingested_events_bytes_sum'] = self.ingested_events_bytes_sum if attributes.key?(:'ingested_events_bytes_sum') + self.additional_properties[:'iot_apm_host_sum'] = self.iot_apm_host_sum if attributes.key?(:'iot_apm_host_sum') + self.additional_properties[:'iot_apm_host_top99p'] = self.iot_apm_host_top99p if attributes.key?(:'iot_apm_host_top99p') + self.additional_properties[:'iot_device_agg_sum'] = self.iot_device_agg_sum if attributes.key?(:'iot_device_agg_sum') + self.additional_properties[:'iot_device_top99p_sum'] = self.iot_device_top99p_sum if attributes.key?(:'iot_device_top99p_sum') + self.additional_properties[:'llm_observability_15day_retention_spans_sum'] = self.llm_observability_15day_retention_spans_sum if attributes.key?(:'llm_observability_15day_retention_spans_sum') + self.additional_properties[:'llm_observability_30day_retention_spans_sum'] = self.llm_observability_30day_retention_spans_sum if attributes.key?(:'llm_observability_30day_retention_spans_sum') + self.additional_properties[:'llm_observability_60day_retention_spans_sum'] = self.llm_observability_60day_retention_spans_sum if attributes.key?(:'llm_observability_60day_retention_spans_sum') + self.additional_properties[:'llm_observability_90day_retention_spans_sum'] = self.llm_observability_90day_retention_spans_sum if attributes.key?(:'llm_observability_90day_retention_spans_sum') + self.additional_properties[:'llm_observability_min_spend_sum'] = self.llm_observability_min_spend_sum if attributes.key?(:'llm_observability_min_spend_sum') + self.additional_properties[:'llm_observability_sum'] = self.llm_observability_sum if attributes.key?(:'llm_observability_sum') + self.additional_properties[:'logs_archive_search_gb_scanned_sum'] = self.logs_archive_search_gb_scanned_sum if attributes.key?(:'logs_archive_search_gb_scanned_sum') + self.additional_properties[:'metric_names_sum'] = self.metric_names_sum if attributes.key?(:'metric_names_sum') + self.additional_properties[:'mobile_rum_lite_session_count_sum'] = self.mobile_rum_lite_session_count_sum if attributes.key?(:'mobile_rum_lite_session_count_sum') + self.additional_properties[:'mobile_rum_session_count_android_sum'] = self.mobile_rum_session_count_android_sum if attributes.key?(:'mobile_rum_session_count_android_sum') + self.additional_properties[:'mobile_rum_session_count_flutter_sum'] = self.mobile_rum_session_count_flutter_sum if attributes.key?(:'mobile_rum_session_count_flutter_sum') + self.additional_properties[:'mobile_rum_session_count_ios_sum'] = self.mobile_rum_session_count_ios_sum if attributes.key?(:'mobile_rum_session_count_ios_sum') + self.additional_properties[:'mobile_rum_session_count_reactnative_sum'] = self.mobile_rum_session_count_reactnative_sum if attributes.key?(:'mobile_rum_session_count_reactnative_sum') + self.additional_properties[:'mobile_rum_session_count_roku_sum'] = self.mobile_rum_session_count_roku_sum if attributes.key?(:'mobile_rum_session_count_roku_sum') + self.additional_properties[:'mobile_rum_session_count_sum'] = self.mobile_rum_session_count_sum if attributes.key?(:'mobile_rum_session_count_sum') + self.additional_properties[:'mobile_rum_units_sum'] = self.mobile_rum_units_sum if attributes.key?(:'mobile_rum_units_sum') + self.additional_properties[:'name'] = self.name if attributes.key?(:'name') + self.additional_properties[:'ndm_netflow_events_sum'] = self.ndm_netflow_events_sum if attributes.key?(:'ndm_netflow_events_sum') + self.additional_properties[:'netflow_indexed_events_count_sum'] = self.netflow_indexed_events_count_sum if attributes.key?(:'netflow_indexed_events_count_sum') + self.additional_properties[:'network_device_wireless_top99p'] = self.network_device_wireless_top99p if attributes.key?(:'network_device_wireless_top99p') + self.additional_properties[:'network_path_sum'] = self.network_path_sum if attributes.key?(:'network_path_sum') + self.additional_properties[:'npm_host_top99p'] = self.npm_host_top99p if attributes.key?(:'npm_host_top99p') + self.additional_properties[:'observability_pipelines_bytes_processed_sum'] = self.observability_pipelines_bytes_processed_sum if attributes.key?(:'observability_pipelines_bytes_processed_sum') + self.additional_properties[:'oci_host_sum'] = self.oci_host_sum if attributes.key?(:'oci_host_sum') + self.additional_properties[:'oci_host_top99p'] = self.oci_host_top99p if attributes.key?(:'oci_host_top99p') + self.additional_properties[:'on_call_seat_hwm'] = self.on_call_seat_hwm if attributes.key?(:'on_call_seat_hwm') + self.additional_properties[:'online_archive_events_count_sum'] = self.online_archive_events_count_sum if attributes.key?(:'online_archive_events_count_sum') + self.additional_properties[:'opentelemetry_apm_host_top99p'] = self.opentelemetry_apm_host_top99p if attributes.key?(:'opentelemetry_apm_host_top99p') + self.additional_properties[:'opentelemetry_host_top99p'] = self.opentelemetry_host_top99p if attributes.key?(:'opentelemetry_host_top99p') + self.additional_properties[:'product_analytics_sum'] = self.product_analytics_sum if attributes.key?(:'product_analytics_sum') + self.additional_properties[:'profiling_aas_count_top99p'] = self.profiling_aas_count_top99p if attributes.key?(:'profiling_aas_count_top99p') + self.additional_properties[:'profiling_host_top99p'] = self.profiling_host_top99p if attributes.key?(:'profiling_host_top99p') + self.additional_properties[:'proxmox_host_sum'] = self.proxmox_host_sum if attributes.key?(:'proxmox_host_sum') + self.additional_properties[:'proxmox_host_top99p'] = self.proxmox_host_top99p if attributes.key?(:'proxmox_host_top99p') + self.additional_properties[:'public_id'] = self.public_id if attributes.key?(:'public_id') + self.additional_properties[:'published_app_hwm'] = self.published_app_hwm if attributes.key?(:'published_app_hwm') + self.additional_properties[:'region'] = self.region if attributes.key?(:'region') + self.additional_properties[:'rum_browser_and_mobile_session_count'] = self.rum_browser_and_mobile_session_count if attributes.key?(:'rum_browser_and_mobile_session_count') + self.additional_properties[:'rum_browser_legacy_session_count_sum'] = self.rum_browser_legacy_session_count_sum if attributes.key?(:'rum_browser_legacy_session_count_sum') + self.additional_properties[:'rum_browser_lite_session_count_sum'] = self.rum_browser_lite_session_count_sum if attributes.key?(:'rum_browser_lite_session_count_sum') + self.additional_properties[:'rum_browser_replay_session_count_sum'] = self.rum_browser_replay_session_count_sum if attributes.key?(:'rum_browser_replay_session_count_sum') + self.additional_properties[:'rum_indexed_sessions_sum'] = self.rum_indexed_sessions_sum if attributes.key?(:'rum_indexed_sessions_sum') + self.additional_properties[:'rum_ingested_sessions_sum'] = self.rum_ingested_sessions_sum if attributes.key?(:'rum_ingested_sessions_sum') + self.additional_properties[:'rum_lite_session_count_sum'] = self.rum_lite_session_count_sum if attributes.key?(:'rum_lite_session_count_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_android_sum'] = self.rum_mobile_legacy_session_count_android_sum if attributes.key?(:'rum_mobile_legacy_session_count_android_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_flutter_sum'] = self.rum_mobile_legacy_session_count_flutter_sum if attributes.key?(:'rum_mobile_legacy_session_count_flutter_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_ios_sum'] = self.rum_mobile_legacy_session_count_ios_sum if attributes.key?(:'rum_mobile_legacy_session_count_ios_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_reactnative_sum'] = self.rum_mobile_legacy_session_count_reactnative_sum if attributes.key?(:'rum_mobile_legacy_session_count_reactnative_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_roku_sum'] = self.rum_mobile_legacy_session_count_roku_sum if attributes.key?(:'rum_mobile_legacy_session_count_roku_sum') + self.additional_properties[:'rum_mobile_lite_session_count_android_sum'] = self.rum_mobile_lite_session_count_android_sum if attributes.key?(:'rum_mobile_lite_session_count_android_sum') + self.additional_properties[:'rum_mobile_lite_session_count_flutter_sum'] = self.rum_mobile_lite_session_count_flutter_sum if attributes.key?(:'rum_mobile_lite_session_count_flutter_sum') + self.additional_properties[:'rum_mobile_lite_session_count_ios_sum'] = self.rum_mobile_lite_session_count_ios_sum if attributes.key?(:'rum_mobile_lite_session_count_ios_sum') + self.additional_properties[:'rum_mobile_lite_session_count_kotlinmultiplatform_sum'] = self.rum_mobile_lite_session_count_kotlinmultiplatform_sum if attributes.key?(:'rum_mobile_lite_session_count_kotlinmultiplatform_sum') + self.additional_properties[:'rum_mobile_lite_session_count_reactnative_sum'] = self.rum_mobile_lite_session_count_reactnative_sum if attributes.key?(:'rum_mobile_lite_session_count_reactnative_sum') + self.additional_properties[:'rum_mobile_lite_session_count_roku_sum'] = self.rum_mobile_lite_session_count_roku_sum if attributes.key?(:'rum_mobile_lite_session_count_roku_sum') + self.additional_properties[:'rum_mobile_lite_session_count_unity_sum'] = self.rum_mobile_lite_session_count_unity_sum if attributes.key?(:'rum_mobile_lite_session_count_unity_sum') + self.additional_properties[:'rum_mobile_replay_session_count_android_sum'] = self.rum_mobile_replay_session_count_android_sum if attributes.key?(:'rum_mobile_replay_session_count_android_sum') + self.additional_properties[:'rum_mobile_replay_session_count_ios_sum'] = self.rum_mobile_replay_session_count_ios_sum if attributes.key?(:'rum_mobile_replay_session_count_ios_sum') + self.additional_properties[:'rum_mobile_replay_session_count_kotlinmultiplatform_sum'] = self.rum_mobile_replay_session_count_kotlinmultiplatform_sum if attributes.key?(:'rum_mobile_replay_session_count_kotlinmultiplatform_sum') + self.additional_properties[:'rum_mobile_replay_session_count_reactnative_sum'] = self.rum_mobile_replay_session_count_reactnative_sum if attributes.key?(:'rum_mobile_replay_session_count_reactnative_sum') + self.additional_properties[:'rum_replay_session_count_sum'] = self.rum_replay_session_count_sum if attributes.key?(:'rum_replay_session_count_sum') + self.additional_properties[:'rum_session_count_sum'] = self.rum_session_count_sum if attributes.key?(:'rum_session_count_sum') + self.additional_properties[:'rum_session_replay_add_on_sum'] = self.rum_session_replay_add_on_sum if attributes.key?(:'rum_session_replay_add_on_sum') + self.additional_properties[:'rum_total_session_count_sum'] = self.rum_total_session_count_sum if attributes.key?(:'rum_total_session_count_sum') + self.additional_properties[:'rum_units_sum'] = self.rum_units_sum if attributes.key?(:'rum_units_sum') + self.additional_properties[:'sca_fargate_count_avg'] = self.sca_fargate_count_avg if attributes.key?(:'sca_fargate_count_avg') + self.additional_properties[:'sca_fargate_count_hwm'] = self.sca_fargate_count_hwm if attributes.key?(:'sca_fargate_count_hwm') + self.additional_properties[:'sds_apm_scanned_bytes_sum'] = self.sds_apm_scanned_bytes_sum if attributes.key?(:'sds_apm_scanned_bytes_sum') + self.additional_properties[:'sds_events_scanned_bytes_sum'] = self.sds_events_scanned_bytes_sum if attributes.key?(:'sds_events_scanned_bytes_sum') + self.additional_properties[:'sds_logs_scanned_bytes_sum'] = self.sds_logs_scanned_bytes_sum if attributes.key?(:'sds_logs_scanned_bytes_sum') + self.additional_properties[:'sds_rum_scanned_bytes_sum'] = self.sds_rum_scanned_bytes_sum if attributes.key?(:'sds_rum_scanned_bytes_sum') + self.additional_properties[:'sds_total_scanned_bytes_sum'] = self.sds_total_scanned_bytes_sum if attributes.key?(:'sds_total_scanned_bytes_sum') + self.additional_properties[:'serverless_apps_apm_apm_azure_appservice_instances_avg'] = self.serverless_apps_apm_apm_azure_appservice_instances_avg if attributes.key?(:'serverless_apps_apm_apm_azure_appservice_instances_avg') + self.additional_properties[:'serverless_apps_apm_apm_azure_azurefunction_instances_avg'] = self.serverless_apps_apm_apm_azure_azurefunction_instances_avg if attributes.key?(:'serverless_apps_apm_apm_azure_azurefunction_instances_avg') + self.additional_properties[:'serverless_apps_apm_apm_azure_containerapp_instances_avg'] = self.serverless_apps_apm_apm_azure_containerapp_instances_avg if attributes.key?(:'serverless_apps_apm_apm_azure_containerapp_instances_avg') + self.additional_properties[:'serverless_apps_apm_apm_fargate_ecs_tasks_avg'] = self.serverless_apps_apm_apm_fargate_ecs_tasks_avg if attributes.key?(:'serverless_apps_apm_apm_fargate_ecs_tasks_avg') + self.additional_properties[:'serverless_apps_apm_apm_gcp_cloudfunction_instances_avg'] = self.serverless_apps_apm_apm_gcp_cloudfunction_instances_avg if attributes.key?(:'serverless_apps_apm_apm_gcp_cloudfunction_instances_avg') + self.additional_properties[:'serverless_apps_apm_apm_gcp_cloudrun_instances_avg'] = self.serverless_apps_apm_apm_gcp_cloudrun_instances_avg if attributes.key?(:'serverless_apps_apm_apm_gcp_cloudrun_instances_avg') + self.additional_properties[:'serverless_apps_apm_apm_gcp_gke_autopilot_pods_avg'] = self.serverless_apps_apm_apm_gcp_gke_autopilot_pods_avg if attributes.key?(:'serverless_apps_apm_apm_gcp_gke_autopilot_pods_avg') + self.additional_properties[:'serverless_apps_apm_avg'] = self.serverless_apps_apm_avg if attributes.key?(:'serverless_apps_apm_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_azure_appservice_instances_avg'] = self.serverless_apps_apm_excl_fargate_apm_azure_appservice_instances_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_azure_appservice_instances_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_azure_azurefunction_instances_avg'] = self.serverless_apps_apm_excl_fargate_apm_azure_azurefunction_instances_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_azure_azurefunction_instances_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_azure_containerapp_instances_avg'] = self.serverless_apps_apm_excl_fargate_apm_azure_containerapp_instances_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_azure_containerapp_instances_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_gcp_cloudfunction_instances_avg'] = self.serverless_apps_apm_excl_fargate_apm_gcp_cloudfunction_instances_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_gcp_cloudfunction_instances_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_gcp_cloudrun_instances_avg'] = self.serverless_apps_apm_excl_fargate_apm_gcp_cloudrun_instances_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_gcp_cloudrun_instances_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_gcp_gke_autopilot_pods_avg'] = self.serverless_apps_apm_excl_fargate_apm_gcp_gke_autopilot_pods_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_gcp_gke_autopilot_pods_avg') + self.additional_properties[:'serverless_apps_apm_excl_fargate_avg'] = self.serverless_apps_apm_excl_fargate_avg if attributes.key?(:'serverless_apps_apm_excl_fargate_avg') + self.additional_properties[:'serverless_apps_azure_container_app_instances_avg'] = self.serverless_apps_azure_container_app_instances_avg if attributes.key?(:'serverless_apps_azure_container_app_instances_avg') + self.additional_properties[:'serverless_apps_azure_count_avg'] = self.serverless_apps_azure_count_avg if attributes.key?(:'serverless_apps_azure_count_avg') + self.additional_properties[:'serverless_apps_azure_function_app_instances_avg'] = self.serverless_apps_azure_function_app_instances_avg if attributes.key?(:'serverless_apps_azure_function_app_instances_avg') + self.additional_properties[:'serverless_apps_azure_web_app_instances_avg'] = self.serverless_apps_azure_web_app_instances_avg if attributes.key?(:'serverless_apps_azure_web_app_instances_avg') + self.additional_properties[:'serverless_apps_dsm_fargate_tasks_avg'] = self.serverless_apps_dsm_fargate_tasks_avg if attributes.key?(:'serverless_apps_dsm_fargate_tasks_avg') + self.additional_properties[:'serverless_apps_ecs_avg'] = self.serverless_apps_ecs_avg if attributes.key?(:'serverless_apps_ecs_avg') + self.additional_properties[:'serverless_apps_eks_avg'] = self.serverless_apps_eks_avg if attributes.key?(:'serverless_apps_eks_avg') + self.additional_properties[:'serverless_apps_excl_fargate_avg'] = self.serverless_apps_excl_fargate_avg if attributes.key?(:'serverless_apps_excl_fargate_avg') + self.additional_properties[:'serverless_apps_excl_fargate_azure_container_app_instances_avg'] = self.serverless_apps_excl_fargate_azure_container_app_instances_avg if attributes.key?(:'serverless_apps_excl_fargate_azure_container_app_instances_avg') + self.additional_properties[:'serverless_apps_excl_fargate_azure_function_app_instances_avg'] = self.serverless_apps_excl_fargate_azure_function_app_instances_avg if attributes.key?(:'serverless_apps_excl_fargate_azure_function_app_instances_avg') + self.additional_properties[:'serverless_apps_excl_fargate_azure_web_app_instances_avg'] = self.serverless_apps_excl_fargate_azure_web_app_instances_avg if attributes.key?(:'serverless_apps_excl_fargate_azure_web_app_instances_avg') + self.additional_properties[:'serverless_apps_excl_fargate_google_cloud_functions_instances_avg'] = self.serverless_apps_excl_fargate_google_cloud_functions_instances_avg if attributes.key?(:'serverless_apps_excl_fargate_google_cloud_functions_instances_avg') + self.additional_properties[:'serverless_apps_excl_fargate_google_cloud_run_instances_avg'] = self.serverless_apps_excl_fargate_google_cloud_run_instances_avg if attributes.key?(:'serverless_apps_excl_fargate_google_cloud_run_instances_avg') + self.additional_properties[:'serverless_apps_excl_fargate_infra_gcp_gke_autopilot_pods_avg'] = self.serverless_apps_excl_fargate_infra_gcp_gke_autopilot_pods_avg if attributes.key?(:'serverless_apps_excl_fargate_infra_gcp_gke_autopilot_pods_avg') + self.additional_properties[:'serverless_apps_google_cloud_functions_instances_avg'] = self.serverless_apps_google_cloud_functions_instances_avg if attributes.key?(:'serverless_apps_google_cloud_functions_instances_avg') + self.additional_properties[:'serverless_apps_google_cloud_run_instances_avg'] = self.serverless_apps_google_cloud_run_instances_avg if attributes.key?(:'serverless_apps_google_cloud_run_instances_avg') + self.additional_properties[:'serverless_apps_google_count_avg'] = self.serverless_apps_google_count_avg if attributes.key?(:'serverless_apps_google_count_avg') + self.additional_properties[:'serverless_apps_infra_gcp_gke_autopilot_pods_avg'] = self.serverless_apps_infra_gcp_gke_autopilot_pods_avg if attributes.key?(:'serverless_apps_infra_gcp_gke_autopilot_pods_avg') + self.additional_properties[:'serverless_apps_total_count_avg'] = self.serverless_apps_total_count_avg if attributes.key?(:'serverless_apps_total_count_avg') + self.additional_properties[:'siem_12mo_retention_sum'] = self.siem_12mo_retention_sum if attributes.key?(:'siem_12mo_retention_sum') + self.additional_properties[:'siem_6mo_retention_sum'] = self.siem_6mo_retention_sum if attributes.key?(:'siem_6mo_retention_sum') + self.additional_properties[:'siem_analyzed_logs_add_on_count_sum'] = self.siem_analyzed_logs_add_on_count_sum if attributes.key?(:'siem_analyzed_logs_add_on_count_sum') + self.additional_properties[:'snmp_device_count_sum'] = self.snmp_device_count_sum if attributes.key?(:'snmp_device_count_sum') + self.additional_properties[:'snmp_device_count_top99p'] = self.snmp_device_count_top99p if attributes.key?(:'snmp_device_count_top99p') + self.additional_properties[:'synthetics_browser_check_calls_count_sum'] = self.synthetics_browser_check_calls_count_sum if attributes.key?(:'synthetics_browser_check_calls_count_sum') + self.additional_properties[:'synthetics_check_calls_count_sum'] = self.synthetics_check_calls_count_sum if attributes.key?(:'synthetics_check_calls_count_sum') + self.additional_properties[:'synthetics_mobile_test_runs_sum'] = self.synthetics_mobile_test_runs_sum if attributes.key?(:'synthetics_mobile_test_runs_sum') + self.additional_properties[:'synthetics_parallel_testing_max_slots_hwm'] = self.synthetics_parallel_testing_max_slots_hwm if attributes.key?(:'synthetics_parallel_testing_max_slots_hwm') + self.additional_properties[:'trace_search_indexed_events_count_sum'] = self.trace_search_indexed_events_count_sum if attributes.key?(:'trace_search_indexed_events_count_sum') + self.additional_properties[:'twol_ingested_events_bytes_sum'] = self.twol_ingested_events_bytes_sum if attributes.key?(:'twol_ingested_events_bytes_sum') + self.additional_properties[:'universal_service_monitoring_host_top99p'] = self.universal_service_monitoring_host_top99p if attributes.key?(:'universal_service_monitoring_host_top99p') + self.additional_properties[:'vsphere_host_top99p'] = self.vsphere_host_top99p if attributes.key?(:'vsphere_host_top99p') + self.additional_properties[:'vuln_management_host_count_top99p'] = self.vuln_management_host_count_top99p if attributes.key?(:'vuln_management_host_count_top99p') + self.additional_properties[:'workflow_executions_usage_sum'] = self.workflow_executions_usage_sum if attributes.key?(:'workflow_executions_usage_sum') end # Returns the object in the form of hash, with additionalProperties support. diff --git a/lib/datadog_api_client/v1/models/usage_summary_response.rb b/lib/datadog_api_client/v1/models/usage_summary_response.rb index 3738c13fdbc1..bcc5794c118a 100644 --- a/lib/datadog_api_client/v1/models/usage_summary_response.rb +++ b/lib/datadog_api_client/v1/models/usage_summary_response.rb @@ -2906,6 +2906,318 @@ def initialize(attributes = {}) if attributes.key?(:'workflow_executions_usage_agg_sum') self.workflow_executions_usage_agg_sum = attributes[:'workflow_executions_usage_agg_sum'] end + self.additional_properties[:'agent_host_top99p_sum'] = self.agent_host_top99p_sum if attributes.key?(:'agent_host_top99p_sum') + self.additional_properties[:'ai_credits_agent_builder_ai_credits_agg_sum'] = self.ai_credits_agent_builder_ai_credits_agg_sum if attributes.key?(:'ai_credits_agent_builder_ai_credits_agg_sum') + self.additional_properties[:'ai_credits_agg_sum'] = self.ai_credits_agg_sum if attributes.key?(:'ai_credits_agg_sum') + self.additional_properties[:'ai_credits_bits_assistant_ai_credits_agg_sum'] = self.ai_credits_bits_assistant_ai_credits_agg_sum if attributes.key?(:'ai_credits_bits_assistant_ai_credits_agg_sum') + self.additional_properties[:'ai_credits_bits_dev_ai_credits_agg_sum'] = self.ai_credits_bits_dev_ai_credits_agg_sum if attributes.key?(:'ai_credits_bits_dev_ai_credits_agg_sum') + self.additional_properties[:'ai_credits_bits_sre_ai_credits_agg_sum'] = self.ai_credits_bits_sre_ai_credits_agg_sum if attributes.key?(:'ai_credits_bits_sre_ai_credits_agg_sum') + self.additional_properties[:'apm_azure_app_service_host_top99p_sum'] = self.apm_azure_app_service_host_top99p_sum if attributes.key?(:'apm_azure_app_service_host_top99p_sum') + self.additional_properties[:'apm_devsecops_host_top99p_sum'] = self.apm_devsecops_host_top99p_sum if attributes.key?(:'apm_devsecops_host_top99p_sum') + self.additional_properties[:'apm_enterprise_standalone_hosts_top99p_sum'] = self.apm_enterprise_standalone_hosts_top99p_sum if attributes.key?(:'apm_enterprise_standalone_hosts_top99p_sum') + self.additional_properties[:'apm_fargate_count_avg_sum'] = self.apm_fargate_count_avg_sum if attributes.key?(:'apm_fargate_count_avg_sum') + self.additional_properties[:'apm_host_top99p_sum'] = self.apm_host_top99p_sum if attributes.key?(:'apm_host_top99p_sum') + self.additional_properties[:'apm_pro_standalone_hosts_top99p_sum'] = self.apm_pro_standalone_hosts_top99p_sum if attributes.key?(:'apm_pro_standalone_hosts_top99p_sum') + self.additional_properties[:'appsec_fargate_count_avg_sum'] = self.appsec_fargate_count_avg_sum if attributes.key?(:'appsec_fargate_count_avg_sum') + self.additional_properties[:'asm_serverless_agg_sum'] = self.asm_serverless_agg_sum if attributes.key?(:'asm_serverless_agg_sum') + self.additional_properties[:'audit_logs_lines_indexed_agg_sum'] = self.audit_logs_lines_indexed_agg_sum if attributes.key?(:'audit_logs_lines_indexed_agg_sum') + self.additional_properties[:'audit_trail_enabled_hwm_sum'] = self.audit_trail_enabled_hwm_sum if attributes.key?(:'audit_trail_enabled_hwm_sum') + self.additional_properties[:'audit_trail_event_forwarding_events_agg_sum'] = self.audit_trail_event_forwarding_events_agg_sum if attributes.key?(:'audit_trail_event_forwarding_events_agg_sum') + self.additional_properties[:'avg_profiled_fargate_tasks_sum'] = self.avg_profiled_fargate_tasks_sum if attributes.key?(:'avg_profiled_fargate_tasks_sum') + self.additional_properties[:'aws_host_top99p_sum'] = self.aws_host_top99p_sum if attributes.key?(:'aws_host_top99p_sum') + self.additional_properties[:'aws_lambda_func_count'] = self.aws_lambda_func_count if attributes.key?(:'aws_lambda_func_count') + self.additional_properties[:'aws_lambda_invocations_sum'] = self.aws_lambda_invocations_sum if attributes.key?(:'aws_lambda_invocations_sum') + self.additional_properties[:'azure_app_service_top99p_sum'] = self.azure_app_service_top99p_sum if attributes.key?(:'azure_app_service_top99p_sum') + self.additional_properties[:'azure_host_top99p_sum'] = self.azure_host_top99p_sum if attributes.key?(:'azure_host_top99p_sum') + self.additional_properties[:'billable_ingested_bytes_agg_sum'] = self.billable_ingested_bytes_agg_sum if attributes.key?(:'billable_ingested_bytes_agg_sum') + self.additional_properties[:'bits_ai_investigations_agg_sum'] = self.bits_ai_investigations_agg_sum if attributes.key?(:'bits_ai_investigations_agg_sum') + self.additional_properties[:'browser_rum_lite_session_count_agg_sum'] = self.browser_rum_lite_session_count_agg_sum if attributes.key?(:'browser_rum_lite_session_count_agg_sum') + self.additional_properties[:'browser_rum_replay_session_count_agg_sum'] = self.browser_rum_replay_session_count_agg_sum if attributes.key?(:'browser_rum_replay_session_count_agg_sum') + self.additional_properties[:'browser_rum_units_agg_sum'] = self.browser_rum_units_agg_sum if attributes.key?(:'browser_rum_units_agg_sum') + self.additional_properties[:'ccm_anthropic_spend_last_sum'] = self.ccm_anthropic_spend_last_sum if attributes.key?(:'ccm_anthropic_spend_last_sum') + self.additional_properties[:'ccm_aws_spend_last_sum'] = self.ccm_aws_spend_last_sum if attributes.key?(:'ccm_aws_spend_last_sum') + self.additional_properties[:'ccm_azure_spend_last_sum'] = self.ccm_azure_spend_last_sum if attributes.key?(:'ccm_azure_spend_last_sum') + self.additional_properties[:'ccm_confluent_spend_last_sum'] = self.ccm_confluent_spend_last_sum if attributes.key?(:'ccm_confluent_spend_last_sum') + self.additional_properties[:'ccm_databricks_spend_last_sum'] = self.ccm_databricks_spend_last_sum if attributes.key?(:'ccm_databricks_spend_last_sum') + self.additional_properties[:'ccm_elastic_spend_last_sum'] = self.ccm_elastic_spend_last_sum if attributes.key?(:'ccm_elastic_spend_last_sum') + self.additional_properties[:'ccm_fastly_spend_last_sum'] = self.ccm_fastly_spend_last_sum if attributes.key?(:'ccm_fastly_spend_last_sum') + self.additional_properties[:'ccm_gcp_spend_last_sum'] = self.ccm_gcp_spend_last_sum if attributes.key?(:'ccm_gcp_spend_last_sum') + self.additional_properties[:'ccm_github_spend_last_sum'] = self.ccm_github_spend_last_sum if attributes.key?(:'ccm_github_spend_last_sum') + self.additional_properties[:'ccm_mongodb_spend_last_sum'] = self.ccm_mongodb_spend_last_sum if attributes.key?(:'ccm_mongodb_spend_last_sum') + self.additional_properties[:'ccm_oci_spend_last_sum'] = self.ccm_oci_spend_last_sum if attributes.key?(:'ccm_oci_spend_last_sum') + self.additional_properties[:'ccm_openai_spend_last_sum'] = self.ccm_openai_spend_last_sum if attributes.key?(:'ccm_openai_spend_last_sum') + self.additional_properties[:'ccm_snowflake_spend_last_sum'] = self.ccm_snowflake_spend_last_sum if attributes.key?(:'ccm_snowflake_spend_last_sum') + self.additional_properties[:'ccm_spend_monitored_ent_last_sum'] = self.ccm_spend_monitored_ent_last_sum if attributes.key?(:'ccm_spend_monitored_ent_last_sum') + self.additional_properties[:'ccm_spend_monitored_pro_last_sum'] = self.ccm_spend_monitored_pro_last_sum if attributes.key?(:'ccm_spend_monitored_pro_last_sum') + self.additional_properties[:'ccm_twilio_spend_last_sum'] = self.ccm_twilio_spend_last_sum if attributes.key?(:'ccm_twilio_spend_last_sum') + self.additional_properties[:'ci_pipeline_indexed_spans_agg_sum'] = self.ci_pipeline_indexed_spans_agg_sum if attributes.key?(:'ci_pipeline_indexed_spans_agg_sum') + self.additional_properties[:'ci_test_indexed_spans_agg_sum'] = self.ci_test_indexed_spans_agg_sum if attributes.key?(:'ci_test_indexed_spans_agg_sum') + self.additional_properties[:'ci_visibility_itr_committers_hwm_sum'] = self.ci_visibility_itr_committers_hwm_sum if attributes.key?(:'ci_visibility_itr_committers_hwm_sum') + self.additional_properties[:'ci_visibility_pipeline_committers_hwm_sum'] = self.ci_visibility_pipeline_committers_hwm_sum if attributes.key?(:'ci_visibility_pipeline_committers_hwm_sum') + self.additional_properties[:'ci_visibility_test_committers_hwm_sum'] = self.ci_visibility_test_committers_hwm_sum if attributes.key?(:'ci_visibility_test_committers_hwm_sum') + self.additional_properties[:'cloud_cost_management_aws_host_count_avg_sum'] = self.cloud_cost_management_aws_host_count_avg_sum if attributes.key?(:'cloud_cost_management_aws_host_count_avg_sum') + self.additional_properties[:'cloud_cost_management_azure_host_count_avg_sum'] = self.cloud_cost_management_azure_host_count_avg_sum if attributes.key?(:'cloud_cost_management_azure_host_count_avg_sum') + self.additional_properties[:'cloud_cost_management_gcp_host_count_avg_sum'] = self.cloud_cost_management_gcp_host_count_avg_sum if attributes.key?(:'cloud_cost_management_gcp_host_count_avg_sum') + self.additional_properties[:'cloud_cost_management_host_count_avg_sum'] = self.cloud_cost_management_host_count_avg_sum if attributes.key?(:'cloud_cost_management_host_count_avg_sum') + self.additional_properties[:'cloud_cost_management_oci_host_count_avg_sum'] = self.cloud_cost_management_oci_host_count_avg_sum if attributes.key?(:'cloud_cost_management_oci_host_count_avg_sum') + self.additional_properties[:'cloud_siem_events_agg_sum'] = self.cloud_siem_events_agg_sum if attributes.key?(:'cloud_siem_events_agg_sum') + self.additional_properties[:'cloud_siem_indexed_logs_agg_sum'] = self.cloud_siem_indexed_logs_agg_sum if attributes.key?(:'cloud_siem_indexed_logs_agg_sum') + self.additional_properties[:'code_analysis_sa_committers_hwm_sum'] = self.code_analysis_sa_committers_hwm_sum if attributes.key?(:'code_analysis_sa_committers_hwm_sum') + self.additional_properties[:'code_analysis_sca_committers_hwm_sum'] = self.code_analysis_sca_committers_hwm_sum if attributes.key?(:'code_analysis_sca_committers_hwm_sum') + self.additional_properties[:'code_security_host_top99p_sum'] = self.code_security_host_top99p_sum if attributes.key?(:'code_security_host_top99p_sum') + self.additional_properties[:'container_avg_sum'] = self.container_avg_sum if attributes.key?(:'container_avg_sum') + self.additional_properties[:'container_excl_agent_avg_sum'] = self.container_excl_agent_avg_sum if attributes.key?(:'container_excl_agent_avg_sum') + self.additional_properties[:'container_hwm_sum'] = self.container_hwm_sum if attributes.key?(:'container_hwm_sum') + self.additional_properties[:'csm_container_enterprise_compliance_count_agg_sum'] = self.csm_container_enterprise_compliance_count_agg_sum if attributes.key?(:'csm_container_enterprise_compliance_count_agg_sum') + self.additional_properties[:'csm_container_enterprise_cws_count_agg_sum'] = self.csm_container_enterprise_cws_count_agg_sum if attributes.key?(:'csm_container_enterprise_cws_count_agg_sum') + self.additional_properties[:'csm_container_enterprise_total_count_agg_sum'] = self.csm_container_enterprise_total_count_agg_sum if attributes.key?(:'csm_container_enterprise_total_count_agg_sum') + self.additional_properties[:'csm_host_enterprise_aas_host_count_top99p_sum'] = self.csm_host_enterprise_aas_host_count_top99p_sum if attributes.key?(:'csm_host_enterprise_aas_host_count_top99p_sum') + self.additional_properties[:'csm_host_enterprise_aws_host_count_top99p_sum'] = self.csm_host_enterprise_aws_host_count_top99p_sum if attributes.key?(:'csm_host_enterprise_aws_host_count_top99p_sum') + self.additional_properties[:'csm_host_enterprise_azure_host_count_top99p_sum'] = self.csm_host_enterprise_azure_host_count_top99p_sum if attributes.key?(:'csm_host_enterprise_azure_host_count_top99p_sum') + self.additional_properties[:'csm_host_enterprise_compliance_host_count_top99p_sum'] = self.csm_host_enterprise_compliance_host_count_top99p_sum if attributes.key?(:'csm_host_enterprise_compliance_host_count_top99p_sum') + self.additional_properties[:'csm_host_enterprise_cws_host_count_top99p_sum'] = self.csm_host_enterprise_cws_host_count_top99p_sum if attributes.key?(:'csm_host_enterprise_cws_host_count_top99p_sum') + self.additional_properties[:'csm_host_enterprise_gcp_host_count_top99p_sum'] = self.csm_host_enterprise_gcp_host_count_top99p_sum if attributes.key?(:'csm_host_enterprise_gcp_host_count_top99p_sum') + self.additional_properties[:'csm_host_enterprise_oci_host_count_top99p_sum'] = self.csm_host_enterprise_oci_host_count_top99p_sum if attributes.key?(:'csm_host_enterprise_oci_host_count_top99p_sum') + self.additional_properties[:'csm_host_enterprise_total_host_count_top99p_sum'] = self.csm_host_enterprise_total_host_count_top99p_sum if attributes.key?(:'csm_host_enterprise_total_host_count_top99p_sum') + self.additional_properties[:'csm_host_pro_hosts_agentless_scanners_agg_sum'] = self.csm_host_pro_hosts_agentless_scanners_agg_sum if attributes.key?(:'csm_host_pro_hosts_agentless_scanners_agg_sum') + self.additional_properties[:'csm_host_pro_hosts_agentless_scanners_top99p_sum'] = self.csm_host_pro_hosts_agentless_scanners_top99p_sum if attributes.key?(:'csm_host_pro_hosts_agentless_scanners_top99p_sum') + self.additional_properties[:'csm_host_pro_oci_host_count_top99p_sum'] = self.csm_host_pro_oci_host_count_top99p_sum if attributes.key?(:'csm_host_pro_oci_host_count_top99p_sum') + self.additional_properties[:'cspm_aas_host_top99p_sum'] = self.cspm_aas_host_top99p_sum if attributes.key?(:'cspm_aas_host_top99p_sum') + self.additional_properties[:'cspm_aws_host_top99p_sum'] = self.cspm_aws_host_top99p_sum if attributes.key?(:'cspm_aws_host_top99p_sum') + self.additional_properties[:'cspm_azure_host_top99p_sum'] = self.cspm_azure_host_top99p_sum if attributes.key?(:'cspm_azure_host_top99p_sum') + self.additional_properties[:'cspm_container_avg_sum'] = self.cspm_container_avg_sum if attributes.key?(:'cspm_container_avg_sum') + self.additional_properties[:'cspm_container_hwm_sum'] = self.cspm_container_hwm_sum if attributes.key?(:'cspm_container_hwm_sum') + self.additional_properties[:'cspm_gcp_host_top99p_sum'] = self.cspm_gcp_host_top99p_sum if attributes.key?(:'cspm_gcp_host_top99p_sum') + self.additional_properties[:'cspm_host_top99p_sum'] = self.cspm_host_top99p_sum if attributes.key?(:'cspm_host_top99p_sum') + self.additional_properties[:'cspm_hosts_agentless_scanners_agg_sum'] = self.cspm_hosts_agentless_scanners_agg_sum if attributes.key?(:'cspm_hosts_agentless_scanners_agg_sum') + self.additional_properties[:'cspm_hosts_agentless_scanners_top99p_sum'] = self.cspm_hosts_agentless_scanners_top99p_sum if attributes.key?(:'cspm_hosts_agentless_scanners_top99p_sum') + self.additional_properties[:'custom_historical_ts_sum'] = self.custom_historical_ts_sum if attributes.key?(:'custom_historical_ts_sum') + self.additional_properties[:'custom_live_ts_sum'] = self.custom_live_ts_sum if attributes.key?(:'custom_live_ts_sum') + self.additional_properties[:'custom_ts_sum'] = self.custom_ts_sum if attributes.key?(:'custom_ts_sum') + self.additional_properties[:'cws_container_avg_sum'] = self.cws_container_avg_sum if attributes.key?(:'cws_container_avg_sum') + self.additional_properties[:'cws_fargate_task_avg_sum'] = self.cws_fargate_task_avg_sum if attributes.key?(:'cws_fargate_task_avg_sum') + self.additional_properties[:'cws_host_top99p_sum'] = self.cws_host_top99p_sum if attributes.key?(:'cws_host_top99p_sum') + self.additional_properties[:'data_jobs_monitoring_host_hr_agg_sum'] = self.data_jobs_monitoring_host_hr_agg_sum if attributes.key?(:'data_jobs_monitoring_host_hr_agg_sum') + self.additional_properties[:'data_stream_monitoring_host_count_agg_sum'] = self.data_stream_monitoring_host_count_agg_sum if attributes.key?(:'data_stream_monitoring_host_count_agg_sum') + self.additional_properties[:'data_stream_monitoring_host_count_top99p_sum'] = self.data_stream_monitoring_host_count_top99p_sum if attributes.key?(:'data_stream_monitoring_host_count_top99p_sum') + self.additional_properties[:'dbm_host_top99p_sum'] = self.dbm_host_top99p_sum if attributes.key?(:'dbm_host_top99p_sum') + self.additional_properties[:'dbm_queries_avg_sum'] = self.dbm_queries_avg_sum if attributes.key?(:'dbm_queries_avg_sum') + self.additional_properties[:'do_jobs_monitoring_orchestrators_job_hours_agg_sum'] = self.do_jobs_monitoring_orchestrators_job_hours_agg_sum if attributes.key?(:'do_jobs_monitoring_orchestrators_job_hours_agg_sum') + self.additional_properties[:'end_date'] = self.end_date if attributes.key?(:'end_date') + self.additional_properties[:'eph_infra_host_agent_agg_sum'] = self.eph_infra_host_agent_agg_sum if attributes.key?(:'eph_infra_host_agent_agg_sum') + self.additional_properties[:'eph_infra_host_alibaba_agg_sum'] = self.eph_infra_host_alibaba_agg_sum if attributes.key?(:'eph_infra_host_alibaba_agg_sum') + self.additional_properties[:'eph_infra_host_aws_agg_sum'] = self.eph_infra_host_aws_agg_sum if attributes.key?(:'eph_infra_host_aws_agg_sum') + self.additional_properties[:'eph_infra_host_azure_agg_sum'] = self.eph_infra_host_azure_agg_sum if attributes.key?(:'eph_infra_host_azure_agg_sum') + self.additional_properties[:'eph_infra_host_basic_agg_sum'] = self.eph_infra_host_basic_agg_sum if attributes.key?(:'eph_infra_host_basic_agg_sum') + self.additional_properties[:'eph_infra_host_basic_infra_basic_agent_agg_sum'] = self.eph_infra_host_basic_infra_basic_agent_agg_sum if attributes.key?(:'eph_infra_host_basic_infra_basic_agent_agg_sum') + self.additional_properties[:'eph_infra_host_basic_infra_basic_vsphere_agg_sum'] = self.eph_infra_host_basic_infra_basic_vsphere_agg_sum if attributes.key?(:'eph_infra_host_basic_infra_basic_vsphere_agg_sum') + self.additional_properties[:'eph_infra_host_ent_agg_sum'] = self.eph_infra_host_ent_agg_sum if attributes.key?(:'eph_infra_host_ent_agg_sum') + self.additional_properties[:'eph_infra_host_gcp_agg_sum'] = self.eph_infra_host_gcp_agg_sum if attributes.key?(:'eph_infra_host_gcp_agg_sum') + self.additional_properties[:'eph_infra_host_heroku_agg_sum'] = self.eph_infra_host_heroku_agg_sum if attributes.key?(:'eph_infra_host_heroku_agg_sum') + self.additional_properties[:'eph_infra_host_only_aas_agg_sum'] = self.eph_infra_host_only_aas_agg_sum if attributes.key?(:'eph_infra_host_only_aas_agg_sum') + self.additional_properties[:'eph_infra_host_only_vsphere_agg_sum'] = self.eph_infra_host_only_vsphere_agg_sum if attributes.key?(:'eph_infra_host_only_vsphere_agg_sum') + self.additional_properties[:'eph_infra_host_opentelemetry_agg_sum'] = self.eph_infra_host_opentelemetry_agg_sum if attributes.key?(:'eph_infra_host_opentelemetry_agg_sum') + self.additional_properties[:'eph_infra_host_opentelemetry_apm_agg_sum'] = self.eph_infra_host_opentelemetry_apm_agg_sum if attributes.key?(:'eph_infra_host_opentelemetry_apm_agg_sum') + self.additional_properties[:'eph_infra_host_pro_agg_sum'] = self.eph_infra_host_pro_agg_sum if attributes.key?(:'eph_infra_host_pro_agg_sum') + self.additional_properties[:'eph_infra_host_proplus_agg_sum'] = self.eph_infra_host_proplus_agg_sum if attributes.key?(:'eph_infra_host_proplus_agg_sum') + self.additional_properties[:'eph_infra_host_proxmox_agg_sum'] = self.eph_infra_host_proxmox_agg_sum if attributes.key?(:'eph_infra_host_proxmox_agg_sum') + self.additional_properties[:'error_tracking_apm_error_events_agg_sum'] = self.error_tracking_apm_error_events_agg_sum if attributes.key?(:'error_tracking_apm_error_events_agg_sum') + self.additional_properties[:'error_tracking_error_events_agg_sum'] = self.error_tracking_error_events_agg_sum if attributes.key?(:'error_tracking_error_events_agg_sum') + self.additional_properties[:'error_tracking_events_agg_sum'] = self.error_tracking_events_agg_sum if attributes.key?(:'error_tracking_events_agg_sum') + self.additional_properties[:'error_tracking_rum_error_events_agg_sum'] = self.error_tracking_rum_error_events_agg_sum if attributes.key?(:'error_tracking_rum_error_events_agg_sum') + self.additional_properties[:'event_management_correlation_agg_sum'] = self.event_management_correlation_agg_sum if attributes.key?(:'event_management_correlation_agg_sum') + self.additional_properties[:'event_management_correlation_correlated_events_agg_sum'] = self.event_management_correlation_correlated_events_agg_sum if attributes.key?(:'event_management_correlation_correlated_events_agg_sum') + self.additional_properties[:'event_management_correlation_correlated_related_events_agg_sum'] = self.event_management_correlation_correlated_related_events_agg_sum if attributes.key?(:'event_management_correlation_correlated_related_events_agg_sum') + self.additional_properties[:'fargate_container_profiler_profiling_fargate_avg_sum'] = self.fargate_container_profiler_profiling_fargate_avg_sum if attributes.key?(:'fargate_container_profiler_profiling_fargate_avg_sum') + self.additional_properties[:'fargate_container_profiler_profiling_fargate_eks_avg_sum'] = self.fargate_container_profiler_profiling_fargate_eks_avg_sum if attributes.key?(:'fargate_container_profiler_profiling_fargate_eks_avg_sum') + self.additional_properties[:'fargate_tasks_count_avg_sum'] = self.fargate_tasks_count_avg_sum if attributes.key?(:'fargate_tasks_count_avg_sum') + self.additional_properties[:'fargate_tasks_count_hwm_sum'] = self.fargate_tasks_count_hwm_sum if attributes.key?(:'fargate_tasks_count_hwm_sum') + self.additional_properties[:'feature_flags_config_requests_agg_sum'] = self.feature_flags_config_requests_agg_sum if attributes.key?(:'feature_flags_config_requests_agg_sum') + self.additional_properties[:'flex_logs_compute_large_avg_sum'] = self.flex_logs_compute_large_avg_sum if attributes.key?(:'flex_logs_compute_large_avg_sum') + self.additional_properties[:'flex_logs_compute_medium_avg_sum'] = self.flex_logs_compute_medium_avg_sum if attributes.key?(:'flex_logs_compute_medium_avg_sum') + self.additional_properties[:'flex_logs_compute_small_avg_sum'] = self.flex_logs_compute_small_avg_sum if attributes.key?(:'flex_logs_compute_small_avg_sum') + self.additional_properties[:'flex_logs_compute_xlarge_avg_sum'] = self.flex_logs_compute_xlarge_avg_sum if attributes.key?(:'flex_logs_compute_xlarge_avg_sum') + self.additional_properties[:'flex_logs_compute_xsmall_avg_sum'] = self.flex_logs_compute_xsmall_avg_sum if attributes.key?(:'flex_logs_compute_xsmall_avg_sum') + self.additional_properties[:'flex_logs_starter_avg_sum'] = self.flex_logs_starter_avg_sum if attributes.key?(:'flex_logs_starter_avg_sum') + self.additional_properties[:'flex_logs_starter_storage_index_avg_sum'] = self.flex_logs_starter_storage_index_avg_sum if attributes.key?(:'flex_logs_starter_storage_index_avg_sum') + self.additional_properties[:'flex_logs_starter_storage_retention_adjustment_avg_sum'] = self.flex_logs_starter_storage_retention_adjustment_avg_sum if attributes.key?(:'flex_logs_starter_storage_retention_adjustment_avg_sum') + self.additional_properties[:'flex_stored_logs_avg_sum'] = self.flex_stored_logs_avg_sum if attributes.key?(:'flex_stored_logs_avg_sum') + self.additional_properties[:'forwarding_events_bytes_agg_sum'] = self.forwarding_events_bytes_agg_sum if attributes.key?(:'forwarding_events_bytes_agg_sum') + self.additional_properties[:'gcp_host_top99p_sum'] = self.gcp_host_top99p_sum if attributes.key?(:'gcp_host_top99p_sum') + self.additional_properties[:'heroku_host_top99p_sum'] = self.heroku_host_top99p_sum if attributes.key?(:'heroku_host_top99p_sum') + self.additional_properties[:'incident_management_monthly_active_users_hwm_sum'] = self.incident_management_monthly_active_users_hwm_sum if attributes.key?(:'incident_management_monthly_active_users_hwm_sum') + self.additional_properties[:'incident_management_seats_hwm_sum'] = self.incident_management_seats_hwm_sum if attributes.key?(:'incident_management_seats_hwm_sum') + self.additional_properties[:'indexed_events_count_agg_sum'] = self.indexed_events_count_agg_sum if attributes.key?(:'indexed_events_count_agg_sum') + self.additional_properties[:'indexed_points_agg_sum'] = self.indexed_points_agg_sum if attributes.key?(:'indexed_points_agg_sum') + self.additional_properties[:'infra_cpu_agg_sum'] = self.infra_cpu_agg_sum if attributes.key?(:'infra_cpu_agg_sum') + self.additional_properties[:'infra_cpu_avg_sum'] = self.infra_cpu_avg_sum if attributes.key?(:'infra_cpu_avg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_agent_agg_sum'] = self.infra_cpu_default_infra_host_vcpu_agent_agg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_agent_agg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_agent_avg_sum'] = self.infra_cpu_default_infra_host_vcpu_agent_avg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_agent_avg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_agent_basic_agg_sum'] = self.infra_cpu_default_infra_host_vcpu_agent_basic_agg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_agent_basic_agg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_agent_basic_avg_sum'] = self.infra_cpu_default_infra_host_vcpu_agent_basic_avg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_agent_basic_avg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_aws_agg_sum'] = self.infra_cpu_default_infra_host_vcpu_aws_agg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_aws_agg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_aws_avg_sum'] = self.infra_cpu_default_infra_host_vcpu_aws_avg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_aws_avg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_azure_agg_sum'] = self.infra_cpu_default_infra_host_vcpu_azure_agg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_azure_agg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_azure_avg_sum'] = self.infra_cpu_default_infra_host_vcpu_azure_avg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_azure_avg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_gcp_agg_sum'] = self.infra_cpu_default_infra_host_vcpu_gcp_agg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_gcp_agg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_gcp_avg_sum'] = self.infra_cpu_default_infra_host_vcpu_gcp_avg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_gcp_avg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_nutanix_agg_sum'] = self.infra_cpu_default_infra_host_vcpu_nutanix_agg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_nutanix_agg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_nutanix_avg_sum'] = self.infra_cpu_default_infra_host_vcpu_nutanix_avg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_nutanix_avg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_nutanix_basic_agg_sum'] = self.infra_cpu_default_infra_host_vcpu_nutanix_basic_agg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_nutanix_basic_agg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_nutanix_basic_avg_sum'] = self.infra_cpu_default_infra_host_vcpu_nutanix_basic_avg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_nutanix_basic_avg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_opentelemetry_agg_sum'] = self.infra_cpu_default_infra_host_vcpu_opentelemetry_agg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_opentelemetry_agg_sum') + self.additional_properties[:'infra_cpu_default_infra_host_vcpu_opentelemetry_avg_sum'] = self.infra_cpu_default_infra_host_vcpu_opentelemetry_avg_sum if attributes.key?(:'infra_cpu_default_infra_host_vcpu_opentelemetry_avg_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_agent_agg_sum'] = self.infra_cpu_observed_infra_host_vcpu_agent_agg_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_agent_agg_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_agent_avg_sum'] = self.infra_cpu_observed_infra_host_vcpu_agent_avg_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_agent_avg_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_aws_agg_sum'] = self.infra_cpu_observed_infra_host_vcpu_aws_agg_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_aws_agg_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_aws_avg_sum'] = self.infra_cpu_observed_infra_host_vcpu_aws_avg_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_aws_avg_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_azure_agg_sum'] = self.infra_cpu_observed_infra_host_vcpu_azure_agg_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_azure_agg_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_azure_avg_sum'] = self.infra_cpu_observed_infra_host_vcpu_azure_avg_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_azure_avg_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_gcp_agg_sum'] = self.infra_cpu_observed_infra_host_vcpu_gcp_agg_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_gcp_agg_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_gcp_avg_sum'] = self.infra_cpu_observed_infra_host_vcpu_gcp_avg_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_gcp_avg_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_nutanix_agg_sum'] = self.infra_cpu_observed_infra_host_vcpu_nutanix_agg_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_nutanix_agg_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_nutanix_avg_sum'] = self.infra_cpu_observed_infra_host_vcpu_nutanix_avg_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_nutanix_avg_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_opentelemetry_agg_sum'] = self.infra_cpu_observed_infra_host_vcpu_opentelemetry_agg_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_opentelemetry_agg_sum') + self.additional_properties[:'infra_cpu_observed_infra_host_vcpu_opentelemetry_avg_sum'] = self.infra_cpu_observed_infra_host_vcpu_opentelemetry_avg_sum if attributes.key?(:'infra_cpu_observed_infra_host_vcpu_opentelemetry_avg_sum') + self.additional_properties[:'infra_edge_monitoring_devices_top99p_sum'] = self.infra_edge_monitoring_devices_top99p_sum if attributes.key?(:'infra_edge_monitoring_devices_top99p_sum') + self.additional_properties[:'infra_host_basic_infra_basic_agent_top99p_sum'] = self.infra_host_basic_infra_basic_agent_top99p_sum if attributes.key?(:'infra_host_basic_infra_basic_agent_top99p_sum') + self.additional_properties[:'infra_host_basic_infra_basic_vsphere_top99p_sum'] = self.infra_host_basic_infra_basic_vsphere_top99p_sum if attributes.key?(:'infra_host_basic_infra_basic_vsphere_top99p_sum') + self.additional_properties[:'infra_host_basic_top99p_sum'] = self.infra_host_basic_top99p_sum if attributes.key?(:'infra_host_basic_top99p_sum') + self.additional_properties[:'infra_host_top99p_sum'] = self.infra_host_top99p_sum if attributes.key?(:'infra_host_top99p_sum') + self.additional_properties[:'infra_storage_mgmt_objects_count_avg_sum'] = self.infra_storage_mgmt_objects_count_avg_sum if attributes.key?(:'infra_storage_mgmt_objects_count_avg_sum') + self.additional_properties[:'ingest_points_agg_sum'] = self.ingest_points_agg_sum if attributes.key?(:'ingest_points_agg_sum') + self.additional_properties[:'ingested_events_bytes_agg_sum'] = self.ingested_events_bytes_agg_sum if attributes.key?(:'ingested_events_bytes_agg_sum') + self.additional_properties[:'iot_apm_host_agg_sum'] = self.iot_apm_host_agg_sum if attributes.key?(:'iot_apm_host_agg_sum') + self.additional_properties[:'iot_apm_host_top99p_sum'] = self.iot_apm_host_top99p_sum if attributes.key?(:'iot_apm_host_top99p_sum') + self.additional_properties[:'iot_device_agg_sum'] = self.iot_device_agg_sum if attributes.key?(:'iot_device_agg_sum') + self.additional_properties[:'iot_device_top99p_sum'] = self.iot_device_top99p_sum if attributes.key?(:'iot_device_top99p_sum') + self.additional_properties[:'last_updated'] = self.last_updated if attributes.key?(:'last_updated') + self.additional_properties[:'live_indexed_events_agg_sum'] = self.live_indexed_events_agg_sum if attributes.key?(:'live_indexed_events_agg_sum') + self.additional_properties[:'live_ingested_bytes_agg_sum'] = self.live_ingested_bytes_agg_sum if attributes.key?(:'live_ingested_bytes_agg_sum') + self.additional_properties[:'llm_observability_15day_retention_spans_agg_sum'] = self.llm_observability_15day_retention_spans_agg_sum if attributes.key?(:'llm_observability_15day_retention_spans_agg_sum') + self.additional_properties[:'llm_observability_30day_retention_spans_agg_sum'] = self.llm_observability_30day_retention_spans_agg_sum if attributes.key?(:'llm_observability_30day_retention_spans_agg_sum') + self.additional_properties[:'llm_observability_60day_retention_spans_agg_sum'] = self.llm_observability_60day_retention_spans_agg_sum if attributes.key?(:'llm_observability_60day_retention_spans_agg_sum') + self.additional_properties[:'llm_observability_90day_retention_spans_agg_sum'] = self.llm_observability_90day_retention_spans_agg_sum if attributes.key?(:'llm_observability_90day_retention_spans_agg_sum') + self.additional_properties[:'llm_observability_agg_sum'] = self.llm_observability_agg_sum if attributes.key?(:'llm_observability_agg_sum') + self.additional_properties[:'llm_observability_min_spend_agg_sum'] = self.llm_observability_min_spend_agg_sum if attributes.key?(:'llm_observability_min_spend_agg_sum') + self.additional_properties[:'logs_archive_search_gb_scanned_agg_sum'] = self.logs_archive_search_gb_scanned_agg_sum if attributes.key?(:'logs_archive_search_gb_scanned_agg_sum') + self.additional_properties[:'logs_by_retention'] = self.logs_by_retention if attributes.key?(:'logs_by_retention') + self.additional_properties[:'metric_names_agg_sum'] = self.metric_names_agg_sum if attributes.key?(:'metric_names_agg_sum') + self.additional_properties[:'mobile_rum_lite_session_count_agg_sum'] = self.mobile_rum_lite_session_count_agg_sum if attributes.key?(:'mobile_rum_lite_session_count_agg_sum') + self.additional_properties[:'mobile_rum_session_count_agg_sum'] = self.mobile_rum_session_count_agg_sum if attributes.key?(:'mobile_rum_session_count_agg_sum') + self.additional_properties[:'mobile_rum_session_count_android_agg_sum'] = self.mobile_rum_session_count_android_agg_sum if attributes.key?(:'mobile_rum_session_count_android_agg_sum') + self.additional_properties[:'mobile_rum_session_count_flutter_agg_sum'] = self.mobile_rum_session_count_flutter_agg_sum if attributes.key?(:'mobile_rum_session_count_flutter_agg_sum') + self.additional_properties[:'mobile_rum_session_count_ios_agg_sum'] = self.mobile_rum_session_count_ios_agg_sum if attributes.key?(:'mobile_rum_session_count_ios_agg_sum') + self.additional_properties[:'mobile_rum_session_count_reactnative_agg_sum'] = self.mobile_rum_session_count_reactnative_agg_sum if attributes.key?(:'mobile_rum_session_count_reactnative_agg_sum') + self.additional_properties[:'mobile_rum_session_count_roku_agg_sum'] = self.mobile_rum_session_count_roku_agg_sum if attributes.key?(:'mobile_rum_session_count_roku_agg_sum') + self.additional_properties[:'mobile_rum_units_agg_sum'] = self.mobile_rum_units_agg_sum if attributes.key?(:'mobile_rum_units_agg_sum') + self.additional_properties[:'ndm_netflow_events_agg_sum'] = self.ndm_netflow_events_agg_sum if attributes.key?(:'ndm_netflow_events_agg_sum') + self.additional_properties[:'netflow_indexed_events_count_agg_sum'] = self.netflow_indexed_events_count_agg_sum if attributes.key?(:'netflow_indexed_events_count_agg_sum') + self.additional_properties[:'network_device_wireless_top99p_sum'] = self.network_device_wireless_top99p_sum if attributes.key?(:'network_device_wireless_top99p_sum') + self.additional_properties[:'network_path_agg_sum'] = self.network_path_agg_sum if attributes.key?(:'network_path_agg_sum') + self.additional_properties[:'npm_host_top99p_sum'] = self.npm_host_top99p_sum if attributes.key?(:'npm_host_top99p_sum') + self.additional_properties[:'observability_pipelines_bytes_processed_agg_sum'] = self.observability_pipelines_bytes_processed_agg_sum if attributes.key?(:'observability_pipelines_bytes_processed_agg_sum') + self.additional_properties[:'oci_host_agg_sum'] = self.oci_host_agg_sum if attributes.key?(:'oci_host_agg_sum') + self.additional_properties[:'oci_host_top99p_sum'] = self.oci_host_top99p_sum if attributes.key?(:'oci_host_top99p_sum') + self.additional_properties[:'on_call_seat_hwm_sum'] = self.on_call_seat_hwm_sum if attributes.key?(:'on_call_seat_hwm_sum') + self.additional_properties[:'online_archive_events_count_agg_sum'] = self.online_archive_events_count_agg_sum if attributes.key?(:'online_archive_events_count_agg_sum') + self.additional_properties[:'opentelemetry_apm_host_top99p_sum'] = self.opentelemetry_apm_host_top99p_sum if attributes.key?(:'opentelemetry_apm_host_top99p_sum') + self.additional_properties[:'opentelemetry_host_top99p_sum'] = self.opentelemetry_host_top99p_sum if attributes.key?(:'opentelemetry_host_top99p_sum') + self.additional_properties[:'product_analytics_agg_sum'] = self.product_analytics_agg_sum if attributes.key?(:'product_analytics_agg_sum') + self.additional_properties[:'profiling_aas_count_top99p_sum'] = self.profiling_aas_count_top99p_sum if attributes.key?(:'profiling_aas_count_top99p_sum') + self.additional_properties[:'profiling_container_agent_count_avg'] = self.profiling_container_agent_count_avg if attributes.key?(:'profiling_container_agent_count_avg') + self.additional_properties[:'profiling_host_count_top99p_sum'] = self.profiling_host_count_top99p_sum if attributes.key?(:'profiling_host_count_top99p_sum') + self.additional_properties[:'proxmox_host_agg_sum'] = self.proxmox_host_agg_sum if attributes.key?(:'proxmox_host_agg_sum') + self.additional_properties[:'proxmox_host_top99p_sum'] = self.proxmox_host_top99p_sum if attributes.key?(:'proxmox_host_top99p_sum') + self.additional_properties[:'published_app_hwm_sum'] = self.published_app_hwm_sum if attributes.key?(:'published_app_hwm_sum') + self.additional_properties[:'rehydrated_indexed_events_agg_sum'] = self.rehydrated_indexed_events_agg_sum if attributes.key?(:'rehydrated_indexed_events_agg_sum') + self.additional_properties[:'rehydrated_ingested_bytes_agg_sum'] = self.rehydrated_ingested_bytes_agg_sum if attributes.key?(:'rehydrated_ingested_bytes_agg_sum') + self.additional_properties[:'rum_browser_and_mobile_session_count'] = self.rum_browser_and_mobile_session_count if attributes.key?(:'rum_browser_and_mobile_session_count') + self.additional_properties[:'rum_browser_legacy_session_count_agg_sum'] = self.rum_browser_legacy_session_count_agg_sum if attributes.key?(:'rum_browser_legacy_session_count_agg_sum') + self.additional_properties[:'rum_browser_lite_session_count_agg_sum'] = self.rum_browser_lite_session_count_agg_sum if attributes.key?(:'rum_browser_lite_session_count_agg_sum') + self.additional_properties[:'rum_browser_replay_session_count_agg_sum'] = self.rum_browser_replay_session_count_agg_sum if attributes.key?(:'rum_browser_replay_session_count_agg_sum') + self.additional_properties[:'rum_indexed_sessions_agg_sum'] = self.rum_indexed_sessions_agg_sum if attributes.key?(:'rum_indexed_sessions_agg_sum') + self.additional_properties[:'rum_ingested_sessions_agg_sum'] = self.rum_ingested_sessions_agg_sum if attributes.key?(:'rum_ingested_sessions_agg_sum') + self.additional_properties[:'rum_lite_session_count_agg_sum'] = self.rum_lite_session_count_agg_sum if attributes.key?(:'rum_lite_session_count_agg_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_android_agg_sum'] = self.rum_mobile_legacy_session_count_android_agg_sum if attributes.key?(:'rum_mobile_legacy_session_count_android_agg_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_flutter_agg_sum'] = self.rum_mobile_legacy_session_count_flutter_agg_sum if attributes.key?(:'rum_mobile_legacy_session_count_flutter_agg_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_ios_agg_sum'] = self.rum_mobile_legacy_session_count_ios_agg_sum if attributes.key?(:'rum_mobile_legacy_session_count_ios_agg_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_reactnative_agg_sum'] = self.rum_mobile_legacy_session_count_reactnative_agg_sum if attributes.key?(:'rum_mobile_legacy_session_count_reactnative_agg_sum') + self.additional_properties[:'rum_mobile_legacy_session_count_roku_agg_sum'] = self.rum_mobile_legacy_session_count_roku_agg_sum if attributes.key?(:'rum_mobile_legacy_session_count_roku_agg_sum') + self.additional_properties[:'rum_mobile_lite_session_count_android_agg_sum'] = self.rum_mobile_lite_session_count_android_agg_sum if attributes.key?(:'rum_mobile_lite_session_count_android_agg_sum') + self.additional_properties[:'rum_mobile_lite_session_count_flutter_agg_sum'] = self.rum_mobile_lite_session_count_flutter_agg_sum if attributes.key?(:'rum_mobile_lite_session_count_flutter_agg_sum') + self.additional_properties[:'rum_mobile_lite_session_count_ios_agg_sum'] = self.rum_mobile_lite_session_count_ios_agg_sum if attributes.key?(:'rum_mobile_lite_session_count_ios_agg_sum') + self.additional_properties[:'rum_mobile_lite_session_count_kotlinmultiplatform_agg_sum'] = self.rum_mobile_lite_session_count_kotlinmultiplatform_agg_sum if attributes.key?(:'rum_mobile_lite_session_count_kotlinmultiplatform_agg_sum') + self.additional_properties[:'rum_mobile_lite_session_count_reactnative_agg_sum'] = self.rum_mobile_lite_session_count_reactnative_agg_sum if attributes.key?(:'rum_mobile_lite_session_count_reactnative_agg_sum') + self.additional_properties[:'rum_mobile_lite_session_count_roku_agg_sum'] = self.rum_mobile_lite_session_count_roku_agg_sum if attributes.key?(:'rum_mobile_lite_session_count_roku_agg_sum') + self.additional_properties[:'rum_mobile_lite_session_count_unity_agg_sum'] = self.rum_mobile_lite_session_count_unity_agg_sum if attributes.key?(:'rum_mobile_lite_session_count_unity_agg_sum') + self.additional_properties[:'rum_mobile_replay_session_count_android_agg_sum'] = self.rum_mobile_replay_session_count_android_agg_sum if attributes.key?(:'rum_mobile_replay_session_count_android_agg_sum') + self.additional_properties[:'rum_mobile_replay_session_count_ios_agg_sum'] = self.rum_mobile_replay_session_count_ios_agg_sum if attributes.key?(:'rum_mobile_replay_session_count_ios_agg_sum') + self.additional_properties[:'rum_mobile_replay_session_count_kotlinmultiplatform_agg_sum'] = self.rum_mobile_replay_session_count_kotlinmultiplatform_agg_sum if attributes.key?(:'rum_mobile_replay_session_count_kotlinmultiplatform_agg_sum') + self.additional_properties[:'rum_mobile_replay_session_count_reactnative_agg_sum'] = self.rum_mobile_replay_session_count_reactnative_agg_sum if attributes.key?(:'rum_mobile_replay_session_count_reactnative_agg_sum') + self.additional_properties[:'rum_replay_session_count_agg_sum'] = self.rum_replay_session_count_agg_sum if attributes.key?(:'rum_replay_session_count_agg_sum') + self.additional_properties[:'rum_session_count_agg_sum'] = self.rum_session_count_agg_sum if attributes.key?(:'rum_session_count_agg_sum') + self.additional_properties[:'rum_session_replay_add_on_agg_sum'] = self.rum_session_replay_add_on_agg_sum if attributes.key?(:'rum_session_replay_add_on_agg_sum') + self.additional_properties[:'rum_total_session_count_agg_sum'] = self.rum_total_session_count_agg_sum if attributes.key?(:'rum_total_session_count_agg_sum') + self.additional_properties[:'rum_units_agg_sum'] = self.rum_units_agg_sum if attributes.key?(:'rum_units_agg_sum') + self.additional_properties[:'sca_fargate_count_avg_sum'] = self.sca_fargate_count_avg_sum if attributes.key?(:'sca_fargate_count_avg_sum') + self.additional_properties[:'sca_fargate_count_hwm_sum'] = self.sca_fargate_count_hwm_sum if attributes.key?(:'sca_fargate_count_hwm_sum') + self.additional_properties[:'sds_apm_scanned_bytes_sum'] = self.sds_apm_scanned_bytes_sum if attributes.key?(:'sds_apm_scanned_bytes_sum') + self.additional_properties[:'sds_events_scanned_bytes_sum'] = self.sds_events_scanned_bytes_sum if attributes.key?(:'sds_events_scanned_bytes_sum') + self.additional_properties[:'sds_logs_scanned_bytes_sum'] = self.sds_logs_scanned_bytes_sum if attributes.key?(:'sds_logs_scanned_bytes_sum') + self.additional_properties[:'sds_rum_scanned_bytes_sum'] = self.sds_rum_scanned_bytes_sum if attributes.key?(:'sds_rum_scanned_bytes_sum') + self.additional_properties[:'sds_total_scanned_bytes_sum'] = self.sds_total_scanned_bytes_sum if attributes.key?(:'sds_total_scanned_bytes_sum') + self.additional_properties[:'serverless_apps_apm_apm_azure_appservice_instances_avg_sum'] = self.serverless_apps_apm_apm_azure_appservice_instances_avg_sum if attributes.key?(:'serverless_apps_apm_apm_azure_appservice_instances_avg_sum') + self.additional_properties[:'serverless_apps_apm_apm_azure_azurefunction_instances_avg_sum'] = self.serverless_apps_apm_apm_azure_azurefunction_instances_avg_sum if attributes.key?(:'serverless_apps_apm_apm_azure_azurefunction_instances_avg_sum') + self.additional_properties[:'serverless_apps_apm_apm_azure_containerapp_instances_avg_sum'] = self.serverless_apps_apm_apm_azure_containerapp_instances_avg_sum if attributes.key?(:'serverless_apps_apm_apm_azure_containerapp_instances_avg_sum') + self.additional_properties[:'serverless_apps_apm_apm_fargate_ecs_tasks_avg_sum'] = self.serverless_apps_apm_apm_fargate_ecs_tasks_avg_sum if attributes.key?(:'serverless_apps_apm_apm_fargate_ecs_tasks_avg_sum') + self.additional_properties[:'serverless_apps_apm_apm_gcp_cloudfunction_instances_avg_sum'] = self.serverless_apps_apm_apm_gcp_cloudfunction_instances_avg_sum if attributes.key?(:'serverless_apps_apm_apm_gcp_cloudfunction_instances_avg_sum') + self.additional_properties[:'serverless_apps_apm_apm_gcp_cloudrun_instances_avg_sum'] = self.serverless_apps_apm_apm_gcp_cloudrun_instances_avg_sum if attributes.key?(:'serverless_apps_apm_apm_gcp_cloudrun_instances_avg_sum') + self.additional_properties[:'serverless_apps_apm_apm_gcp_gke_autopilot_pods_avg_sum'] = self.serverless_apps_apm_apm_gcp_gke_autopilot_pods_avg_sum if attributes.key?(:'serverless_apps_apm_apm_gcp_gke_autopilot_pods_avg_sum') + self.additional_properties[:'serverless_apps_apm_avg_sum'] = self.serverless_apps_apm_avg_sum if attributes.key?(:'serverless_apps_apm_avg_sum') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_azure_appservice_instances_avg_sum'] = self.serverless_apps_apm_excl_fargate_apm_azure_appservice_instances_avg_sum if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_azure_appservice_instances_avg_sum') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_azure_azurefunction_instances_avg_sum'] = self.serverless_apps_apm_excl_fargate_apm_azure_azurefunction_instances_avg_sum if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_azure_azurefunction_instances_avg_sum') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_azure_containerapp_instances_avg_sum'] = self.serverless_apps_apm_excl_fargate_apm_azure_containerapp_instances_avg_sum if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_azure_containerapp_instances_avg_sum') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_gcp_cloudfunction_instances_avg_sum'] = self.serverless_apps_apm_excl_fargate_apm_gcp_cloudfunction_instances_avg_sum if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_gcp_cloudfunction_instances_avg_sum') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_gcp_cloudrun_instances_avg_sum'] = self.serverless_apps_apm_excl_fargate_apm_gcp_cloudrun_instances_avg_sum if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_gcp_cloudrun_instances_avg_sum') + self.additional_properties[:'serverless_apps_apm_excl_fargate_apm_gcp_gke_autopilot_pods_avg_sum'] = self.serverless_apps_apm_excl_fargate_apm_gcp_gke_autopilot_pods_avg_sum if attributes.key?(:'serverless_apps_apm_excl_fargate_apm_gcp_gke_autopilot_pods_avg_sum') + self.additional_properties[:'serverless_apps_apm_excl_fargate_avg_sum'] = self.serverless_apps_apm_excl_fargate_avg_sum if attributes.key?(:'serverless_apps_apm_excl_fargate_avg_sum') + self.additional_properties[:'serverless_apps_azure_container_app_instances_avg_sum'] = self.serverless_apps_azure_container_app_instances_avg_sum if attributes.key?(:'serverless_apps_azure_container_app_instances_avg_sum') + self.additional_properties[:'serverless_apps_azure_count_avg_sum'] = self.serverless_apps_azure_count_avg_sum if attributes.key?(:'serverless_apps_azure_count_avg_sum') + self.additional_properties[:'serverless_apps_azure_function_app_instances_avg_sum'] = self.serverless_apps_azure_function_app_instances_avg_sum if attributes.key?(:'serverless_apps_azure_function_app_instances_avg_sum') + self.additional_properties[:'serverless_apps_azure_web_app_instances_avg_sum'] = self.serverless_apps_azure_web_app_instances_avg_sum if attributes.key?(:'serverless_apps_azure_web_app_instances_avg_sum') + self.additional_properties[:'serverless_apps_dsm_fargate_tasks_avg_sum'] = self.serverless_apps_dsm_fargate_tasks_avg_sum if attributes.key?(:'serverless_apps_dsm_fargate_tasks_avg_sum') + self.additional_properties[:'serverless_apps_ecs_avg_sum'] = self.serverless_apps_ecs_avg_sum if attributes.key?(:'serverless_apps_ecs_avg_sum') + self.additional_properties[:'serverless_apps_eks_avg_sum'] = self.serverless_apps_eks_avg_sum if attributes.key?(:'serverless_apps_eks_avg_sum') + self.additional_properties[:'serverless_apps_excl_fargate_avg_sum'] = self.serverless_apps_excl_fargate_avg_sum if attributes.key?(:'serverless_apps_excl_fargate_avg_sum') + self.additional_properties[:'serverless_apps_excl_fargate_azure_container_app_instances_avg_sum'] = self.serverless_apps_excl_fargate_azure_container_app_instances_avg_sum if attributes.key?(:'serverless_apps_excl_fargate_azure_container_app_instances_avg_sum') + self.additional_properties[:'serverless_apps_excl_fargate_azure_function_app_instances_avg_sum'] = self.serverless_apps_excl_fargate_azure_function_app_instances_avg_sum if attributes.key?(:'serverless_apps_excl_fargate_azure_function_app_instances_avg_sum') + self.additional_properties[:'serverless_apps_excl_fargate_azure_web_app_instances_avg_sum'] = self.serverless_apps_excl_fargate_azure_web_app_instances_avg_sum if attributes.key?(:'serverless_apps_excl_fargate_azure_web_app_instances_avg_sum') + self.additional_properties[:'serverless_apps_excl_fargate_google_cloud_functions_instances_avg_sum'] = self.serverless_apps_excl_fargate_google_cloud_functions_instances_avg_sum if attributes.key?(:'serverless_apps_excl_fargate_google_cloud_functions_instances_avg_sum') + self.additional_properties[:'serverless_apps_excl_fargate_google_cloud_run_instances_avg_sum'] = self.serverless_apps_excl_fargate_google_cloud_run_instances_avg_sum if attributes.key?(:'serverless_apps_excl_fargate_google_cloud_run_instances_avg_sum') + self.additional_properties[:'serverless_apps_excl_fargate_infra_gcp_gke_autopilot_pods_avg_sum'] = self.serverless_apps_excl_fargate_infra_gcp_gke_autopilot_pods_avg_sum if attributes.key?(:'serverless_apps_excl_fargate_infra_gcp_gke_autopilot_pods_avg_sum') + self.additional_properties[:'serverless_apps_google_cloud_functions_instances_avg_sum'] = self.serverless_apps_google_cloud_functions_instances_avg_sum if attributes.key?(:'serverless_apps_google_cloud_functions_instances_avg_sum') + self.additional_properties[:'serverless_apps_google_cloud_run_instances_avg_sum'] = self.serverless_apps_google_cloud_run_instances_avg_sum if attributes.key?(:'serverless_apps_google_cloud_run_instances_avg_sum') + self.additional_properties[:'serverless_apps_google_count_avg_sum'] = self.serverless_apps_google_count_avg_sum if attributes.key?(:'serverless_apps_google_count_avg_sum') + self.additional_properties[:'serverless_apps_infra_gcp_gke_autopilot_pods_avg_sum'] = self.serverless_apps_infra_gcp_gke_autopilot_pods_avg_sum if attributes.key?(:'serverless_apps_infra_gcp_gke_autopilot_pods_avg_sum') + self.additional_properties[:'serverless_apps_total_count_avg_sum'] = self.serverless_apps_total_count_avg_sum if attributes.key?(:'serverless_apps_total_count_avg_sum') + self.additional_properties[:'siem_12mo_retention_agg_sum'] = self.siem_12mo_retention_agg_sum if attributes.key?(:'siem_12mo_retention_agg_sum') + self.additional_properties[:'siem_6mo_retention_agg_sum'] = self.siem_6mo_retention_agg_sum if attributes.key?(:'siem_6mo_retention_agg_sum') + self.additional_properties[:'siem_analyzed_logs_add_on_count_agg_sum'] = self.siem_analyzed_logs_add_on_count_agg_sum if attributes.key?(:'siem_analyzed_logs_add_on_count_agg_sum') + self.additional_properties[:'snmp_device_count_agg_sum'] = self.snmp_device_count_agg_sum if attributes.key?(:'snmp_device_count_agg_sum') + self.additional_properties[:'snmp_device_count_top99p_sum'] = self.snmp_device_count_top99p_sum if attributes.key?(:'snmp_device_count_top99p_sum') + self.additional_properties[:'start_date'] = self.start_date if attributes.key?(:'start_date') + self.additional_properties[:'synthetics_browser_check_calls_count_agg_sum'] = self.synthetics_browser_check_calls_count_agg_sum if attributes.key?(:'synthetics_browser_check_calls_count_agg_sum') + self.additional_properties[:'synthetics_check_calls_count_agg_sum'] = self.synthetics_check_calls_count_agg_sum if attributes.key?(:'synthetics_check_calls_count_agg_sum') + self.additional_properties[:'synthetics_mobile_test_runs_agg_sum'] = self.synthetics_mobile_test_runs_agg_sum if attributes.key?(:'synthetics_mobile_test_runs_agg_sum') + self.additional_properties[:'synthetics_parallel_testing_max_slots_hwm_sum'] = self.synthetics_parallel_testing_max_slots_hwm_sum if attributes.key?(:'synthetics_parallel_testing_max_slots_hwm_sum') + self.additional_properties[:'trace_search_indexed_events_count_agg_sum'] = self.trace_search_indexed_events_count_agg_sum if attributes.key?(:'trace_search_indexed_events_count_agg_sum') + self.additional_properties[:'twol_ingested_events_bytes_agg_sum'] = self.twol_ingested_events_bytes_agg_sum if attributes.key?(:'twol_ingested_events_bytes_agg_sum') + self.additional_properties[:'universal_service_monitoring_host_top99p_sum'] = self.universal_service_monitoring_host_top99p_sum if attributes.key?(:'universal_service_monitoring_host_top99p_sum') + self.additional_properties[:'usage'] = self.usage if attributes.key?(:'usage') + self.additional_properties[:'vsphere_host_top99p_sum'] = self.vsphere_host_top99p_sum if attributes.key?(:'vsphere_host_top99p_sum') + self.additional_properties[:'vuln_management_host_count_top99p_sum'] = self.vuln_management_host_count_top99p_sum if attributes.key?(:'vuln_management_host_count_top99p_sum') + self.additional_properties[:'workflow_executions_usage_agg_sum'] = self.workflow_executions_usage_agg_sum if attributes.key?(:'workflow_executions_usage_agg_sum') end # Returns the object in the form of hash, with additionalProperties support. diff --git a/lib/datadog_api_client/v2/api/application_security_api.rb b/lib/datadog_api_client/v2/api/application_security_api.rb index 43572bca6b7c..16bb8f8e5317 100644 --- a/lib/datadog_api_client/v2/api/application_security_api.rb +++ b/lib/datadog_api_client/v2/api/application_security_api.rb @@ -617,6 +617,80 @@ def get_application_security_waf_policy_with_http_info(policy_id, opts = {}) return data, status_code, headers end + # Get Application Security details for a service. + # + # @see #get_asm_service_by_name_with_http_info + def get_asm_service_by_name(service_filter, opts = {}) + data, _status_code, _headers = get_asm_service_by_name_with_http_info(service_filter, opts) + data + end + + # Get Application Security details for a service. + # + # Retrieve Application Security details for services matching the given name. + # Returns Application Security activation, compatibility, and product enablement + # information for each matching `(service, environment)` pair, along with a count + # of services that have Application Security Management (Threats) enabled. + # + # @param service_filter [String] The name of the service to retrieve Application Security details for. Returns all matching services across environments. + # @param opts [Hash] the optional parameters + # @return [Array<(ApplicationSecurityServicesResponse, Integer, Hash)>] ApplicationSecurityServicesResponse data, response status code and response headers + def get_asm_service_by_name_with_http_info(service_filter, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.get_asm_service_by_name".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.get_asm_service_by_name") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.get_asm_service_by_name")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: ApplicationSecurityAPI.get_asm_service_by_name ...' + end + # verify the required parameter 'service_filter' is set + if @api_client.config.client_side_validation && service_filter.nil? + fail ArgumentError, "Missing the required parameter 'service_filter' when calling ApplicationSecurityAPI.get_asm_service_by_name" + end + # resource path + local_var_path = '/api/v2/security/asm/services/{service_filter}'.sub('{service_filter}', CGI.escape(service_filter.to_s).gsub('%2F', '/')) + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'ApplicationSecurityServicesResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :get_asm_service_by_name, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: ApplicationSecurityAPI#get_asm_service_by_name\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + # List all WAF custom rules. # # @see #list_application_security_waf_custom_rules_with_http_info diff --git a/lib/datadog_api_client/v2/api/workflow_automation_api.rb b/lib/datadog_api_client/v2/api/workflow_automation_api.rb index acddc865b970..b6d01df4dacc 100644 --- a/lib/datadog_api_client/v2/api/workflow_automation_api.rb +++ b/lib/datadog_api_client/v2/api/workflow_automation_api.rb @@ -501,6 +501,103 @@ def list_workflow_instances_with_http_info(workflow_id, opts = {}) return data, status_code, headers end + # List workflows. + # + # @see #list_workflows_with_http_info + def list_workflows(opts = {}) + data, _status_code, _headers = list_workflows_with_http_info(opts) + data + end + + # List workflows. + # + # List all workflows in your organization. This API requires a [registered application key](https://docs.datadoghq.com/api/latest/action-connection/#register-a-new-app-key). Alternatively, you can configure these permissions [in the UI](https://docs.datadoghq.com/account_management/api-app-keys/#actions-api-access). + # + # @param opts [Hash] the optional parameters + # @option opts [Integer] :limit The maximum number of workflows to return per page. + # @option opts [Integer] :page The page number to return, starting from 0. + # @option opts [String] :sort The sort order for the returned workflows. Provide a comma-separated list of fields, each optionally prefixed with `-` for descending order. Supported fields are `name`, `createdAt`, `updatedAt`, `creatorName`, `ownerName`, and `lastExecutedAt`. + # @option opts [String] :filter_query A search query used to filter the returned workflows. The query performs a case-insensitive substring match against each workflow's name, creator name, and handle. If the query contains a colon (for example, `team:infra`), the query is treated as a `key:value` tag filter. + # @option opts [Array] :filter_trigger_ids Filters the returned workflows by one or more trigger types, such as `monitor`, `schedule`, or `githubWebhook`. To specify the multiple types, repeat this parameter. + # @option opts [Boolean] :filter_include_unpublished Whether to include unpublished workflows in the response. + # @option opts [Boolean] :filter_include_specs Whether to include the full spec of each workflow in the response. When `false` (the default), each workflow's `spec` is returned as `null`. + # @return [Array<(ListWorkflowsResponse, Integer, Hash)>] ListWorkflowsResponse data, response status code and response headers + def list_workflows_with_http_info(opts = {}) + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: WorkflowAutomationAPI.list_workflows ...' + end + # resource path + local_var_path = '/api/v2/workflows' + + # query parameters + query_params = opts[:query_params] || {} + query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil? + query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil? + query_params[:'sort'] = opts[:'sort'] if !opts[:'sort'].nil? + query_params[:'filter[query]'] = opts[:'filter_query'] if !opts[:'filter_query'].nil? + query_params[:'filter[triggerIds]'] = @api_client.build_collection_param(opts[:'filter_trigger_ids'], :multi) if !opts[:'filter_trigger_ids'].nil? + query_params[:'filter[includeUnpublished]'] = opts[:'filter_include_unpublished'] if !opts[:'filter_include_unpublished'].nil? + query_params[:'filter[includeSpecs]'] = opts[:'filter_include_specs'] if !opts[:'filter_include_specs'].nil? + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'ListWorkflowsResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :list_workflows, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + new_options[:query_string_normalizer] = HTTParty::Request::NON_RAILS_QUERY_STRING_NORMALIZER + + data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: WorkflowAutomationAPI#list_workflows\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + + # List workflows. + # + # Provide a paginated version of {#list_workflows}, returning all items. + # + # To use it you need to use a block: list_workflows_with_pagination { |item| p item } + # + # @yield [WorkflowListItem] Paginated items + def list_workflows_with_pagination(opts = {}) + api_version = "V2" + page_size = @api_client.get_attribute_from_path(opts, "limit", 50) + @api_client.set_attribute_from_path(api_version, opts, "limit", Integer, page_size) + @api_client.set_attribute_from_path(api_version, opts, "page", Integer, 0) + while true do + response = list_workflows(opts) + @api_client.get_attribute_from_path(response, "data").each { |item| yield(item) } + if @api_client.get_attribute_from_path(response, "data").length < page_size + break + end + @api_client.set_attribute_from_path(api_version, opts, "page", Integer, @api_client.get_attribute_from_path(opts, "page", 0) + 1) + end + end + # Update an existing Workflow. # # @see #update_workflow_with_http_info diff --git a/lib/datadog_api_client/v2/models/application_security_service_attributes.rb b/lib/datadog_api_client/v2/models/application_security_service_attributes.rb new file mode 100644 index 000000000000..acb0579ffe9e --- /dev/null +++ b/lib/datadog_api_client/v2/models/application_security_service_attributes.rb @@ -0,0 +1,800 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Application Security details describing a service in a given environment. + class ApplicationSecurityServiceAttributes + include BaseGenericModel + + # The Datadog Agent versions reporting for the service. + attr_reader :agent_versions + + # The application type of the service, such as `web` or `serverless`. + attr_reader :app_type + + # Whether the service is compatible with Application Security Management (Threats). + attr_reader :asm_threat_compatible + + # The number of backend WAF events detected for the service. + attr_reader :backend_waf_event_count + + # The enabled business logic detection rules for the service. + attr_reader :business_logic + + # Deprecated: a display color associated with the service in the UI. + attr_reader :color + + # The environment the service runs in. + attr_reader :env + + # The number of Application Security events detected for the service. + attr_reader :event_count + + # Deprecated: the trend of Application Security events over time. + attr_reader :event_trend + + # Whether Application Security Management (Threats) is enabled for the service. + attr_reader :has_appsec_enabled + + # Deprecated: the number of hits for the service. + attr_reader :hits + + # Whether Interactive Application Security Testing (IAST) is enabled for the service. + attr_reader :iast_product_activation + + # The Interactive Application Security Testing (IAST) compatibility status of the service. + attr_reader :iast_product_compatibility + + # The reasons explaining the Interactive Application Security Testing (IAST) compatibility status. + attr_reader :iast_product_compatibility_reasons + + # The programming languages detected for the service. + attr_reader :languages + + # The Unix timestamp, in seconds, of the last ingested span for the service. + attr_reader :last_ingested_spans + + # The Remote Configuration capabilities reported by the service. + attr_reader :rc_capabilities + + # The recommended business logic detection rules for the service. + attr_reader :recommended_business_logic + + # Whether Software Composition Analysis (SCA) is enabled for the service. + attr_reader :risk_product_activation + + # The Software Composition Analysis (SCA) compatibility status of the service. + attr_reader :risk_product_compatibility + + # The reasons explaining the Software Composition Analysis (SCA) compatibility status. + attr_reader :risk_product_compatibility_reasons + + # The WAF rules versions applied to the service. + attr_reader :rules_version + + # The name of the service. + attr_reader :service + + # Deprecated: the number of security signals for the service. + attr_reader :signal_count + + # Deprecated: the trend of security signals over time. + attr_reader :signal_trend + + # The data sources that contributed information about the service. + attr_reader :source + + # The teams that own the service. + attr_reader :teams + + # The Datadog tracing library versions reporting for the service. + attr_reader :tracer_versions + + # The Vulnerability Management activation status of the service. + attr_reader :vm_activation + + # Deprecated: the number of critical-severity vulnerabilities for the service. + attr_reader :vuln_critical_count + + # Deprecated: the number of high-severity vulnerabilities for the service. + attr_reader :vuln_high_count + + # The total number of services available without applying the service filter. + attr_reader :without_filter_services + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'agent_versions' => :'agent_versions', + :'app_type' => :'app_type', + :'asm_threat_compatible' => :'asm_threat_compatible', + :'backend_waf_event_count' => :'backend_waf_event_count', + :'business_logic' => :'business_logic', + :'color' => :'color', + :'env' => :'env', + :'event_count' => :'event_count', + :'event_trend' => :'event_trend', + :'has_appsec_enabled' => :'has_appsec_enabled', + :'hits' => :'hits', + :'iast_product_activation' => :'iast_product_activation', + :'iast_product_compatibility' => :'iast_product_compatibility', + :'iast_product_compatibility_reasons' => :'iast_product_compatibility_reasons', + :'languages' => :'languages', + :'last_ingested_spans' => :'last_ingested_spans', + :'rc_capabilities' => :'rc_capabilities', + :'recommended_business_logic' => :'recommended_business_logic', + :'risk_product_activation' => :'risk_product_activation', + :'risk_product_compatibility' => :'risk_product_compatibility', + :'risk_product_compatibility_reasons' => :'risk_product_compatibility_reasons', + :'rules_version' => :'rules_version', + :'service' => :'service', + :'signal_count' => :'signal_count', + :'signal_trend' => :'signal_trend', + :'source' => :'source', + :'teams' => :'teams', + :'tracer_versions' => :'tracer_versions', + :'vm_activation' => :'vm-activation', + :'vuln_critical_count' => :'vuln_critical_count', + :'vuln_high_count' => :'vuln_high_count', + :'without_filter_services' => :'without_filter_services' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'agent_versions' => :'Array', + :'app_type' => :'String', + :'asm_threat_compatible' => :'Boolean', + :'backend_waf_event_count' => :'Integer', + :'business_logic' => :'Array', + :'color' => :'String', + :'env' => :'String', + :'event_count' => :'Integer', + :'event_trend' => :'Array', + :'has_appsec_enabled' => :'Boolean', + :'hits' => :'Integer', + :'iast_product_activation' => :'Boolean', + :'iast_product_compatibility' => :'String', + :'iast_product_compatibility_reasons' => :'Array', + :'languages' => :'Array', + :'last_ingested_spans' => :'Integer', + :'rc_capabilities' => :'Array', + :'recommended_business_logic' => :'Array', + :'risk_product_activation' => :'Boolean', + :'risk_product_compatibility' => :'String', + :'risk_product_compatibility_reasons' => :'Array', + :'rules_version' => :'Array', + :'service' => :'String', + :'signal_count' => :'Integer', + :'signal_trend' => :'Array', + :'source' => :'Array', + :'teams' => :'Array', + :'tracer_versions' => :'Array', + :'vm_activation' => :'String', + :'vuln_critical_count' => :'Integer', + :'vuln_high_count' => :'Integer', + :'without_filter_services' => :'Integer' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ApplicationSecurityServiceAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'agent_versions') + if (value = attributes[:'agent_versions']).is_a?(Array) + self.agent_versions = value + end + end + + if attributes.key?(:'app_type') + self.app_type = attributes[:'app_type'] + end + + if attributes.key?(:'asm_threat_compatible') + self.asm_threat_compatible = attributes[:'asm_threat_compatible'] + end + + if attributes.key?(:'backend_waf_event_count') + self.backend_waf_event_count = attributes[:'backend_waf_event_count'] + end + + if attributes.key?(:'business_logic') + if (value = attributes[:'business_logic']).is_a?(Array) + self.business_logic = value + end + end + + if attributes.key?(:'color') + self.color = attributes[:'color'] + end + + if attributes.key?(:'env') + self.env = attributes[:'env'] + end + + if attributes.key?(:'event_count') + self.event_count = attributes[:'event_count'] + end + + if attributes.key?(:'event_trend') + if (value = attributes[:'event_trend']).is_a?(Array) + self.event_trend = value + end + end + + if attributes.key?(:'has_appsec_enabled') + self.has_appsec_enabled = attributes[:'has_appsec_enabled'] + end + + if attributes.key?(:'hits') + self.hits = attributes[:'hits'] + end + + if attributes.key?(:'iast_product_activation') + self.iast_product_activation = attributes[:'iast_product_activation'] + end + + if attributes.key?(:'iast_product_compatibility') + self.iast_product_compatibility = attributes[:'iast_product_compatibility'] + end + + if attributes.key?(:'iast_product_compatibility_reasons') + if (value = attributes[:'iast_product_compatibility_reasons']).is_a?(Array) + self.iast_product_compatibility_reasons = value + end + end + + if attributes.key?(:'languages') + if (value = attributes[:'languages']).is_a?(Array) + self.languages = value + end + end + + if attributes.key?(:'last_ingested_spans') + self.last_ingested_spans = attributes[:'last_ingested_spans'] + end + + if attributes.key?(:'rc_capabilities') + if (value = attributes[:'rc_capabilities']).is_a?(Array) + self.rc_capabilities = value + end + end + + if attributes.key?(:'recommended_business_logic') + if (value = attributes[:'recommended_business_logic']).is_a?(Array) + self.recommended_business_logic = value + end + end + + if attributes.key?(:'risk_product_activation') + self.risk_product_activation = attributes[:'risk_product_activation'] + end + + if attributes.key?(:'risk_product_compatibility') + self.risk_product_compatibility = attributes[:'risk_product_compatibility'] + end + + if attributes.key?(:'risk_product_compatibility_reasons') + if (value = attributes[:'risk_product_compatibility_reasons']).is_a?(Array) + self.risk_product_compatibility_reasons = value + end + end + + if attributes.key?(:'rules_version') + if (value = attributes[:'rules_version']).is_a?(Array) + self.rules_version = value + end + end + + if attributes.key?(:'service') + self.service = attributes[:'service'] + end + + if attributes.key?(:'signal_count') + self.signal_count = attributes[:'signal_count'] + end + + if attributes.key?(:'signal_trend') + if (value = attributes[:'signal_trend']).is_a?(Array) + self.signal_trend = value + end + end + + if attributes.key?(:'source') + if (value = attributes[:'source']).is_a?(Array) + self.source = value + end + end + + if attributes.key?(:'teams') + if (value = attributes[:'teams']).is_a?(Array) + self.teams = value + end + end + + if attributes.key?(:'tracer_versions') + if (value = attributes[:'tracer_versions']).is_a?(Array) + self.tracer_versions = value + end + end + + if attributes.key?(:'vm_activation') + self.vm_activation = attributes[:'vm_activation'] + end + + if attributes.key?(:'vuln_critical_count') + self.vuln_critical_count = attributes[:'vuln_critical_count'] + end + + if attributes.key?(:'vuln_high_count') + self.vuln_high_count = attributes[:'vuln_high_count'] + end + + if attributes.key?(:'without_filter_services') + self.without_filter_services = attributes[:'without_filter_services'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @agent_versions.nil? + return false if @app_type.nil? + return false if @asm_threat_compatible.nil? + return false if @backend_waf_event_count.nil? + return false if @business_logic.nil? + return false if @color.nil? + return false if @env.nil? + return false if @event_count.nil? + return false if @event_trend.nil? + return false if @has_appsec_enabled.nil? + return false if @hits.nil? + return false if @iast_product_activation.nil? + return false if @iast_product_compatibility.nil? + return false if @iast_product_compatibility_reasons.nil? + return false if @languages.nil? + return false if @last_ingested_spans.nil? + return false if @rc_capabilities.nil? + return false if @recommended_business_logic.nil? + return false if @risk_product_activation.nil? + return false if @risk_product_compatibility.nil? + return false if @risk_product_compatibility_reasons.nil? + return false if @rules_version.nil? + return false if @service.nil? + return false if @signal_count.nil? + return false if @signal_trend.nil? + return false if @source.nil? + return false if @teams.nil? + return false if @tracer_versions.nil? + return false if @vm_activation.nil? + return false if @vuln_critical_count.nil? + return false if @vuln_high_count.nil? + return false if @without_filter_services.nil? + true + end + + # Custom attribute writer method with validation + # @param agent_versions [Object] Object to be assigned + # @!visibility private + def agent_versions=(agent_versions) + if agent_versions.nil? + fail ArgumentError, 'invalid value for "agent_versions", agent_versions cannot be nil.' + end + @agent_versions = agent_versions + end + + # Custom attribute writer method with validation + # @param app_type [Object] Object to be assigned + # @!visibility private + def app_type=(app_type) + if app_type.nil? + fail ArgumentError, 'invalid value for "app_type", app_type cannot be nil.' + end + @app_type = app_type + end + + # Custom attribute writer method with validation + # @param asm_threat_compatible [Object] Object to be assigned + # @!visibility private + def asm_threat_compatible=(asm_threat_compatible) + if asm_threat_compatible.nil? + fail ArgumentError, 'invalid value for "asm_threat_compatible", asm_threat_compatible cannot be nil.' + end + @asm_threat_compatible = asm_threat_compatible + end + + # Custom attribute writer method with validation + # @param backend_waf_event_count [Object] Object to be assigned + # @!visibility private + def backend_waf_event_count=(backend_waf_event_count) + if backend_waf_event_count.nil? + fail ArgumentError, 'invalid value for "backend_waf_event_count", backend_waf_event_count cannot be nil.' + end + @backend_waf_event_count = backend_waf_event_count + end + + # Custom attribute writer method with validation + # @param business_logic [Object] Object to be assigned + # @!visibility private + def business_logic=(business_logic) + if business_logic.nil? + fail ArgumentError, 'invalid value for "business_logic", business_logic cannot be nil.' + end + @business_logic = business_logic + end + + # Custom attribute writer method with validation + # @param color [Object] Object to be assigned + # @!visibility private + def color=(color) + if color.nil? + fail ArgumentError, 'invalid value for "color", color cannot be nil.' + end + @color = color + end + + # Custom attribute writer method with validation + # @param env [Object] Object to be assigned + # @!visibility private + def env=(env) + if env.nil? + fail ArgumentError, 'invalid value for "env", env cannot be nil.' + end + @env = env + end + + # Custom attribute writer method with validation + # @param event_count [Object] Object to be assigned + # @!visibility private + def event_count=(event_count) + if event_count.nil? + fail ArgumentError, 'invalid value for "event_count", event_count cannot be nil.' + end + @event_count = event_count + end + + # Custom attribute writer method with validation + # @param event_trend [Object] Object to be assigned + # @!visibility private + def event_trend=(event_trend) + if event_trend.nil? + fail ArgumentError, 'invalid value for "event_trend", event_trend cannot be nil.' + end + @event_trend = event_trend + end + + # Custom attribute writer method with validation + # @param has_appsec_enabled [Object] Object to be assigned + # @!visibility private + def has_appsec_enabled=(has_appsec_enabled) + if has_appsec_enabled.nil? + fail ArgumentError, 'invalid value for "has_appsec_enabled", has_appsec_enabled cannot be nil.' + end + @has_appsec_enabled = has_appsec_enabled + end + + # Custom attribute writer method with validation + # @param hits [Object] Object to be assigned + # @!visibility private + def hits=(hits) + if hits.nil? + fail ArgumentError, 'invalid value for "hits", hits cannot be nil.' + end + @hits = hits + end + + # Custom attribute writer method with validation + # @param iast_product_activation [Object] Object to be assigned + # @!visibility private + def iast_product_activation=(iast_product_activation) + if iast_product_activation.nil? + fail ArgumentError, 'invalid value for "iast_product_activation", iast_product_activation cannot be nil.' + end + @iast_product_activation = iast_product_activation + end + + # Custom attribute writer method with validation + # @param iast_product_compatibility [Object] Object to be assigned + # @!visibility private + def iast_product_compatibility=(iast_product_compatibility) + if iast_product_compatibility.nil? + fail ArgumentError, 'invalid value for "iast_product_compatibility", iast_product_compatibility cannot be nil.' + end + @iast_product_compatibility = iast_product_compatibility + end + + # Custom attribute writer method with validation + # @param iast_product_compatibility_reasons [Object] Object to be assigned + # @!visibility private + def iast_product_compatibility_reasons=(iast_product_compatibility_reasons) + if iast_product_compatibility_reasons.nil? + fail ArgumentError, 'invalid value for "iast_product_compatibility_reasons", iast_product_compatibility_reasons cannot be nil.' + end + @iast_product_compatibility_reasons = iast_product_compatibility_reasons + end + + # Custom attribute writer method with validation + # @param languages [Object] Object to be assigned + # @!visibility private + def languages=(languages) + if languages.nil? + fail ArgumentError, 'invalid value for "languages", languages cannot be nil.' + end + @languages = languages + end + + # Custom attribute writer method with validation + # @param last_ingested_spans [Object] Object to be assigned + # @!visibility private + def last_ingested_spans=(last_ingested_spans) + if last_ingested_spans.nil? + fail ArgumentError, 'invalid value for "last_ingested_spans", last_ingested_spans cannot be nil.' + end + @last_ingested_spans = last_ingested_spans + end + + # Custom attribute writer method with validation + # @param rc_capabilities [Object] Object to be assigned + # @!visibility private + def rc_capabilities=(rc_capabilities) + if rc_capabilities.nil? + fail ArgumentError, 'invalid value for "rc_capabilities", rc_capabilities cannot be nil.' + end + @rc_capabilities = rc_capabilities + end + + # Custom attribute writer method with validation + # @param recommended_business_logic [Object] Object to be assigned + # @!visibility private + def recommended_business_logic=(recommended_business_logic) + if recommended_business_logic.nil? + fail ArgumentError, 'invalid value for "recommended_business_logic", recommended_business_logic cannot be nil.' + end + @recommended_business_logic = recommended_business_logic + end + + # Custom attribute writer method with validation + # @param risk_product_activation [Object] Object to be assigned + # @!visibility private + def risk_product_activation=(risk_product_activation) + if risk_product_activation.nil? + fail ArgumentError, 'invalid value for "risk_product_activation", risk_product_activation cannot be nil.' + end + @risk_product_activation = risk_product_activation + end + + # Custom attribute writer method with validation + # @param risk_product_compatibility [Object] Object to be assigned + # @!visibility private + def risk_product_compatibility=(risk_product_compatibility) + if risk_product_compatibility.nil? + fail ArgumentError, 'invalid value for "risk_product_compatibility", risk_product_compatibility cannot be nil.' + end + @risk_product_compatibility = risk_product_compatibility + end + + # Custom attribute writer method with validation + # @param risk_product_compatibility_reasons [Object] Object to be assigned + # @!visibility private + def risk_product_compatibility_reasons=(risk_product_compatibility_reasons) + if risk_product_compatibility_reasons.nil? + fail ArgumentError, 'invalid value for "risk_product_compatibility_reasons", risk_product_compatibility_reasons cannot be nil.' + end + @risk_product_compatibility_reasons = risk_product_compatibility_reasons + end + + # Custom attribute writer method with validation + # @param rules_version [Object] Object to be assigned + # @!visibility private + def rules_version=(rules_version) + if rules_version.nil? + fail ArgumentError, 'invalid value for "rules_version", rules_version cannot be nil.' + end + @rules_version = rules_version + end + + # Custom attribute writer method with validation + # @param service [Object] Object to be assigned + # @!visibility private + def service=(service) + if service.nil? + fail ArgumentError, 'invalid value for "service", service cannot be nil.' + end + @service = service + end + + # Custom attribute writer method with validation + # @param signal_count [Object] Object to be assigned + # @!visibility private + def signal_count=(signal_count) + if signal_count.nil? + fail ArgumentError, 'invalid value for "signal_count", signal_count cannot be nil.' + end + @signal_count = signal_count + end + + # Custom attribute writer method with validation + # @param signal_trend [Object] Object to be assigned + # @!visibility private + def signal_trend=(signal_trend) + if signal_trend.nil? + fail ArgumentError, 'invalid value for "signal_trend", signal_trend cannot be nil.' + end + @signal_trend = signal_trend + end + + # Custom attribute writer method with validation + # @param source [Object] Object to be assigned + # @!visibility private + def source=(source) + if source.nil? + fail ArgumentError, 'invalid value for "source", source cannot be nil.' + end + @source = source + end + + # Custom attribute writer method with validation + # @param teams [Object] Object to be assigned + # @!visibility private + def teams=(teams) + if teams.nil? + fail ArgumentError, 'invalid value for "teams", teams cannot be nil.' + end + @teams = teams + end + + # Custom attribute writer method with validation + # @param tracer_versions [Object] Object to be assigned + # @!visibility private + def tracer_versions=(tracer_versions) + if tracer_versions.nil? + fail ArgumentError, 'invalid value for "tracer_versions", tracer_versions cannot be nil.' + end + @tracer_versions = tracer_versions + end + + # Custom attribute writer method with validation + # @param vm_activation [Object] Object to be assigned + # @!visibility private + def vm_activation=(vm_activation) + if vm_activation.nil? + fail ArgumentError, 'invalid value for "vm_activation", vm_activation cannot be nil.' + end + @vm_activation = vm_activation + end + + # Custom attribute writer method with validation + # @param vuln_critical_count [Object] Object to be assigned + # @!visibility private + def vuln_critical_count=(vuln_critical_count) + if vuln_critical_count.nil? + fail ArgumentError, 'invalid value for "vuln_critical_count", vuln_critical_count cannot be nil.' + end + @vuln_critical_count = vuln_critical_count + end + + # Custom attribute writer method with validation + # @param vuln_high_count [Object] Object to be assigned + # @!visibility private + def vuln_high_count=(vuln_high_count) + if vuln_high_count.nil? + fail ArgumentError, 'invalid value for "vuln_high_count", vuln_high_count cannot be nil.' + end + @vuln_high_count = vuln_high_count + end + + # Custom attribute writer method with validation + # @param without_filter_services [Object] Object to be assigned + # @!visibility private + def without_filter_services=(without_filter_services) + if without_filter_services.nil? + fail ArgumentError, 'invalid value for "without_filter_services", without_filter_services cannot be nil.' + end + @without_filter_services = without_filter_services + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + agent_versions == o.agent_versions && + app_type == o.app_type && + asm_threat_compatible == o.asm_threat_compatible && + backend_waf_event_count == o.backend_waf_event_count && + business_logic == o.business_logic && + color == o.color && + env == o.env && + event_count == o.event_count && + event_trend == o.event_trend && + has_appsec_enabled == o.has_appsec_enabled && + hits == o.hits && + iast_product_activation == o.iast_product_activation && + iast_product_compatibility == o.iast_product_compatibility && + iast_product_compatibility_reasons == o.iast_product_compatibility_reasons && + languages == o.languages && + last_ingested_spans == o.last_ingested_spans && + rc_capabilities == o.rc_capabilities && + recommended_business_logic == o.recommended_business_logic && + risk_product_activation == o.risk_product_activation && + risk_product_compatibility == o.risk_product_compatibility && + risk_product_compatibility_reasons == o.risk_product_compatibility_reasons && + rules_version == o.rules_version && + service == o.service && + signal_count == o.signal_count && + signal_trend == o.signal_trend && + source == o.source && + teams == o.teams && + tracer_versions == o.tracer_versions && + vm_activation == o.vm_activation && + vuln_critical_count == o.vuln_critical_count && + vuln_high_count == o.vuln_high_count && + without_filter_services == o.without_filter_services && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [agent_versions, app_type, asm_threat_compatible, backend_waf_event_count, business_logic, color, env, event_count, event_trend, has_appsec_enabled, hits, iast_product_activation, iast_product_compatibility, iast_product_compatibility_reasons, languages, last_ingested_spans, rc_capabilities, recommended_business_logic, risk_product_activation, risk_product_compatibility, risk_product_compatibility_reasons, rules_version, service, signal_count, signal_trend, source, teams, tracer_versions, vm_activation, vuln_critical_count, vuln_high_count, without_filter_services, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/application_security_service_resource.rb b/lib/datadog_api_client/v2/models/application_security_service_resource.rb new file mode 100644 index 000000000000..f31f6c92b562 --- /dev/null +++ b/lib/datadog_api_client/v2/models/application_security_service_resource.rb @@ -0,0 +1,165 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # A JSON:API resource describing a service and its Application Security details. + class ApplicationSecurityServiceResource + include BaseGenericModel + + # Application Security details describing a service in a given environment. + attr_reader :attributes + + # The unique identifier of the service, formatted as `_`. + attr_reader :id + + # The type of the resource. The value should always be `service_env`. + attr_reader :type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'attributes' => :'attributes', + :'id' => :'id', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'attributes' => :'ApplicationSecurityServiceAttributes', + :'id' => :'String', + :'type' => :'ApplicationSecurityServiceType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ApplicationSecurityServiceResource` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'attributes') + self.attributes = attributes[:'attributes'] + end + + if attributes.key?(:'id') + self.id = attributes[:'id'] + end + + if attributes.key?(:'type') + self.type = attributes[:'type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @attributes.nil? + return false if @id.nil? + return false if @type.nil? + true + end + + # Custom attribute writer method with validation + # @param attributes [Object] Object to be assigned + # @!visibility private + def attributes=(attributes) + if attributes.nil? + fail ArgumentError, 'invalid value for "attributes", attributes cannot be nil.' + end + @attributes = attributes + end + + # Custom attribute writer method with validation + # @param id [Object] Object to be assigned + # @!visibility private + def id=(id) + if id.nil? + fail ArgumentError, 'invalid value for "id", id cannot be nil.' + end + @id = id + end + + # Custom attribute writer method with validation + # @param type [Object] Object to be assigned + # @!visibility private + def type=(type) + if type.nil? + fail ArgumentError, 'invalid value for "type", type cannot be nil.' + end + @type = type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + attributes == o.attributes && + id == o.id && + type == o.type && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [attributes, id, type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/application_security_service_type.rb b/lib/datadog_api_client/v2/models/application_security_service_type.rb new file mode 100644 index 000000000000..65ce6cd63ec8 --- /dev/null +++ b/lib/datadog_api_client/v2/models/application_security_service_type.rb @@ -0,0 +1,26 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The type of the resource. The value should always be `service_env`. + class ApplicationSecurityServiceType + include BaseEnumModel + + SERVICE_ENV = "service_env".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/application_security_services_metadata.rb b/lib/datadog_api_client/v2/models/application_security_services_metadata.rb new file mode 100644 index 000000000000..8ec373d04742 --- /dev/null +++ b/lib/datadog_api_client/v2/models/application_security_services_metadata.rb @@ -0,0 +1,123 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Metadata returned alongside the list of services. + class ApplicationSecurityServicesMetadata + include BaseGenericModel + + # The number of services with Application Security Management (Threats) enabled. + attr_reader :num_services_with_appsec + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'num_services_with_appsec' => :'num_services_with_appsec' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'num_services_with_appsec' => :'Integer' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ApplicationSecurityServicesMetadata` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'num_services_with_appsec') + self.num_services_with_appsec = attributes[:'num_services_with_appsec'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @num_services_with_appsec.nil? + true + end + + # Custom attribute writer method with validation + # @param num_services_with_appsec [Object] Object to be assigned + # @!visibility private + def num_services_with_appsec=(num_services_with_appsec) + if num_services_with_appsec.nil? + fail ArgumentError, 'invalid value for "num_services_with_appsec", num_services_with_appsec cannot be nil.' + end + @num_services_with_appsec = num_services_with_appsec + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + num_services_with_appsec == o.num_services_with_appsec && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [num_services_with_appsec, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/application_security_services_response.rb b/lib/datadog_api_client/v2/models/application_security_services_response.rb new file mode 100644 index 000000000000..fcb82e617e65 --- /dev/null +++ b/lib/datadog_api_client/v2/models/application_security_services_response.rb @@ -0,0 +1,146 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Response object containing the list of services matching the requested name. + class ApplicationSecurityServicesResponse + include BaseGenericModel + + # The list of services matching the requested name. + attr_reader :data + + # Metadata returned alongside the list of services. + attr_reader :meta + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data', + :'meta' => :'meta' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'Array', + :'meta' => :'ApplicationSecurityServicesMetadata' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ApplicationSecurityServicesResponse` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'data') + if (value = attributes[:'data']).is_a?(Array) + self.data = value + end + end + + if attributes.key?(:'meta') + self.meta = attributes[:'meta'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @data.nil? + return false if @meta.nil? + true + end + + # Custom attribute writer method with validation + # @param data [Object] Object to be assigned + # @!visibility private + def data=(data) + if data.nil? + fail ArgumentError, 'invalid value for "data", data cannot be nil.' + end + @data = data + end + + # Custom attribute writer method with validation + # @param meta [Object] Object to be assigned + # @!visibility private + def meta=(meta) + if meta.nil? + fail ArgumentError, 'invalid value for "meta", meta cannot be nil.' + end + @meta = meta + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + data == o.data && + meta == o.meta && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, meta, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/list_workflows_response.rb b/lib/datadog_api_client/v2/models/list_workflows_response.rb new file mode 100644 index 000000000000..abaff2ab6269 --- /dev/null +++ b/lib/datadog_api_client/v2/models/list_workflows_response.rb @@ -0,0 +1,117 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The response object for a listing workflows request. + class ListWorkflowsResponse + include BaseGenericModel + + # A list of workflows. + attr_accessor :data + + # Metadata for a List Workflows response. + attr_accessor :meta + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data', + :'meta' => :'meta' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'Array', + :'meta' => :'ListWorkflowsResponseMeta' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ListWorkflowsResponse` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'data') + if (value = attributes[:'data']).is_a?(Array) + self.data = value + end + end + + if attributes.key?(:'meta') + self.meta = attributes[:'meta'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + data == o.data && + meta == o.meta && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, meta, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/list_workflows_response_meta.rb b/lib/datadog_api_client/v2/models/list_workflows_response_meta.rb new file mode 100644 index 000000000000..1f1b01f0c885 --- /dev/null +++ b/lib/datadog_api_client/v2/models/list_workflows_response_meta.rb @@ -0,0 +1,105 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Metadata for a List Workflows response. + class ListWorkflowsResponseMeta + include BaseGenericModel + + # Pagination metadata for a List Workflows response. + attr_accessor :page + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'page' => :'page' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'page' => :'ListWorkflowsResponseMetaPage' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ListWorkflowsResponseMeta` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'page') + self.page = attributes[:'page'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + page == o.page && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [page, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/list_workflows_response_meta_page.rb b/lib/datadog_api_client/v2/models/list_workflows_response_meta_page.rb new file mode 100644 index 000000000000..d624f8d3c7ad --- /dev/null +++ b/lib/datadog_api_client/v2/models/list_workflows_response_meta_page.rb @@ -0,0 +1,115 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Pagination metadata for a List Workflows response. + class ListWorkflowsResponseMetaPage + include BaseGenericModel + + # The total number of workflows in the organization. + attr_accessor :total_count + + # The total number of workflows matching the applied filters. + attr_accessor :total_filtered_count + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'total_count' => :'totalCount', + :'total_filtered_count' => :'totalFilteredCount' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'total_count' => :'Integer', + :'total_filtered_count' => :'Integer' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ListWorkflowsResponseMetaPage` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'total_count') + self.total_count = attributes[:'total_count'] + end + + if attributes.key?(:'total_filtered_count') + self.total_filtered_count = attributes[:'total_filtered_count'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + total_count == o.total_count && + total_filtered_count == o.total_filtered_count && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [total_count, total_filtered_count, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/workflow_list_item.rb b/lib/datadog_api_client/v2/models/workflow_list_item.rb new file mode 100644 index 000000000000..954e2da7db4e --- /dev/null +++ b/lib/datadog_api_client/v2/models/workflow_list_item.rb @@ -0,0 +1,164 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # A workflow returned by the list workflows endpoint. + class WorkflowListItem + include BaseGenericModel + + # Attributes of a workflow returned in a list response. + attr_reader :attributes + + # The workflow identifier. + attr_accessor :id + + # The definition of `WorkflowDataRelationships` object. + attr_accessor :relationships + + # The definition of `WorkflowDataType` object. + attr_reader :type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'attributes' => :'attributes', + :'id' => :'id', + :'relationships' => :'relationships', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'attributes' => :'WorkflowListItemAttributes', + :'id' => :'String', + :'relationships' => :'WorkflowDataRelationships', + :'type' => :'WorkflowDataType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::WorkflowListItem` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'attributes') + self.attributes = attributes[:'attributes'] + end + + if attributes.key?(:'id') + self.id = attributes[:'id'] + end + + if attributes.key?(:'relationships') + self.relationships = attributes[:'relationships'] + end + + if attributes.key?(:'type') + self.type = attributes[:'type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @attributes.nil? + return false if @type.nil? + true + end + + # Custom attribute writer method with validation + # @param attributes [Object] Object to be assigned + # @!visibility private + def attributes=(attributes) + if attributes.nil? + fail ArgumentError, 'invalid value for "attributes", attributes cannot be nil.' + end + @attributes = attributes + end + + # Custom attribute writer method with validation + # @param type [Object] Object to be assigned + # @!visibility private + def type=(type) + if type.nil? + fail ArgumentError, 'invalid value for "type", type cannot be nil.' + end + @type = type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + attributes == o.attributes && + id == o.id && + relationships == o.relationships && + type == o.type && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [attributes, id, relationships, type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/workflow_list_item_attributes.rb b/lib/datadog_api_client/v2/models/workflow_list_item_attributes.rb new file mode 100644 index 000000000000..47f5c50c080e --- /dev/null +++ b/lib/datadog_api_client/v2/models/workflow_list_item_attributes.rb @@ -0,0 +1,185 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # Attributes of a workflow returned in a list response. + class WorkflowListItemAttributes + include BaseGenericModel + + # When the workflow was created. + attr_accessor :created_at + + # Description of the workflow. + attr_accessor :description + + # Name of the workflow. + attr_reader :name + + # Whether the workflow is published. Unpublished workflows can only be run manually. Automatic triggers such as Schedule do not fire until the workflow is published. + attr_accessor :published + + # The spec defines what the workflow does. + attr_accessor :spec + + # Tags of the workflow. + attr_accessor :tags + + # When the workflow was last updated. + attr_accessor :updated_at + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'created_at' => :'createdAt', + :'description' => :'description', + :'name' => :'name', + :'published' => :'published', + :'spec' => :'spec', + :'tags' => :'tags', + :'updated_at' => :'updatedAt' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'created_at' => :'Time', + :'description' => :'String', + :'name' => :'String', + :'published' => :'Boolean', + :'spec' => :'Spec', + :'tags' => :'Array', + :'updated_at' => :'Time' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::WorkflowListItemAttributes` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'created_at') + self.created_at = attributes[:'created_at'] + end + + if attributes.key?(:'description') + self.description = attributes[:'description'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'published') + self.published = attributes[:'published'] + end + + if attributes.key?(:'spec') + self.spec = attributes[:'spec'] + end + + if attributes.key?(:'tags') + if (value = attributes[:'tags']).is_a?(Array) + self.tags = value + end + end + + if attributes.key?(:'updated_at') + self.updated_at = attributes[:'updated_at'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @name.nil? + true + end + + # Custom attribute writer method with validation + # @param name [Object] Object to be assigned + # @!visibility private + def name=(name) + if name.nil? + fail ArgumentError, 'invalid value for "name", name cannot be nil.' + end + @name = name + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + created_at == o.created_at && + description == o.description && + name == o.name && + published == o.published && + spec == o.spec && + tags == o.tags && + updated_at == o.updated_at && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [created_at, description, name, published, spec, tags, updated_at, additional_properties].hash + end + end +end