diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index b4cbd81ddfad..a02697caa79d 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -1579,6 +1579,20 @@ components: required: true schema: type: string + SalesforceIncidentsOrganizationIDPathParameter: + description: The Datadog-assigned ID of the connected Salesforce organization. + in: path + name: salesforce_org_id + required: true + schema: + type: string + SalesforceIncidentsTemplateIDPathParameter: + description: The ID of the Salesforce incident template. + in: path + name: incident_template_id + required: true + schema: + type: string SampleLogGenerationContentPackID: description: The identifier of the Cloud SIEM content pack to operate on (for example, `aws-cloudtrail`). in: path @@ -3878,6 +3892,1008 @@ components: - id - base_severity type: object + AggregatedHighFrozenFrameRate: + description: Aggregated high frozen frame rate detection at view level. + properties: + avg_frozen_frame_rate: + description: Average frozen frame rate as a fraction of total frames. + example: 0.15 + format: double + type: number + avg_segment_duration: + description: Average segment duration in nanoseconds. + example: 3000000000 + format: int64 + type: integer + avg_total_frozen_duration: + description: Average total frozen duration in nanoseconds. + example: 500000000 + format: int64 + type: integer + fingerprint: + description: Unique fingerprint identifying this detection group. + example: v1$mno345 + type: string + impact_score: + description: Impact score for this detection. + example: 14.0 + format: double + type: number + view_occurrences: + description: Number of sampled views where this detection occurred. + example: 5 + format: int32 + maximum: 2147483647 + type: integer + required: + - fingerprint + - view_occurrences + - avg_frozen_frame_rate + - avg_total_frozen_duration + - avg_segment_duration + - impact_score + type: object + AggregatedHighScriptEval: + description: Aggregated high script evaluation detection grouped by source. + properties: + avg_duration: + description: Average script evaluation duration in nanoseconds. + example: 300000000 + format: int64 + type: integer + avg_forced_style_layout: + description: Average forced style/layout duration in nanoseconds. + example: 0 + format: int64 + type: integer + fingerprint: + description: Unique fingerprint identifying this detection group. + example: v1$7766a8c2180aa153f5526ba8868999f8 + type: string + impact_score: + description: Impact score combining view frequency and duration severity. + example: 30.0 + format: double + type: number + instance_count: + description: Total number of detection instances across sampled views. + example: 3 + format: int32 + maximum: 2147483647 + type: integer + invoker_type: + description: Type of invoker that triggered the script evaluation. + example: user-callback + type: string + source_category: + description: Category of the script source. + example: third-party + nullable: true + type: string + source_function_name: + description: Name of the function that triggered the high script evaluation. + example: handleClick + type: string + source_url: + description: URL of the script that triggered the high script evaluation. + example: https://cdn.example.com/app.js + nullable: true + type: string + view_occurrences: + description: Number of sampled views where this detection occurred. + example: 3 + format: int32 + maximum: 2147483647 + type: integer + required: + - fingerprint + - source_url + - source_function_name + - source_category + - invoker_type + - view_occurrences + - instance_count + - avg_duration + - avg_forced_style_layout + - impact_score + type: object + AggregatedLongTasksByInvokerType: + description: Aggregated long task statistics for a single invoker type. + properties: + criteria_view_occurrences: + description: Number of sampled views where this invoker type had long tasks contributing to the criteria metric. + example: 40 + format: int32 + maximum: 2147483647 + type: integer + impact_score: + description: Rank-product impact score combining view frequency and blocking time severity. + example: 0.4 + format: double + type: number + invoker_type: + description: Category of the long task invoker (for example, resolve-promise, user-callback). + example: resolve-promise + type: string + stats_per_view: + $ref: "#/components/schemas/LongTaskStatsPerView" + top_invokers: + description: Top invokers within this invoker type, sorted by impact score descending. + items: + $ref: "#/components/schemas/TopLongTaskInvoker" + type: array + view_occurrences: + description: Number of sampled views where this invoker type had any long tasks. + example: 68 + format: int32 + maximum: 2147483647 + type: integer + required: + - invoker_type + - view_occurrences + - stats_per_view + - top_invokers + type: object + AggregatedLongTasksRequest: + description: Request body for the aggregated long tasks endpoint. + properties: + data: + $ref: "#/components/schemas/AggregatedLongTasksRequestData" + required: + - data + type: object + AggregatedLongTasksRequestAttributes: + description: Attributes for an aggregated long tasks query. + properties: + application_id: + description: The RUM application ID to analyze. + example: ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b + type: string + criteria: + $ref: "#/components/schemas/AggregatedWaterfallPerformanceCriteria" + filter: + description: RUM query string to filter events (for example, @session.type:user @geo.country:US). + example: "@session.type:user" + type: string + from: + description: Start of the time range as a Unix timestamp in seconds. + example: 1762437564 + format: int64 + type: integer + sample_size: + description: Number of view instances to sample, between 1 and 500. + example: 20 + format: int32 + maximum: 500 + minimum: 1 + type: integer + to: + description: End of the time range as a Unix timestamp in seconds. + example: 1762523964 + format: int64 + type: integer + view_name: + description: The RUM view name to analyze (for example, /account/login). + example: /account/login(/:type) + type: string + required: + - application_id + - view_name + - from + - to + - sample_size + type: object + AggregatedLongTasksRequestData: + description: Data envelope for an aggregated long tasks request. + properties: + attributes: + $ref: "#/components/schemas/AggregatedLongTasksRequestAttributes" + type: + $ref: "#/components/schemas/AggregatedLongTasksRequestType" + required: + - type + - attributes + type: object + AggregatedLongTasksRequestType: + description: The JSON:API type for aggregated long tasks requests. + enum: + - aggregated_long_tasks + example: aggregated_long_tasks + type: string + x-enum-varnames: + - AGGREGATED_LONG_TASKS + AggregatedLongTasksResponse: + description: Response body for the aggregated long tasks endpoint. + properties: + data: + $ref: "#/components/schemas/AggregatedLongTasksResponseData" + required: + - data + type: object + AggregatedLongTasksResponseAttributes: + description: Attributes of an aggregated long tasks response. + properties: + application_id: + description: The RUM application ID that was analyzed. + example: ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b + type: string + criteria: + $ref: "#/components/schemas/AggregatedWaterfallPerformanceCriteria" + from: + description: Start of the analyzed time range as a Unix timestamp in seconds. + example: 1762437564 + format: int64 + type: integer + long_tasks_by_invoker_type: + description: Long task statistics grouped by invoker type, sorted by impact score descending. + items: + $ref: "#/components/schemas/AggregatedLongTasksByInvokerType" + type: array + sampled_view_ids: + description: List of RUM view IDs sampled for this aggregation, capped at 50. + example: + - 6fbf69b6-9455-436a-b894-a6bf64126d40 + items: + type: string + type: array + to: + description: End of the analyzed time range as a Unix timestamp in seconds. + example: 1762523964 + format: int64 + type: integer + view_count: + description: Number of view instances included in the analysis. + example: 50 + format: int32 + maximum: 2147483647 + type: integer + view_name: + description: The RUM view name that was analyzed. + example: /account/login(/:type) + type: string + required: + - view_name + - application_id + - view_count + - from + - to + - sampled_view_ids + - long_tasks_by_invoker_type + type: object + AggregatedLongTasksResponseData: + description: Data envelope for an aggregated long tasks response. + properties: + attributes: + $ref: "#/components/schemas/AggregatedLongTasksResponseAttributes" + id: + description: Hash-based unique identifier for this aggregation. + example: 2f0b3455 + type: string + type: + $ref: "#/components/schemas/AggregatedLongTasksRequestType" + required: + - id + - type + - attributes + type: object + AggregatedLowCacheHitRate: + description: Aggregated low cache hit rate detection at view level. + properties: + avg_cache_hit_rate: + description: Average cache hit rate across affected views. + example: 0.15 + format: double + type: number + avg_resource_download_size_bytes: + description: Average total download size of uncached resources in bytes. + example: 1048576 + format: int64 + type: integer + fingerprint: + description: Unique fingerprint identifying this detection group. + example: v1$abc123 + type: string + impact_score: + description: Impact score for this detection. + example: 20.0 + format: double + type: number + view_occurrences: + description: Number of sampled views where this detection occurred. + example: 5 + format: int32 + maximum: 2147483647 + type: integer + required: + - fingerprint + - view_occurrences + - avg_cache_hit_rate + - avg_resource_download_size_bytes + - impact_score + type: object + AggregatedMobileScrollFriction: + description: Aggregated mobile scroll friction detection at view level. + properties: + avg_scroll_frozen_frame_count: + description: Average number of frozen frames during scroll interactions. + example: 3 + format: int32 + maximum: 2147483647 + type: integer + fingerprint: + description: Unique fingerprint identifying this detection group. + example: v1$ghi789 + type: string + impact_score: + description: Impact score for this detection. + example: 12.0 + format: double + type: number + view_occurrences: + description: Number of sampled views where this detection occurred. + example: 6 + format: int32 + maximum: 2147483647 + type: integer + required: + - fingerprint + - view_occurrences + - avg_scroll_frozen_frame_count + - impact_score + type: object + AggregatedResource: + description: Aggregated performance statistics for a single network resource across sampled view instances. + properties: + avg_duration_ms: + description: Average total duration in milliseconds. + example: 839.1 + format: double + type: number + avg_start_time_ms: + description: Average start time relative to view start in milliseconds. + example: 1486.3 + format: double + type: number + cache_hit_rate_pct: + description: Cache hit rate as a percentage. + example: 100.0 + format: double + type: number + cached_count: + description: Number of requests served from cache. + example: 27 + format: int32 + maximum: 2147483647 + type: integer + downloaded_count: + description: Number of requests downloaded from the network. + example: 0 + format: int32 + maximum: 2147483647 + type: integer + global_p75_duration_ms: + description: 75th percentile duration across all view names in the application, present when include_global_appearance is true. + example: 500.0 + format: double + type: number + global_view_name_count: + description: Number of distinct view names in the application that load this resource, present when include_global_appearance is true. + example: 3 + format: int32 + maximum: 2147483647 + type: integer + global_view_name_pct: + description: Percentage of distinct view names in the application that load this resource, present when include_global_appearance is true. + example: 30.0 + format: double + type: number + http_method: + description: HTTP method for the resource request. + example: GET + nullable: true + type: string + load_frequency_pct: + description: Percentage of sampled view instances that loaded this resource. + example: 54.0 + format: double + type: number + max_duration_ms: + description: Maximum duration in milliseconds. + example: 945.6 + format: double + type: number + median_duration_ms: + description: Median duration in milliseconds. + example: 836.2 + format: double + type: number + min_duration_ms: + description: Minimum duration in milliseconds. + example: 812.7 + format: double + type: number + p75_duration_ms: + description: 75th percentile duration in milliseconds. + example: 844.1 + format: double + type: number + p95_duration_ms: + description: 95th percentile duration in milliseconds. + example: 861.8 + format: double + type: number + resource_type: + description: Resource type (JS, CSS, image, fetch, XHR, document, and so on). + example: fetch + nullable: true + type: string + resource_url_path_group: + description: URL path group used to aggregate similar resources. + example: /api/gallery + type: string + timing_breakdown: + $ref: "#/components/schemas/AggregatedResourceTimingBreakdown" + total_requests: + description: Total number of requests for this resource across all sampled views. + example: 27 + format: int32 + maximum: 2147483647 + type: integer + views_with_resource: + description: Number of sampled view instances that loaded this resource. + example: 27 + format: int32 + maximum: 2147483647 + type: integer + required: + - resource_url_path_group + - resource_type + - http_method + - avg_start_time_ms + - avg_duration_ms + - p95_duration_ms + - p75_duration_ms + - median_duration_ms + - min_duration_ms + - max_duration_ms + - timing_breakdown + - total_requests + - views_with_resource + - load_frequency_pct + - cached_count + - downloaded_count + - cache_hit_rate_pct + type: object + AggregatedResourceTimingBreakdown: + description: Average timing breakdown per network phase for a resource. + properties: + avg_connect_ms: + description: Average TCP connect duration in milliseconds. + example: 20.0 + format: double + type: number + avg_dns_ms: + description: Average DNS resolution duration in milliseconds. + example: 10.0 + format: double + type: number + avg_download_ms: + description: Average download phase duration in milliseconds. + example: 135.0 + format: double + type: number + avg_first_byte_ms: + description: Average time to first byte in milliseconds. + example: 30.0 + format: double + type: number + avg_redirect_ms: + description: Average redirect phase duration in milliseconds. + example: 0.0 + format: double + type: number + avg_ssl_ms: + description: Average SSL handshake duration in milliseconds. + example: 5.0 + format: double + type: number + required: + - avg_redirect_ms + - avg_dns_ms + - avg_connect_ms + - avg_ssl_ms + - avg_first_byte_ms + - avg_download_ms + type: object + AggregatedSignalsProblemsRequest: + description: Request body for the aggregated signals and problems endpoint. + properties: + data: + $ref: "#/components/schemas/AggregatedSignalsProblemsRequestData" + required: + - data + type: object + AggregatedSignalsProblemsRequestAttributes: + description: Attributes for an aggregated signals and problems query. + properties: + application_id: + description: The RUM application ID to analyze. + example: ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b + type: string + criteria: + $ref: "#/components/schemas/AggregatedWaterfallPerformanceCriteria" + detection_types: + description: List of detection types to include in the response. When omitted, all types are returned. + example: + - high_script_evaluations + - uncompressed_resources + items: + type: string + type: array + filter: + description: RUM query string to filter events (for example, @session.type:user @geo.country:US). + example: "@session.type:user" + type: string + from: + description: Start of the time range as a Unix timestamp in seconds. + example: 1762437564 + format: int64 + type: integer + sample_size: + description: Number of view instances to sample, between 1 and 50. + example: 30 + format: int32 + maximum: 50 + minimum: 1 + type: integer + to: + description: End of the time range as a Unix timestamp in seconds. + example: 1762523964 + format: int64 + type: integer + view_name: + description: The RUM view name to analyze (for example, /account/login). + example: /account/login(/:type) + type: string + required: + - application_id + - view_name + - from + - to + - sample_size + type: object + AggregatedSignalsProblemsRequestData: + description: Data envelope for an aggregated signals and problems request. + properties: + attributes: + $ref: "#/components/schemas/AggregatedSignalsProblemsRequestAttributes" + type: + $ref: "#/components/schemas/AggregatedSignalsProblemsRequestType" + required: + - type + - attributes + type: object + AggregatedSignalsProblemsRequestType: + description: The JSON:API type for aggregated signals and problems requests. + enum: + - aggregated_signals_problems + example: aggregated_signals_problems + type: string + x-enum-varnames: + - AGGREGATED_SIGNALS_PROBLEMS + AggregatedSignalsProblemsResponse: + description: Response body for the aggregated signals and problems endpoint. + properties: + data: + $ref: "#/components/schemas/AggregatedSignalsProblemsResponseData" + required: + - data + type: object + AggregatedSignalsProblemsResponseAttributes: + description: Attributes of an aggregated signals and problems response. + properties: + application_id: + description: The RUM application ID that was analyzed. + example: ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b + type: string + criteria: + $ref: "#/components/schemas/AggregatedWaterfallPerformanceCriteria" + from: + description: Start of the analyzed time range as a Unix timestamp in seconds. + example: 1710000000 + format: int64 + type: integer + problem_detections: + $ref: "#/components/schemas/SignalsProblemsDetections" + sample_metadata: + $ref: "#/components/schemas/SignalsProblemsSampleMetadata" + to: + description: End of the analyzed time range as a Unix timestamp in seconds. + example: 1710003600 + format: int64 + type: integer + view_name: + description: The RUM view name that was analyzed. + example: /checkout + type: string + required: + - view_name + - application_id + - from + - to + - sample_metadata + - problem_detections + type: object + AggregatedSignalsProblemsResponseData: + description: Data envelope for an aggregated signals and problems response. + properties: + attributes: + $ref: "#/components/schemas/AggregatedSignalsProblemsResponseAttributes" + id: + description: Hash-based unique identifier for this aggregation. + example: 2f0b3455 + type: string + type: + $ref: "#/components/schemas/AggregatedSignalsProblemsRequestType" + required: + - id + - type + - attributes + type: object + AggregatedSlowFCPHighBytes: + description: Aggregated slow first contentful paint with high byte count detection. + properties: + avg_bytes_before_fcp_bytes: + description: Average total bytes loaded before first contentful paint. + example: 2097152 + format: int64 + type: integer + avg_first_contentful_paint_ms: + description: Average first contentful paint time in milliseconds. + example: 3500 + format: int64 + type: integer + avg_resource_count_before_fcp: + description: Average number of resources loaded before first contentful paint. + example: 25 + format: int64 + type: integer + fingerprint: + description: Unique fingerprint identifying this detection group. + example: v1$def456 + type: string + impact_score: + description: Impact score for this detection. + example: 18.0 + format: double + type: number + platform: + description: Platform identifier for the affected views. + example: browser + type: string + view_occurrences: + description: Number of sampled views where this detection occurred. + example: 4 + format: int32 + maximum: 2147483647 + type: integer + required: + - fingerprint + - view_occurrences + - avg_first_contentful_paint_ms + - avg_bytes_before_fcp_bytes + - avg_resource_count_before_fcp + - platform + - impact_score + type: object + AggregatedSlowInteractionLongTask: + description: Aggregated slow interaction with long task detection grouped by action and selector. + properties: + action_type: + description: Type of user interaction that triggered the slow response. + example: click + type: string + avg_blocking_duration: + description: Average long task blocking duration in nanoseconds. + example: 250000000 + format: int64 + type: integer + avg_duration: + description: Average total interaction duration in nanoseconds. + example: 320000000 + format: int64 + type: integer + fingerprint: + description: Unique fingerprint identifying this detection group. + example: v1$jkl012 + type: string + impact_score: + description: Impact score combining view frequency and blocking severity. + example: 22.0 + format: double + type: number + instance_count: + description: Total number of detection instances across sampled views. + example: 9 + format: int32 + maximum: 2147483647 + type: integer + selector: + description: CSS selector of the element that was interacted with. + example: "#submit-button" + nullable: true + type: string + selector_normalized: + description: Normalized CSS selector with dynamic parts replaced. + example: button[data-action] + nullable: true + type: string + view_occurrences: + description: Number of sampled views where this detection occurred. + example: 7 + format: int32 + maximum: 2147483647 + type: integer + required: + - fingerprint + - action_type + - selector + - selector_normalized + - view_occurrences + - instance_count + - avg_blocking_duration + - avg_duration + - impact_score + type: object + AggregatedUncompressedResource: + description: Aggregated uncompressed resource detection grouped by URL path. + properties: + avg_body_size: + description: Average uncompressed body size in bytes. + example: 524288 + format: int64 + type: integer + avg_duration: + description: Average resource loading duration in nanoseconds. + example: 0 + format: int64 + type: integer + fingerprint: + description: Unique fingerprint identifying this detection group. + example: v1$65e268e25cab3a1f6230405ccf011a68 + type: string + impact_score: + description: Impact score combining view frequency and resource size. + example: 16.67 + format: double + type: number + instance_count: + description: Total number of detection instances across sampled views. + example: 1 + format: int32 + maximum: 2147483647 + type: integer + provider_type: + description: CDN or hosting provider type for the resource. + example: cloudfront + nullable: true + type: string + render_blocking: + description: Whether the resource is render-blocking. + example: blocking + nullable: true + type: string + resource_type: + description: Type of the resource (JS, CSS, image, fetch, and so on). + example: image + type: string + url_path_group: + description: Normalized URL path pattern for the uncompressed resource. + example: /cdn/hero.jpg + type: string + view_occurrences: + description: Number of sampled views where this detection occurred. + example: 1 + format: int32 + maximum: 2147483647 + type: integer + required: + - fingerprint + - url_path_group + - resource_type + - render_blocking + - provider_type + - view_occurrences + - instance_count + - avg_body_size + - avg_duration + - impact_score + type: object + AggregatedWaterfallPerformanceCriteria: + description: Performance criteria to filter view instances by a metric threshold. + properties: + max: + description: Maximum threshold in seconds (inclusive). + example: 5.0 + format: double + type: number + metric: + $ref: "#/components/schemas/AggregatedWaterfallPerformanceCriteriaMetric" + min: + description: Minimum threshold in seconds (inclusive). + example: 2.5 + format: double + type: number + required: + - metric + type: object + AggregatedWaterfallPerformanceCriteriaMetric: + description: Performance metric used to filter view instances by threshold. + enum: + - loading_time + - largest_contentful_paint + - first_contentful_paint + - interaction_to_next_paint + example: largest_contentful_paint + type: string + x-enum-varnames: + - LOADING_TIME + - LARGEST_CONTENTFUL_PAINT + - FIRST_CONTENTFUL_PAINT + - INTERACTION_TO_NEXT_PAINT + AggregatedWaterfallRequest: + description: Request body for the aggregated waterfall endpoint. + properties: + data: + $ref: "#/components/schemas/AggregatedWaterfallRequestData" + required: + - data + type: object + AggregatedWaterfallRequestAttributes: + description: Attributes for an aggregated waterfall query. + properties: + application_id: + description: The RUM application ID to analyze. + example: ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b + type: string + criteria: + $ref: "#/components/schemas/AggregatedWaterfallPerformanceCriteria" + filter: + description: RUM query string to filter events (for example, @session.type:user @geo.country:US). + example: "@session.type:user" + type: string + from: + description: Start of the time range as a Unix timestamp in seconds. + example: 1762437564 + format: int64 + type: integer + include_global_appearance: + description: When true, enriches each resource with cross-view appearance statistics. + example: false + type: boolean + sample_size: + description: Number of view instances to sample, between 1 and 500. + example: 20 + format: int32 + maximum: 500 + minimum: 1 + type: integer + to: + description: End of the time range as a Unix timestamp in seconds. + example: 1762523964 + format: int64 + type: integer + view_name: + description: The RUM view name to analyze (for example, /account/login). + example: /account/login(/:type) + type: string + required: + - application_id + - view_name + - from + - to + - sample_size + type: object + AggregatedWaterfallRequestData: + description: Data envelope for an aggregated waterfall request. + properties: + attributes: + $ref: "#/components/schemas/AggregatedWaterfallRequestAttributes" + type: + $ref: "#/components/schemas/AggregatedWaterfallRequestType" + required: + - type + - attributes + type: object + AggregatedWaterfallRequestType: + description: The JSON:API type for aggregated waterfall requests. + enum: + - aggregated_waterfall + example: aggregated_waterfall + type: string + x-enum-varnames: + - AGGREGATED_WATERFALL + AggregatedWaterfallResponse: + description: Response body for the aggregated waterfall endpoint. + properties: + data: + $ref: "#/components/schemas/AggregatedWaterfallResponseData" + required: + - data + type: object + AggregatedWaterfallResponseAttributes: + description: Attributes of an aggregated waterfall response. + properties: + application_id: + description: The RUM application ID that was analyzed. + example: ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b + type: string + criteria: + $ref: "#/components/schemas/AggregatedWaterfallPerformanceCriteria" + from: + description: Start of the analyzed time range as a Unix timestamp in seconds. + example: 1762437564 + format: int64 + type: integer + resources: + description: Network resources in chronological waterfall order. + items: + $ref: "#/components/schemas/AggregatedResource" + type: array + sampled_view_ids: + description: List of RUM view IDs sampled for this aggregation, capped at 50. + example: + - 6fbf69b6-9455-436a-b894-a6bf64126d40 + - dfe318df-4ae5-44b8-9fe2-4107885e1a46 + items: + type: string + type: array + to: + description: End of the analyzed time range as a Unix timestamp in seconds. + example: 1762523964 + format: int64 + type: integer + total_cache_hit_rate_pct: + description: Overall cache hit rate across all sampled views. + example: 0.677 + format: double + type: number + view_count: + description: Number of view instances included in the analysis. + example: 50 + format: int32 + maximum: 2147483647 + type: integer + view_name: + description: The RUM view name that was analyzed. + example: /account/login(/:type) + type: string + required: + - view_name + - application_id + - view_count + - from + - to + - sampled_view_ids + - total_cache_hit_rate_pct + - resources + type: object + AggregatedWaterfallResponseData: + description: Data envelope for an aggregated waterfall response. + properties: + attributes: + $ref: "#/components/schemas/AggregatedWaterfallResponseAttributes" + id: + description: Hash-based unique identifier for this aggregation. + example: 2f0b3455 + type: string + type: + $ref: "#/components/schemas/AggregatedWaterfallRequestType" + required: + - id + - type + - attributes + type: object AiCustomRuleDataType: description: AI custom rule resource type. enum: [ai_rule] @@ -26277,7 +27293,7 @@ components: - attributes type: object DashboardUsageAttributes: - description: Usage statistics for a dashboard. + description: Usage statistics for a dashboard. The `viewer` field and all view-count fields (`total_views`, `viewed_at`, `total_views_by_type`) are populated only when Real User Monitoring (RUM) is active for the org. properties: author: $ref: "#/components/schemas/DashboardUsageUser" @@ -26316,7 +27332,7 @@ components: example: My production overview type: string total_views: - description: The total number of times the dashboard has been viewed. + description: Total view count for the dashboard. Counts only views captured by Real User Monitoring (RUM); `0` in orgs without RUM. example: 42 format: int64 type: integer @@ -26325,11 +27341,11 @@ components: description: View count for that view type. format: int64 type: integer - description: View counts keyed by view type. Possible keys are `in_app`, `embed`, `public`, `shared`, `api`, and `unknown`. + description: View counts keyed by view type (`in_app`, `embed`, `public`, `shared`, `api`, `unknown`). Counts only views captured by Real User Monitoring (RUM); empty in orgs without RUM. nullable: true type: object viewed_at: - description: When the dashboard was most recently viewed. + description: When the dashboard was most recently viewed. Populated only when Real User Monitoring (RUM) is active for the org; `null` in orgs without RUM. example: "2026-05-01T14:22:10.000Z" format: date-time nullable: true @@ -51225,6 +52241,53 @@ components: example: "One or several indexes are missing or invalid, results hold data from the other indexes" type: string type: object + LongTaskMetricStats: + description: Statistical distribution (average, min, max) of a long task metric across sampled views. + properties: + average: + description: Average value across sampled views. + example: 3504.1 + format: double + type: number + max: + description: Maximum value across sampled views. + example: 3517.8 + format: double + type: number + min: + description: Minimum value across sampled views. + example: 3500.1 + format: double + type: number + required: + - average + - min + - max + type: object + LongTaskStatsPerView: + description: Statistical distributions of long task metrics computed per view across sampled views. + properties: + fcp_blocking_time_ms: + $ref: "#/components/schemas/LongTaskMetricStats" + fcp_count: + $ref: "#/components/schemas/LongTaskMetricStats" + inp_overlap_blocking_time_ms: + $ref: "#/components/schemas/LongTaskMetricStats" + inp_overlap_count: + $ref: "#/components/schemas/LongTaskMetricStats" + lcp_blocking_time_ms: + $ref: "#/components/schemas/LongTaskMetricStats" + lcp_count: + $ref: "#/components/schemas/LongTaskMetricStats" + loading_time_blocking_time_ms: + $ref: "#/components/schemas/LongTaskMetricStats" + loading_time_count: + $ref: "#/components/schemas/LongTaskMetricStats" + total_blocking_time_ms: + $ref: "#/components/schemas/LongTaskMetricStats" + total_count: + $ref: "#/components/schemas/LongTaskMetricStats" + type: object MSTeamsIntegrationMetadata: description: Incident integration metadata for the Microsoft Teams integration. properties: @@ -72430,6 +73493,275 @@ components: example: "report_id" type: string type: object + SalesforceIncidentsOrganizationResponseAttributes: + description: Attributes of a Salesforce organization connected to the Datadog Salesforce integration. + properties: + instance_url: + description: The Salesforce instance URL used to call this organization's APIs. + example: "https://acme.my.salesforce.com" + type: string + name: + description: Human-readable name of the Salesforce organization. + example: "Acme Production Org" + type: string + sfdc_org_id: + description: The Salesforce organization identifier (15- or 18-character Salesforce org ID). + example: "00D000000000000" + type: string + sfdc_org_type: + description: The Salesforce organization type (for example, `Production` or `Sandbox`). + example: "Production" + type: string + type: object + SalesforceIncidentsOrganizationResponseData: + description: Salesforce organization data from a response. + properties: + attributes: + $ref: "#/components/schemas/SalesforceIncidentsOrganizationResponseAttributes" + id: + description: The Datadog-assigned ID of the connected Salesforce organization. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 + type: string + type: + $ref: "#/components/schemas/SalesforceIncidentsOrganizationType" + required: + - id + - type + - attributes + type: object + SalesforceIncidentsOrganizationType: + default: salesforce-incidents-org + description: Salesforce organization resource type. + enum: + - salesforce-incidents-org + example: salesforce-incidents-org + type: string + x-enum-varnames: + - SALESFORCE_INCIDENTS_ORG + SalesforceIncidentsOrganizationsResponse: + description: |- + Response containing a list of Salesforce organizations connected to the + Datadog Salesforce integration. + properties: + data: + description: An array of Salesforce organizations. + items: + $ref: "#/components/schemas/SalesforceIncidentsOrganizationResponseData" + type: array + required: + - data + type: object + SalesforceIncidentsTemplateCreateAttributes: + description: Salesforce incident template attributes for a create request. + properties: + description: + description: Long-form description body for Salesforce incidents created from this template. + example: "An incident was detected by Datadog monitors." + maxLength: 2048 + minLength: 1 + type: string + name: + description: Human-readable name for this incident template. Must be unique within your organization. + example: "production-outage" + maxLength: 100 + minLength: 1 + type: string + owner_id: + description: The Salesforce user ID that owns incidents created from this template. + example: "005000000000000" + maxLength: 255 + minLength: 1 + type: string + priority: + $ref: "#/components/schemas/SalesforceIncidentsTemplatePriority" + salesforce_org_id: + description: The Datadog-assigned ID of the Salesforce organization this template belongs to. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + format: uuid + type: string + subject: + description: Subject line for Salesforce incidents created from this template. + example: "Datadog Incident: Production Outage" + maxLength: 255 + minLength: 1 + type: string + required: + - salesforce_org_id + - name + - subject + - description + - owner_id + - priority + type: object + SalesforceIncidentsTemplateCreateData: + description: Salesforce incident template data for a create request. + properties: + attributes: + $ref: "#/components/schemas/SalesforceIncidentsTemplateCreateAttributes" + type: + $ref: "#/components/schemas/SalesforceIncidentsTemplateType" + required: + - type + - attributes + type: object + SalesforceIncidentsTemplateCreateRequest: + description: Create request for a Salesforce incident template. + properties: + data: + $ref: "#/components/schemas/SalesforceIncidentsTemplateCreateData" + required: + - data + type: object + SalesforceIncidentsTemplatePriority: + description: Priority of the Salesforce incident created from this template. + enum: + - Critical + - High + - Moderate + - Low + example: "High" + type: string + x-enum-varnames: + - CRITICAL + - HIGH + - MODERATE + - LOW + SalesforceIncidentsTemplateResponse: + description: Response containing a Salesforce incident template. + properties: + data: + $ref: "#/components/schemas/SalesforceIncidentsTemplateResponseData" + required: + - data + type: object + SalesforceIncidentsTemplateResponseAttributes: + description: Salesforce incident template attributes returned by the API. + properties: + description: + description: Long-form description body for Salesforce incidents created from this template. + example: "An incident was detected by Datadog monitors." + type: string + name: + description: Human-readable name for this incident template. + example: "production-outage" + type: string + owner_id: + description: The Salesforce user ID that owns incidents created from this template. + example: "005000000000000" + type: string + priority: + $ref: "#/components/schemas/SalesforceIncidentsTemplatePriority" + salesforce_org_id: + description: The Datadog-assigned ID of the Salesforce organization this template belongs to. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + format: uuid + type: string + subject: + description: Subject line for Salesforce incidents created from this template. + example: "Datadog Incident: Production Outage" + type: string + type: object + SalesforceIncidentsTemplateResponseData: + description: Salesforce incident template data from a response. + properties: + attributes: + $ref: "#/components/schemas/SalesforceIncidentsTemplateResponseAttributes" + id: + description: The ID of the Salesforce incident template. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 + type: string + type: + $ref: "#/components/schemas/SalesforceIncidentsTemplateType" + required: + - id + - type + - attributes + type: object + SalesforceIncidentsTemplateType: + default: salesforce-incidents-incident-template + description: Salesforce incident template resource type. + enum: + - salesforce-incidents-incident-template + example: salesforce-incidents-incident-template + type: string + x-enum-varnames: + - SALESFORCE_INCIDENTS_INCIDENT_TEMPLATE + SalesforceIncidentsTemplateUpdateAttributes: + description: Salesforce incident template attributes for an update request. + properties: + description: + description: Long-form description body for Salesforce incidents created from this template. + example: "An incident was detected by Datadog monitors." + maxLength: 2048 + minLength: 1 + type: string + name: + description: Human-readable name for this incident template. + example: "production-outage" + maxLength: 100 + minLength: 1 + type: string + owner_id: + description: The Salesforce user ID that owns incidents created from this template. + example: "005000000000000" + maxLength: 255 + minLength: 1 + type: string + priority: + $ref: "#/components/schemas/SalesforceIncidentsTemplatePriority" + salesforce_org_id: + description: The Datadog-assigned ID of the Salesforce organization this template belongs to. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + format: uuid + type: string + subject: + description: Subject line for Salesforce incidents created from this template. + example: "Datadog Incident: Production Outage" + maxLength: 255 + minLength: 1 + type: string + type: object + SalesforceIncidentsTemplateUpdateData: + description: Salesforce incident template data for an update request. + properties: + attributes: + $ref: "#/components/schemas/SalesforceIncidentsTemplateUpdateAttributes" + id: + description: The ID of the Salesforce incident template being updated. Must match the path parameter. + example: "596da4af-0563-4097-90ff-07230c3f9db3" + maxLength: 100 + minLength: 1 + type: string + type: + $ref: "#/components/schemas/SalesforceIncidentsTemplateType" + required: + - id + - type + - attributes + type: object + SalesforceIncidentsTemplateUpdateRequest: + description: Update request for a Salesforce incident template. + properties: + data: + $ref: "#/components/schemas/SalesforceIncidentsTemplateUpdateData" + required: + - data + type: object + SalesforceIncidentsTemplatesResponse: + description: Response containing a list of Salesforce incident templates. + properties: + data: + description: An array of Salesforce incident templates. + items: + $ref: "#/components/schemas/SalesforceIncidentsTemplateResponseData" + type: array + required: + - data + type: object SampleLogGenerationBulkSubscriptionAttributes: description: The attributes for creating sample log generation subscriptions for multiple content packs. properties: @@ -74784,73 +76116,90 @@ components: - attributes type: object SecurityEntityRiskScoreAttributes: - description: Attributes of an entity risk score + description: Attributes of an entity risk score. properties: + accountIds: + description: Cloud account IDs associated with the entity. + example: ["222233334444", "3333333555555"] + items: + description: A cloud account ID. + type: string + type: array configRisks: $ref: "#/components/schemas/SecurityEntityConfigRisks" - entityID: - description: Unique identifier for the entity - example: "arn:aws:iam::123456789012:user/john.doe" - type: string entityMetadata: $ref: "#/components/schemas/SecurityEntityMetadata" entityName: - description: Human-readable name of the entity + description: Human-readable name of the entity. example: "john.doe" type: string entityProviders: - description: Cloud providers associated with the entity - example: ["aws"] + description: Cloud providers associated with the entity. + example: ["AWS"] items: description: A cloud provider name. type: string type: array entityRoles: - description: Roles associated with the entity - example: ["Admin", "Developer"] + description: Roles associated with the entity. + example: [] items: description: A role assigned to the entity. type: string type: array + entitySubTypes: + description: Sub-types associated with the entity. + example: ["Root"] + items: + description: An entity sub-type label. + type: string + type: array entityType: - description: Type of the entity (e.g., aws_iam_user, aws_ec2_instance) + description: Type of the entity (for example, aws_iam_user, aws_ec2_instance). example: "aws_iam_user" type: string + entityTypes: + description: All types associated with the entity. + example: ["Root", "User Name"] + items: + description: An entity type label. + type: string + type: array firstDetected: - description: Timestamp when the entity was first detected (Unix milliseconds) - example: 1704067200000 + description: Timestamp when the entity was first detected (Unix milliseconds). + example: 1778876604661 format: int64 type: integer lastActivityTitle: - description: Title of the most recent signal detected for this entity + description: Title of the most recent signal detected for this entity. example: "Suspicious API call detected" type: string lastDetected: - description: Timestamp when the entity was last detected (Unix milliseconds) - example: 1705276800000 + description: Timestamp when the entity was last detected (Unix milliseconds). + example: 1780064607093 format: int64 type: integer riskScore: - description: Current risk score for the entity + description: Current risk score for the entity. example: 85 format: int64 type: integer riskScoreEvolution: - description: Change in risk score compared to previous period + description: Change in risk score compared to previous period. example: 12 format: int64 type: integer severity: $ref: "#/components/schemas/SecurityEntityRiskScoreAttributesSeverity" signalsDetected: - description: Number of security signals detected for this entity + description: Number of security signals detected for this entity. example: 15 format: int64 type: integer required: - - entityID - - entityType - entityProviders + - entitySubTypes + - accountIds - riskScore - riskScoreEvolution - severity @@ -74877,11 +76226,19 @@ components: - MEDIUM - LOW - INFO + SecurityEntityRiskScoreResponse: + description: Response containing a single entity risk score + properties: + data: + $ref: "#/components/schemas/SecurityEntityRiskScore" + required: + - data + type: object SecurityEntityRiskScoreType: - description: Resource type + description: Resource type. enum: - - security_entity_risk_score - example: security_entity_risk_score + - SecurityEntityRiskScore + example: SecurityEntityRiskScore type: string x-enum-varnames: - SECURITY_ENTITY_RISK_SCORE @@ -82201,6 +83558,85 @@ components: display_name: Test User principal_id: user@example.com type: object + SignalsProblemsDetections: + description: Grouped detection results by detection type. + properties: + high_frozen_frame_rates: + description: Detected high frozen frame rate issues. + items: + $ref: "#/components/schemas/AggregatedHighFrozenFrameRate" + type: array + high_script_evaluations: + description: Detected high script evaluation issues. + items: + $ref: "#/components/schemas/AggregatedHighScriptEval" + type: array + low_cache_hit_rates: + description: Detected low cache hit rate issues. + items: + $ref: "#/components/schemas/AggregatedLowCacheHitRate" + type: array + mobile_scroll_frictions: + description: Detected mobile scroll friction issues. + items: + $ref: "#/components/schemas/AggregatedMobileScrollFriction" + type: array + slow_fcp_high_bytes: + description: Detected slow first contentful paint with high byte count issues. + items: + $ref: "#/components/schemas/AggregatedSlowFCPHighBytes" + type: array + slow_interaction_long_tasks: + description: Detected slow interaction with long task issues. + items: + $ref: "#/components/schemas/AggregatedSlowInteractionLongTask" + type: array + uncompressed_resources: + description: Detected uncompressed resource issues. + items: + $ref: "#/components/schemas/AggregatedUncompressedResource" + type: array + type: object + SignalsProblemsSampleMetadata: + description: Metadata about the sampling quality for a signals and problems query. + properties: + failed: + description: Number of view instances that failed to process. + example: 2 + format: int32 + maximum: 2147483647 + type: integer + requested: + description: Number of view instances requested for sampling. + example: 30 + format: int32 + maximum: 2147483647 + type: integer + sampled_view_ids: + description: List of RUM view IDs that were sampled. + example: + - 6fbf69b6-9455-436a-b894-a6bf64126d40 + items: + type: string + type: array + succeeded: + description: Number of view instances successfully processed. + example: 28 + format: int32 + maximum: 2147483647 + type: integer + success_rate: + description: Ratio of successfully processed views to requested views. + example: 0.93 + format: double + type: number + required: + - requested + - succeeded + - failed + - success_rate + - sampled_view_ids + type: object SimpleMonitorUserTemplate: description: A simplified version of a monitor user template. properties: @@ -92429,6 +93865,43 @@ components: type: string x-enum-varnames: - SECRET + TopLongTaskInvoker: + description: A top long task invoker within an invoker type. + properties: + criteria_view_occurrences: + description: Number of sampled views where this invoker had long tasks contributing to the criteria metric. + example: 40 + format: int32 + maximum: 2147483647 + type: integer + file: + description: Cleaned source file path for the invoker script. + example: src/pages/Gallery.tsx + nullable: true + type: string + impact_score: + description: Rank-product impact score combining view frequency and blocking time severity. + example: 0.67 + format: double + type: number + invoker: + description: Name of the invoker function or script. + example: Response.json.then + type: string + stats_per_view: + $ref: "#/components/schemas/LongTaskStatsPerView" + view_occurrences: + description: Number of sampled views where this invoker had any long tasks. + example: 68 + format: int32 + maximum: 2147483647 + type: integer + required: + - invoker + - file + - view_occurrences + - stats_per_view + type: object TraceAttributes: description: The attributes of a trace returned by the Get trace by ID endpoint. properties: @@ -116004,7 +117477,7 @@ paths: If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/dashboards/usage: get: - description: Get paginated usage statistics for every dashboard in the caller's organization. Use `page[limit]` and `page[offset]` to walk the result set. + description: Get paginated usage statistics for every dashboard in the caller's organization. Use `page[limit]` and `page[offset]` to walk the result set. Use `filter[edited_before]` or `filter[viewed_before]` to narrow results by recency. View-count fields depend on Real User Monitoring (RUM) and are `null` or `0` in orgs without RUM. operationId: ListDashboardsUsage parameters: - description: Maximum number of dashboards to return per page. Server-side maximum is 500; values above 500 return a 400 Bad Request. @@ -116024,6 +117497,20 @@ paths: format: int64 minimum: 0 type: integer + - description: Return only dashboards whose last edit (`edited_at`) is strictly before this ISO 8601 timestamp (`edited_at < value`; boundary matches are excluded). Must include a timezone offset (for example, `Z` or `+00:00`); naive timestamps return HTTP 400. + in: query + name: filter[edited_before] + required: false + schema: + example: "2025-04-26T00:00:00Z" + type: string + - description: Return only dashboards whose most recent view (`viewed_at`) is strictly before this ISO 8601 timestamp, including dashboards that have never been viewed. Must include a timezone offset; naive timestamps return HTTP 400. Orgs without Real User Monitoring (RUM) will see all dashboards returned by this filter. + in: query + name: filter[viewed_before] + required: false + schema: + example: "2025-04-26T00:00:00Z" + type: string responses: "200": content: @@ -116105,7 +117592,7 @@ paths: If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/dashboards/{dashboard_id}/usage: get: - description: Get usage statistics for a single dashboard. The response includes view counts, the most recent view and edit times, widget counts, and the dashboard quality score. + description: Get usage statistics for a single dashboard. The response includes view counts, the most recent view and edit times, widget counts, and the dashboard quality score. View-count fields depend on Real User Monitoring (RUM) and are `null` or `0` in orgs without RUM. operationId: GetDashboardUsage parameters: - description: The ID of the dashboard. @@ -126710,6 +128197,249 @@ paths: operator: OR permissions: - manage_integrations + /api/v2/integration/salesforce-incidents/incident-templates: + get: + description: Get all Salesforce incident templates configured for your organization. + operationId: GetIncidentTemplates + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + description: An incident was detected by Datadog monitors. + name: production-outage + owner_id: "005000000000000" + priority: High + salesforce_org_id: 596da4af-0563-4097-90ff-07230c3f9db3 + subject: "Datadog Incident: Production Outage" + id: 00000000-0000-0000-0000-000000000001 + type: salesforce-incidents-incident-template + schema: + $ref: "#/components/schemas/SalesforceIncidentsTemplatesResponse" + description: OK + "403": + $ref: "#/components/responses/ForbiddenResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get all Salesforce incident templates + tags: + - Salesforce Integration + "x-permission": + operator: OR + permissions: + - integrations_read + post: + description: |- + Create a new Salesforce incident template for your organization. Template + names must be unique within an organization. + operationId: CreateIncidentTemplate + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + description: An incident was detected by Datadog monitors. + name: production-outage + owner_id: "005000000000000" + priority: High + salesforce_org_id: 596da4af-0563-4097-90ff-07230c3f9db3 + subject: "Datadog Incident: Production Outage" + type: salesforce-incidents-incident-template + schema: + $ref: "#/components/schemas/SalesforceIncidentsTemplateCreateRequest" + description: Salesforce incident template payload. + required: true + responses: + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + description: An incident was detected by Datadog monitors. + name: production-outage + owner_id: "005000000000000" + priority: High + salesforce_org_id: 596da4af-0563-4097-90ff-07230c3f9db3 + subject: "Datadog Incident: Production Outage" + id: 00000000-0000-0000-0000-000000000002 + type: salesforce-incidents-incident-template + schema: + $ref: "#/components/schemas/SalesforceIncidentsTemplateResponse" + description: CREATED + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "409": + $ref: "#/components/responses/ConflictResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Create a Salesforce incident template + tags: + - Salesforce Integration + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - manage_integrations + /api/v2/integration/salesforce-incidents/incident-templates/{incident_template_id}: + delete: + description: Delete a single Salesforce incident template from your organization. + operationId: DeleteIncidentTemplate + parameters: + - $ref: "#/components/parameters/SalesforceIncidentsTemplateIDPathParameter" + responses: + "204": + description: OK + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Delete a Salesforce incident template + tags: + - Salesforce Integration + "x-permission": + operator: OR + permissions: + - manage_integrations + patch: + description: Update a single Salesforce incident template in your organization. + operationId: UpdateIncidentTemplate + parameters: + - $ref: "#/components/parameters/SalesforceIncidentsTemplateIDPathParameter" + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + name: production-outage-renamed + id: 596da4af-0563-4097-90ff-07230c3f9db3 + type: salesforce-incidents-incident-template + schema: + $ref: "#/components/schemas/SalesforceIncidentsTemplateUpdateRequest" + description: Salesforce incident template payload. + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + description: An incident was detected by Datadog monitors. + name: production-outage-renamed + owner_id: "005000000000000" + priority: High + salesforce_org_id: 596da4af-0563-4097-90ff-07230c3f9db3 + subject: "Datadog Incident: Production Outage" + id: 00000000-0000-0000-0000-000000000003 + type: salesforce-incidents-incident-template + schema: + $ref: "#/components/schemas/SalesforceIncidentsTemplateResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "409": + $ref: "#/components/responses/ConflictResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Update a Salesforce incident template + tags: + - Salesforce Integration + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - manage_integrations + /api/v2/integration/salesforce-incidents/organizations: + get: + description: |- + Get all Salesforce organizations connected to your Datadog organization + through the Salesforce integration. Salesforce organizations are connected + through the OAuth setup flow in the Datadog Salesforce integration page. + operationId: GetSalesforceOrganizations + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + instance_url: "https://acme.my.salesforce.com" + name: "Acme Production Org" + sfdc_org_id: "00D000000000000" + sfdc_org_type: "Production" + id: 00000000-0000-0000-0000-000000000001 + type: salesforce-incidents-org + schema: + $ref: "#/components/schemas/SalesforceIncidentsOrganizationsResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get all connected Salesforce organizations + tags: + - Salesforce Integration + "x-permission": + operator: OR + permissions: + - integrations_read + /api/v2/integration/salesforce-incidents/organizations/{salesforce_org_id}: + delete: + description: |- + Disconnect a Salesforce organization from your Datadog organization. + This also deletes any incident templates referencing the organization. + operationId: DeleteSalesforceOrganization + parameters: + - $ref: "#/components/parameters/SalesforceIncidentsOrganizationIDPathParameter" + responses: + "204": + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Delete a connected Salesforce organization + tags: + - Salesforce Integration + "x-permission": + operator: OR + permissions: + - manage_integrations /api/v2/integration/servicenow/assignment_groups/{instance_id}: get: description: |- @@ -149092,6 +150822,274 @@ paths: operator: OR permissions: - rum_apps_read + /api/v2/rum/query/insight/aggregated_long_tasks: + post: + description: |- + Get aggregated long task data for a RUM view, grouped by invoker type and sampled across multiple view instances. + operationId: QueryAggregatedLongTasks + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + application_id: ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b + from: 1762437564 + sample_size: 20 + to: 1762523964 + view_name: /account/login(/:type) + type: aggregated_long_tasks + schema: + $ref: "#/components/schemas/AggregatedLongTasksRequest" + required: true + responses: + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + application_id: ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b + from: 1762437564 + long_tasks_by_invoker_type: + - impact_score: 0.4 + invoker_type: resolve-promise + stats_per_view: + total_blocking_time_ms: + average: 3504.1 + max: 3517.8 + min: 3500.1 + total_count: + average: 1.0 + max: 1.0 + min: 1.0 + top_invokers: + - file: src/pages/Gallery.tsx + impact_score: 0.67 + invoker: Response.json.then + stats_per_view: + total_count: + average: 1.0 + max: 1.0 + min: 1.0 + view_occurrences: 68 + view_occurrences: 68 + sampled_view_ids: + - 6fbf69b6-9455-436a-b894-a6bf64126d40 + to: 1762523964 + view_count: 20 + view_name: /account/login(/:type) + id: 2f0b3455 + type: aggregated_long_tasks + schema: + $ref: "#/components/schemas/AggregatedLongTasksResponse" + description: Successful response + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Query aggregated long tasks + tags: ["RUM Insights"] + x-permission: + operator: OR + permissions: + - rum_apps_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/rum/query/insight/aggregated_signals_problems: + post: + description: |- + Get aggregated performance signals and problem detections for a RUM view, sampled across multiple view instances. + operationId: QueryAggregatedSignalsProblems + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + application_id: ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b + from: 1762437564 + sample_size: 30 + to: 1762523964 + view_name: /account/login(/:type) + type: aggregated_signals_problems + schema: + $ref: "#/components/schemas/AggregatedSignalsProblemsRequest" + required: true + responses: + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + application_id: ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b + from: 1710000000 + problem_detections: + high_script_evaluations: + - avg_duration: 300000000 + avg_forced_style_layout: 0 + fingerprint: v1$7766a8c2180aa153f5526ba8868999f8 + impact_score: 30.0 + instance_count: 3 + invoker_type: user-callback + source_category: + source_function_name: handleClick + source_url: https://cdn.example.com/app.js + view_occurrences: 3 + sample_metadata: + failed: 2 + requested: 30 + sampled_view_ids: + - 6fbf69b6-9455-436a-b894-a6bf64126d40 + succeeded: 28 + success_rate: 0.93 + to: 1710003600 + view_name: /checkout + id: 2f0b3455 + type: aggregated_signals_problems + schema: + $ref: "#/components/schemas/AggregatedSignalsProblemsResponse" + description: Successful response + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Query aggregated signals and problems + tags: ["RUM Insights"] + x-permission: + operator: OR + permissions: + - rum_apps_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/rum/query/insight/aggregated_waterfall: + post: + description: |- + Get aggregated network resource waterfall data for a RUM view, sampled across multiple view instances. + operationId: QueryAggregatedWaterfall + requestBody: + content: + application/json: + examples: + default: + value: + data: + attributes: + application_id: ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b + criteria: + metric: largest_contentful_paint + min: 0.3 + from: 1762437564 + sample_size: 20 + to: 1762523964 + view_name: /account/login(/:type) + type: aggregated_waterfall + schema: + $ref: "#/components/schemas/AggregatedWaterfallRequest" + required: true + responses: + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + application_id: ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b + criteria: + metric: largest_contentful_paint + min: 0.3 + from: 1762437564 + resources: + - avg_duration_ms: 839.1 + avg_start_time_ms: 1486.3 + cache_hit_rate_pct: 100.0 + cached_count: 27 + downloaded_count: 0 + http_method: GET + load_frequency_pct: 54.0 + max_duration_ms: 945.6 + median_duration_ms: 836.2 + min_duration_ms: 812.7 + p75_duration_ms: 844.1 + p95_duration_ms: 861.8 + resource_type: fetch + resource_url_path_group: /api/gallery + timing_breakdown: + avg_connect_ms: 0.0 + avg_dns_ms: 0.0 + avg_download_ms: 0.6 + avg_first_byte_ms: 59.9 + avg_redirect_ms: 0.0 + avg_ssl_ms: 0.0 + total_requests: 27 + views_with_resource: 27 + sampled_view_ids: + - 6fbf69b6-9455-436a-b894-a6bf64126d40 + to: 1762523964 + total_cache_hit_rate_pct: 0.5 + view_count: 20 + view_name: /account/login(/:type) + id: 2f0b3455 + type: aggregated_waterfall + schema: + $ref: "#/components/schemas/AggregatedWaterfallResponse" + description: Successful response + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Query aggregated waterfall + tags: ["RUM Insights"] + x-permission: + operator: OR + permissions: + - rum_apps_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/rum/replay/playlists: get: description: List playlists. @@ -151124,6 +153122,8 @@ paths: value: data: - attributes: + accountIds: + - "123456789012" configRisks: hasIdentityRisk: false hasMisconfiguration: true @@ -151131,21 +153131,25 @@ paths: isPrivileged: false isProduction: true isPubliclyAccessible: true - entityID: "arn:aws:iam::123456789012:user/test-user" entityMetadata: environments: - production - mitreTactics: [] - mitreTechniques: [] + mitreTactics: + - ta0006-credential-access + mitreTechniques: + - t1078-valid-accounts services: - api-gateway sources: - cloudtrail entityName: test-user entityProviders: - - aws + - AWS entityRoles: [] - entityType: aws_iam_user + entitySubTypes: + - "IAM User" + entityTypes: + - "IAMUser" firstDetected: 1704067200000 lastActivityTitle: "Suspicious API call detected" lastDetected: 1705276800000 @@ -151154,10 +153158,12 @@ paths: severity: critical signalsDetected: 15 id: "arn:aws:iam::123456789012:user/test-user" - type: security_entity_risk_score + type: SecurityEntityRiskScore meta: - page: - total: 1 + pageNumber: 1 + pageSize: 10 + queryId: "abc123def456" + totalRowCount: 1 schema: $ref: "#/components/schemas/SecurityEntityRiskScoresResponse" description: OK @@ -151187,6 +153193,100 @@ 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-entities/risk-scores/{entity_id}: + get: + description: |- + Get the risk score for a specific entity by its ID. Returns security risk assessment including risk score, severity, detected signals, misconfigurations, and identity risks. + operationId: GetEntityRiskScore + parameters: + - description: The URL-encoded unique identifier for the entity. + in: path + name: entity_id + required: true + schema: + example: "arn:aws:iam::123456789012:user/john.doe" + type: string + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + accountIds: + - "123456789012" + configRisks: + hasIdentityRisk: false + hasMisconfiguration: true + hasPrivilegedRole: false + isPrivileged: false + isProduction: true + isPubliclyAccessible: true + entityMetadata: + environments: + - production + mitreTactics: + - ta0006-credential-access + mitreTechniques: + - t1078-valid-accounts + services: + - api-gateway + sources: + - cloudtrail + entityName: "test-user" + entityProviders: + - AWS + entityRoles: [] + entitySubTypes: + - "IAM User" + entityTypes: + - "IAMUser" + firstDetected: 1704067200000 + lastActivityTitle: "Suspicious API call detected" + lastDetected: 1705276800000 + riskScore: 85 + riskScoreEvolution: 12 + severity: critical + signalsDetected: 15 + id: "arn:aws:iam::123456789012:user/test-user" + type: SecurityEntityRiskScore + schema: + $ref: "#/components/schemas/SecurityEntityRiskScoreResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "404": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Not Found + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get Entity Risk Score + tags: + - Entity Risk Scores + 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/cloud_workload/policy/download: get: description: |- @@ -172964,6 +175064,9 @@ tags: - description: |- Manage your Real User Monitoring (RUM) applications, and search or aggregate your RUM events over HTTP. See the [RUM & Session Replay page](https://docs.datadoghq.com/real_user_monitoring/) for more information name: RUM + - description: |- + Get insights into the performance of your Real User Monitoring (RUM) applications over HTTP. See the [RUM & Session Replay page](https://docs.datadoghq.com/real_user_monitoring/) for more information + name: RUM Insights - description: View and manage Reference Tables in your organization. name: Reference Tables - description: |- @@ -173003,6 +175106,12 @@ tags: - description: |- Manage retention filters through [Manage Applications](https://app.datadoghq.com/rum/list) of RUM for your organization. name: Rum Retention Filters + - description: |- + Configure your [Datadog Salesforce integration](https://docs.datadoghq.com/integrations/salesforce/) + directly through the Datadog API. + externalDocs: + url: https://docs.datadoghq.com/api/latest/salesforce-integration + name: Salesforce Integration - description: |- API to create and update scorecard rules and outcomes. See [Scorecards](https://docs.datadoghq.com/service_catalog/scorecards) for more information. name: Scorecards diff --git a/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-both-filters-returns-OK-response.frozen b/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-both-filters-returns-OK-response.frozen new file mode 100644 index 000000000000..639407c4b3be --- /dev/null +++ b/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-both-filters-returns-OK-response.frozen @@ -0,0 +1 @@ +2026-06-01T18:15:39.812Z \ No newline at end of file diff --git a/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-both-filters-returns-OK-response.yml b/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-both-filters-returns-OK-response.yml new file mode 100644 index 000000000000..f4461771001a --- /dev/null +++ b/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-both-filters-returns-OK-response.yml @@ -0,0 +1,289 @@ +http_interactions: +- recorded_at: Mon, 01 Jun 2026 18:15:39 GMT + request: + body: null + headers: + Accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bedited_before%5D=2025-04-26T00%3A00%3A00Z&filter%5Bviewed_before%5D=2025-04-26T00%3A00%3A00Z + response: + body: + encoding: UTF-8 + string: '{"data":[{"id":"284-wiv-iqk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-10-21T21:02:03.739689Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-21T21:02:03.739689Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"29x-55z-rt2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-09T22:20:08.019993Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T22:20:09.093470Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"2be-q62-ep5","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-06-23T00:04:08.199090Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-23T00:04:08.199090Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"2gn-qtd-zd9","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:54:10.920756Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:54:57.107615Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"2m8-ht3-7kf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T02:11:27.660825Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T02:11:27.660825Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"2n8-amr-8ws","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_hostmap_widget_1738642608","teams":[],"created_at":"2025-02-04T04:16:49.306022Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-04T04:16:49.306022Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"2qn-4hs-6nz","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-06-06T18:28:02.296323Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-06T18:28:02.296323Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"2rd-dc2-4qz","type":"dashboards-usages","attributes":{"org_id":321813,"title":"delete-me","teams":[],"created_at":"2023-04-04T07:20:20.175651Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-04-04T07:25:00.141124Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"2t6-ira-9sr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-26T16:19:46.726552Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-26T16:19:46.726552Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"3bd-yi5-t9f","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Cloud + Foundry - Overview (cloned)","teams":[],"created_at":"2024-01-24T20:36:07.585183Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-24T20:36:07.585183Z","widget_count":42,"widget_count_by_type":{"query_value":21,"toplist":3,"note":5,"timeseries":9,"image":1,"hostmap":1,"heatmap":2},"dashboard_quality_score":0.0}},{"id":"3gp-ihg-25a","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:55:49.231714Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:55:49.231714Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"3hx-aas-pkd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-09T01:07:47.665899Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-09T01:11:49.409229Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"3jh-dek-qps","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-12-08T21:59:54.884830Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-08T22:00:29.988353Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"3jt-5cb-icy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-02-24T20:40:32.063650Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-02-24T20:40:33.482665Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"3kr-vna-uug","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:56:42.073944Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:56:42.073944Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"3y3-3x5-kq8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-11-09T16:03:35.113528Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-09T16:03:47.912796Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"43b-kw6-vqr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Cloud + Foundry - Overview (cloned)","teams":[],"created_at":"2023-09-20T09:37:10.513590Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-06T14:44:10.522900Z","widget_count":42,"widget_count_by_type":{"query_value":21,"toplist":3,"note":5,"timeseries":10,"image":1,"hostmap":1,"heatmap":1},"dashboard_quality_score":0.0}},{"id":"4j8-nbn-4gi","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-09-28T01:37:23.346984Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-09-28T01:37:23.346984Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"4n7-s4g-dqv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"For + dashboard list tests - DO NOT DELETE","teams":[],"created_at":"2020-02-11T13:49:29.555334Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2020-04-08T17:54:25.574039Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"4ud-du4-pi3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog + API Clients CI","teams":[],"created_at":"2021-05-17T08:32:02.449350Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-17T08:32:02.449350Z","widget_count":10,"widget_count_by_type":{"manage_status":1,"note":3,"timeseries":3,"toplist":3},"dashboard_quality_score":0.0}},{"id":"4wp-g9w-rqp","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2021-01-06T16:34:52.946050Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-01-06T16:34:52.946050Z","widget_count":1,"widget_count_by_type":{"change":1},"dashboard_quality_score":0.0}},{"id":"4wy-ajm-bvu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-10-04T18:35:18.554744Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:35:18.554744Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"4z7-iip-zrt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-07-07T17:09:12.214893Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-07T17:09:12.874904Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"59f-bun-r3c","type":"dashboards-usages","attributes":{"org_id":321813,"title":"VMware + vSphere - Overview","teams":[],"created_at":"2024-01-17T15:17:19.954644Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-17T15:17:33.545302Z","widget_count":22,"widget_count_by_type":{"image":1,"list_stream":1,"toplist":5,"timeseries":6,"note":3,"query_value":5,"check_status":1},"dashboard_quality_score":0.0}},{"id":"5cj-8j7-qpy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Octopus + Deploy Overview","teams":[],"created_at":"2024-12-11T20:48:25.007210Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":27,"viewed_at":"2025-01-16T20:42:51.598000Z","viewer":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":27,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2025-01-16T20:12:02.010750Z","widget_count":31,"widget_count_by_type":{"group":6,"note":5,"query_value":8,"list_stream":2,"toplist":2,"timeseries":1,"query_table":7},"dashboard_quality_score":0.0}},{"id":"5i4-3c5-qby","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Sherzod''s + Dashboard Wed, Dec 20, 1:37:28 pm","teams":[],"created_at":"2023-12-20T18:37:28.853122Z","author":{"id":"1725336","name":"Sherzod + Karimov","handle":"sherzod.karimov@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-20T18:37:28.853122Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"5mr-xms-2qa","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-09T22:16:56.913567Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T22:16:57.568474Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"5qz-2i3-6cq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"TF + Test Free Layout Dashboard","teams":[],"created_at":"2023-08-02T14:14:41.648472Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-08-02T14:14:41.648472Z","widget_count":1,"widget_count_by_type":{"event_stream":1},"dashboard_quality_score":0.0}},{"id":"5tp-tr6-93q","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-06-21T13:59:15.028164Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-06-21T13:59:15.028164Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"63v-49e-a7d","type":"dashboards-usages","attributes":{"org_id":321813,"title":"sarah + test","teams":[],"created_at":"2023-05-15T18:12:47.853642Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-05-15T18:25:28.895732Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"679-8up-bf2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Log Stream Widget Dashboard","teams":[],"created_at":"2022-04-14T13:40:43.116109Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-04-14T13:40:43.116109Z","widget_count":2,"widget_count_by_type":{"log_stream":2},"dashboard_quality_score":0.0}},{"id":"6by-h9d-gui","type":"dashboards-usages","attributes":{"org_id":321813,"title":"MM + RBAC Dashboard","teams":[],"created_at":"2021-04-23T16:14:13.820995Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-23T16:14:13.820995Z","widget_count":1,"widget_count_by_type":{"note":1},"dashboard_quality_score":0.0}},{"id":"6ez-pq7-4zk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Create_a_shared_dashboard_returns_OK_response-1689999025 + with Profile Metrics Query","teams":[],"created_at":"2023-07-22T04:10:25.713775Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-22T04:10:25.713775Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"6md-r2g-kxc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-06-17T03:08:25.445281Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-06-17T03:08:25.445281Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"6pm-2ad-2v8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-03-15T13:45:39.004786Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-15T13:45:40.299693Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"6qu-cxf-9jy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-09-13T12:31:40.237970Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-13T12:31:40.237970Z","widget_count":7,"widget_count_by_type":{"scatterplot":1,"timeseries":1,"toplist":1,"group":1,"note":1,"alert_graph":1,"slo":1},"dashboard_quality_score":0.0}},{"id":"74v-m9u-yzs","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Event Timeline Widget Dashboard","teams":[],"created_at":"2020-12-10T04:21:12.270024Z","author":null,"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2020-12-10T04:21:12.270024Z","widget_count":1,"widget_count_by_type":{"event_timeline":1},"dashboard_quality_score":0.0}},{"id":"76m-n9x-wd4","type":"dashboards-usages","attributes":{"org_id":321813,"title":"DL + FF TF","teams":[],"created_at":"2021-02-02T13:54:05.514952Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-02-02T13:54:05.514952Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"795-wur-2am","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog + API Clients CI","teams":[],"created_at":"2021-05-14T14:17:13.784143Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-14T14:17:13.784143Z","widget_count":10,"widget_count_by_type":{"manage_status":1,"note":3,"timeseries":3,"toplist":3},"dashboard_quality_score":0.0}},{"id":"7b3-yvp-mmq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"TF + Test Free Layout Dashboard","teams":[],"created_at":"2023-08-02T16:16:55.297530Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-08-02T16:16:55.297530Z","widget_count":1,"widget_count_by_type":{"event_stream":1},"dashboard_quality_score":0.0}},{"id":"7dp-46c-6tr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-07T16:37:56.369573Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-07T16:37:56.369573Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"7q2-h97-j2m","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_items_of_a_Dashboard_List_returns_OK_response_1731709308 + with Profile Metrics Query","teams":[],"created_at":"2024-11-15T22:21:49.262821Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-11-15T22:21:49.262821Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"7ym-viw-7if","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Dashboard + created using cloudformation template","teams":[],"created_at":"2024-09-27T18:25:34.741716Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-27T18:25:34.741716Z","widget_count":60,"widget_count_by_type":{"group":6,"timeseries":17,"toplist":17,"sunburst":1,"hostmap":1,"query_value":18},"dashboard_quality_score":0.0}},{"id":"823-wmx-kyk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-09T21:30:35.101006Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T21:30:36.200544Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"86h-24u-mwc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"vSphere + VM Property Metrics","teams":[],"created_at":"2023-07-18T18:13:38.804575Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-11T19:57:25.366422Z","widget_count":14,"widget_count_by_type":{"query_table":10,"treemap":1,"toplist":3},"dashboard_quality_score":0.0}},{"id":"884-jxj-d7f","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Cloud + Foundry - Infrastructure Overview","teams":[],"created_at":"2024-01-04T11:25:42.564360Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-05T18:05:45.334010Z","widget_count":64,"widget_count_by_type":{"note":8,"timeseries":17,"hostmap":2,"query_value":32,"toplist":3,"query_table":2},"dashboard_quality_score":0.0}},{"id":"88m-nrr-j4c","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_shared_dashboard_returns_OK_response_1720742852 + with Profile Metrics Query","teams":[],"created_at":"2024-07-12T00:07:33.291059Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-07-12T00:07:33.291059Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"89p-5x9-mfp","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T04:09:45.848591Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T04:09:45.848591Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"8mr-z8r-xaq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog + API Clients CI","teams":[],"created_at":"2021-05-14T14:17:22.284588Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-14T14:17:22.284588Z","widget_count":10,"widget_count_by_type":{"manage_status":1,"note":3,"timeseries":3,"toplist":3},"dashboard_quality_score":0.0}},{"id":"8qn-sx4-6py","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-30T18:57:16.337700Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-30T18:57:16.337700Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"8r3-fr7-g8h","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-03T11:06:05.600888Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-03T18:00:35.762592Z","widget_count":3,"widget_count_by_type":{"hostmap":1,"timeseries":1,"toplist":1},"dashboard_quality_score":0.0}},{"id":"8rp-qrc-d72","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Java-Create_a_new_dashboard_with_geomap_widget-1737861024","teams":[],"created_at":"2025-01-26T03:10:24.707218Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-26T03:10:24.707218Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"8v6-29d-g7r","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Timeboard + Dashboard 1769733","teams":[],"created_at":"2024-10-04T18:49:59.050042Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:49:59.050042Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"8vg-n3m-t2r","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog''s + Dashboard Mon, Sep 18, 1:11:53 pm (cloned)","teams":[],"created_at":"2023-10-13T14:28:19.062400Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-13T14:28:19.062400Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"8w6-777-dbc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-03-03T15:12:52.825402Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-03T15:12:52.825402Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"8yn-6s7-pue","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T01:34:46.545176Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T01:34:46.545176Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"9dy-6d6-92u","type":"dashboards-usages","attributes":{"org_id":321813,"title":"KubeVirt + Overview (DEV)","teams":[],"created_at":"2025-01-07T07:17:49.547882Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":10,"viewed_at":"2025-01-07T15:05:57.088000Z","viewer":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":10,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2025-01-07T07:18:50.881143Z","widget_count":48,"widget_count_by_type":{"group":6,"note":1,"query_value":4,"timeseries":31,"query_table":2,"toplist":4},"dashboard_quality_score":0.0}},{"id":"9fh-bsk-dez","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-01T06:21:51.929267Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-01T06:21:51.929267Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"9gp-yca-ewc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-07-03T05:06:40.070179Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-07-03T05:06:40.070179Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"9gw-nvp-fv8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:16:01.442667Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:16:01.442667Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.0}},{"id":"9j7-b7g-fmp","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-07-07T17:12:20.570681Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-07T17:12:21.707927Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"9km-gj8-2rj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Hippolyte''s + Screenboard Fri, Apr 16, 10:20:54 am","teams":[],"created_at":"2021-04-16T08:20:54.758861Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-16T08:21:08.649752Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"9qq-fww-7dt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_event_stream_list_stream_widget_1736259735 + with list_stream widget","teams":[],"created_at":"2025-01-07T14:22:16.267384Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-07T14:22:16.267384Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"9ra-4tp-6x8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-08T22:30:44.267214Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-08T22:30:44.267214Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"9td-t9c-kk7","type":"dashboards-usages","attributes":{"org_id":321813,"title":"VMware + vSphere - Overview","teams":[],"created_at":"2024-01-17T14:04:12.968245Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-17T16:29:07.018541Z","widget_count":22,"widget_count_by_type":{"image":1,"event_stream":1,"toplist":5,"timeseries":6,"note":3,"query_value":5,"check_status":1},"dashboard_quality_score":0.0}},{"id":"9tw-t3j-j2j","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:55:33.097538Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:55:33.097538Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"9wr-ifb-ks3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Dashboard + for testing","teams":[],"created_at":"2024-06-28T14:32:31.419746Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-28T14:32:31.419746Z","widget_count":2,"widget_count_by_type":{"timeseries":1,"sunburst":1},"dashboard_quality_score":0.0}},{"id":"9ze-x5d-4uk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-10-02T10:21:50.272937Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-02T10:21:50.272937Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"asp-qkq-xha","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:47:56.046241Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:53:05.322597Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"b2p-ixy-wbd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-01T02:22:19.767227Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-01T02:22:19.767227Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"b2x-2d8-smj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"vsphere + test","teams":[],"created_at":"2023-11-15T14:29:57.863141Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-17T15:09:09.324288Z","widget_count":10,"widget_count_by_type":{"note":2,"timeseries":8},"dashboard_quality_score":0.0}},{"id":"b6n-8j5-2iz","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Cloud + Foundry - Overview (cloned) (cloned)","teams":[],"created_at":"2023-09-26T09:00:00.247208Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-05T14:50:19.276985Z","widget_count":42,"widget_count_by_type":{"image":1,"note":5,"hostmap":1,"timeseries":9,"query_value":21,"heatmap":2,"toplist":3},"dashboard_quality_score":0.0}},{"id":"b6n-d8r-7em","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OSLO: + splunk LB ","teams":[],"created_at":"2021-05-03T13:03:46.217614Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-03T13:03:46.217614Z","widget_count":12,"widget_count_by_type":{"note":3,"slo":1,"timeseries":8},"dashboard_quality_score":0.0}},{"id":"b9v-vd2-fq2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Etiennes + Dashboard Tue, Mar 18, 3:56:32 pm","teams":[],"created_at":"2025-03-18T14:56:32.569828Z","author":{"id":"21181844","name":"Etienne + Philippe Carriere","handle":"etienne.carriere@datadoghq.com","is_disabled":false},"total_views":1,"viewed_at":"2025-03-18T14:56:32.743000Z","viewer":{"id":"21181844","name":"Etienne + Philippe Carriere","handle":"etienne.carriere@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":1,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2025-03-18T14:57:27.767981Z","widget_count":1,"widget_count_by_type":{"query_value":1},"dashboard_quality_score":0.0}},{"id":"bcy-i9m-yk2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-03-26T09:52:25.783725Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-26T09:52:25.783725Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"bgf-jzg-b7a","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion] (shanel clone)","teams":[],"created_at":"2024-06-06T17:13:17.485112Z","author":{"id":"5620636","name":"Shanel + Huang","handle":"shanel.huang@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-06T17:28:16.789541Z","widget_count":156,"widget_count_by_type":{"group":11,"note":28,"check_status":8,"query_value":59,"query_table":24,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"bgp-uee-rt3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-03-03T15:12:51.418778Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-03T15:12:51.418778Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"bpc-yw5-2ai","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-08-11T05:06:09.509411Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-11T05:06:09.509411Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"bpj-ytu-fpt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-09-12T15:46:41.035816Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-12T15:48:05.847943Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"bru-u6k-rjq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Wisdom","teams":[],"created_at":"2021-12-15T14:39:24.510324Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-12-15T16:54:32.046189Z","widget_count":14,"widget_count_by_type":{"note":2,"timeseries":12},"dashboard_quality_score":0.0}},{"id":"c5z-eix-jck","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_a_toplist_widget_with_stacked_type_and_no_legend_specified_1742496578","teams":[],"created_at":"2025-03-20T18:49:39.343102Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-20T18:49:39.343102Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"cf8-ifs-4vf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Sherzod''s + Dashboard Wed, Dec 20, 10:34:03 am","teams":[],"created_at":"2023-12-20T15:34:03.307486Z","author":{"id":"1725336","name":"Sherzod + Karimov","handle":"sherzod.karimov@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-20T15:34:03.307486Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"cmr-azj-aw6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-13T12:31:40.386452Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-13T12:31:40.386452Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"cw4-irn-n79","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T21:55:02.601652Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T21:55:02.601652Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.0}},{"id":"cx2-6g6-mni","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_timeseries_widget_with_legacy_live_span_time_format_1739376942 + with legacy live span time","teams":[],"created_at":"2025-02-12T16:15:43.276834Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-12T16:15:43.276834Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"cxr-rw5-dfb","type":"dashboards-usages","attributes":{"org_id":321813,"title":"frog''s + Dashboard Wed, Oct 11, 2:07:21 pm","teams":[],"created_at":"2023-10-11T18:07:21.856517Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-11T20:32:00.487697Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"dea-tup-asp","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-01-24T17:57:50.017145Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-24T17:57:50.017145Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"deh-2pa-jv8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Hippolyte''s + Timeboard Wed, Mar 3, 10:57:28 am","teams":[],"created_at":"2021-03-03T09:57:28.304302Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-03-03T09:59:37.861240Z","widget_count":2,"widget_count_by_type":{"timeseries":2},"dashboard_quality_score":0.0}},{"id":"dkd-m4y-nfc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2022-07-29T16:45:28.934525Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-07-29T16:45:31.392137Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"dvv-i5b-zbn","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion] (cloned)","teams":[],"created_at":"2024-01-08T19:23:43.013799Z","author":{"id":"6515857","name":"Candace + Shamieh","handle":"candace.shamieh@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-08T19:42:17.791727Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"timeseries":26,"query_table":21},"dashboard_quality_score":0.0}},{"id":"dw4-m52-byx","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_logs_stream_list_stream_widget_and_storage_parameter_1733350921 + with list_stream widget","teams":[],"created_at":"2024-12-04T22:22:01.830291Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-04T22:22:01.830291Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"dzm-bwc-ean","type":"dashboards-usages","attributes":{"org_id":321813,"title":"ListStream","teams":[],"created_at":"2025-02-25T10:01:52.815694Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-25T10:01:52.815694Z","widget_count":1,"widget_count_by_type":{"list_stream":1},"dashboard_quality_score":0.0}},{"id":"e63-myc-uhh","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Orchestrator + Writer [EP]","teams":[],"created_at":"2022-03-29T12:23:13.061726Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-03-29T12:23:13.061726Z","widget_count":57,"widget_count_by_type":{"group":7,"timeseries":47,"sunburst":3},"dashboard_quality_score":0.0}},{"id":"e7w-ted-kp5","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-07-07T19:50:57.927100Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-07T19:50:58.454696Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"e84-h6q-8ru","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2022-02-03T14:05:45.526436Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-02-03T14:05:47.627593Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"e88-itr-s9c","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardFreeText_import-local-1738715031","teams":[],"created_at":"2025-02-05T00:23:56.182926Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-05T00:23:56.182926Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"e8c-sk3-j9y","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-03-14T02:11:46.227958Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-14T02:11:46.227958Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"eg4-nui-f7r","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-09T16:11:30.640663Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T16:11:31.171270Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"egd-5vg-rac","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-10T14:20:28.977761Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-10T14:20:29.512718Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"ehj-axw-7z7","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-09-12T14:51:18.428821Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-12T15:21:55.042874Z","widget_count":7,"widget_count_by_type":{"scatterplot":1,"timeseries":1,"toplist":1,"group":1,"note":1,"alert_graph":1,"slo":1},"dashboard_quality_score":0.0}},{"id":"eq3-r74-a85","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T02:11:27.014458Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T02:11:27.014458Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"eup-drq-jnt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-03-01T16:07:22.663414Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-01T16:07:23.517492Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"ez7-i7k-kvy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardLogStream-local-1737547858","teams":[],"created_at":"2025-01-22T12:11:02.505903Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-22T12:11:02.505903Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"f47-qxr-zry","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Merging + Tracking","teams":[],"created_at":"2024-08-29T15:44:56.266108Z","author":{"id":"7557262","name":"Anika + Maskara","handle":"anika.maskara@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-29T15:44:56.266108Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"f4a-76m-nbn","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Hippolyte''s + Screenboard Fri, Apr 16, 10:20:54 am","teams":[],"created_at":"2021-04-16T08:27:11.505665Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-16T08:49:08.310691Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"f4q-d9c-2nj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog + API Clients CI","teams":[],"created_at":"2021-05-11T14:44:24.984417Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-11T14:44:24.984417Z","widget_count":10,"widget_count_by_type":{"manage_status":1,"note":3,"timeseries":3,"toplist":3},"dashboard_quality_score":0.0}},{"id":"f59-6bj-c7p","type":"dashboards-usages","attributes":{"org_id":321813,"title":"[corpit] + Iroh License Check Dashboard","teams":[],"created_at":"2023-01-30T11:34:18.574271Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-30T11:34:30.591612Z","widget_count":57,"widget_count_by_type":{"query_value":28,"timeseries":11,"image":12,"list_stream":1,"toplist":2,"note":3},"dashboard_quality_score":0.0}},{"id":"f5q-i7e-ewj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"jeffallen + - pcf billing test","teams":[],"created_at":"2022-05-20T20:30:30.729505Z","author":{"id":"4053606","name":"Datadog + Support","handle":"support-ddintegrationtests321813-3920545","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-06-09T21:01:57.752118Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"fim-fgh-t55","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_run_workflow_widget_1737023351","teams":[],"created_at":"2025-01-16T10:29:11.940056Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-16T10:29:11.940056Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"fny-85t-qat","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Python-Create_a_new_dashboard_with_split_graph_widget-1734399089","teams":[],"created_at":"2024-12-17T01:31:30.428183Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-17T01:31:30.428183Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"fx7-fqc-mvu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"TF + Test Layout Dashboard","teams":[],"created_at":"2023-08-02T16:16:55.510850Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-08-02T16:16:55.510850Z","widget_count":1,"widget_count_by_type":{"alert_graph":1},"dashboard_quality_score":0.0}},{"id":"g5y-dp6-qvu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-03-27T00:04:42.266863Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-27T00:04:42.266863Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"g9c-xme-5c8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Powerpack + Dashboard","teams":[],"created_at":"2023-09-13T20:02:37.796210Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-08T17:33:09.413127Z","widget_count":5,"widget_count_by_type":{"resolved_powerpack":2,"note":3},"dashboard_quality_score":0.0}},{"id":"g9d-nja-s56","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-12-07T15:11:01.265429Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-07T15:27:24.603106Z","widget_count":124,"widget_count_by_type":{"group":7,"note":27,"check_status":6,"query_value":37,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"h35-e77-y7b","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-08-29T19:53:19.113620Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-08-29T19:54:10.579886Z","widget_count":130,"widget_count_by_type":{"group":7,"note":29,"check_status":7,"query_value":41,"query_table":20,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"h39-2vx-x5t","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}} + fooo","teams":[],"created_at":"2024-09-23T17:13:29.658664Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-23T17:13:29.658664Z","widget_count":1,"widget_count_by_type":{"query_table":1},"dashboard_quality_score":0.0}},{"id":"h7j-v4q-aeu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-23T13:34:48.246025Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-23T13:34:49.033289Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"h8e-vwj-uy8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2022-07-29T16:48:46.701592Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-07-29T16:48:49.599967Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"hiu-7x9-6yd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_dashboard_with_tags_returns_OK_response_1737087532 + with Profile Metrics Query","teams":[],"created_at":"2025-01-17T04:18:53.051598Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-17T04:18:53.051598Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"hn6-a2w-7fv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Restore_deleted_dashboards_returns_No_Content_response_1686850305 + with Profile Metrics Query","teams":[],"created_at":"2023-06-15T17:31:45.390220Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-06-15T17:31:45.390220Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"hsz-pvn-gie","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2021-01-21T11:01:38.594211Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-01-21T11:01:39.149109Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"hur-yk4-4ey","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-12-08T20:49:20.928521Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-08T21:46:33.784247Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"hyq-he9-mmv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2022-11-16T14:53:07.236859Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-11-16T14:53:08.023820Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"i39-nvs-35n","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-02T05:06:26.825469Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-02T05:06:26.825469Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"i6q-quy-cn2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:23:19.837734Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:34:00.011483Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.0}},{"id":"ia3-mtz-d4e","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Timeboard","teams":[],"created_at":"2020-12-09T04:18:00.388550Z","author":null,"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2020-12-09T04:18:00.388550Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"iic-aki-a5y","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Log Stream Widget Dashboard","teams":[],"created_at":"2022-05-22T00:22:49.406365Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-05-22T00:22:49.406365Z","widget_count":2,"widget_count_by_type":{"log_stream":2},"dashboard_quality_score":0.0}},{"id":"iqb-wzk-7ab","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Create_a_new_dashboard_with_powerpack_widget-1745381568 + with powerpack widget","teams":[],"created_at":"2025-04-23T04:12:49.950553Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-04-23T04:12:49.950553Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"it8-zmc-esc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-03-01T16:10:54.233168Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-01T16:10:55.754868Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"ivx-9cb-hq6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-03-01T15:32:14.718423Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-01T15:32:15.878992Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"j6w-fex-8fn","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2021-04-15T16:42:07.677880Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-15T16:42:08.423227Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"j82-fmx-4nd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-23T10:21:50.450445Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-23T10:21:50.450445Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"jad-5wi-r7k","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-06T20:25:05.406527Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T20:25:05.406527Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"jcd-pci-xxw","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog''s + 111222333, Sep 18, 1:11:53 pm (cloned)","teams":[],"created_at":"2023-10-13T15:06:17.052642Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-13T15:10:51.018368Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"je2-bwi-ces","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OSLO: + systemid LB on c2c","teams":[],"created_at":"2021-04-26T09:58:20.982778Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-26T09:58:20.982778Z","widget_count":12,"widget_count_by_type":{"slo":2,"timeseries":8,"note":2},"dashboard_quality_score":0.0}},{"id":"jjp-ch8-h4j","type":"dashboards-usages","attributes":{"org_id":321813,"title":"VMware + vSphere - Overview (cloned)","teams":[],"created_at":"2024-05-20T15:14:34.623626Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-20T15:14:34.623626Z","widget_count":22,"widget_count_by_type":{"image":1,"list_stream":1,"toplist":5,"timeseries":6,"note":3,"query_value":5,"check_status":1},"dashboard_quality_score":0.0}},{"id":"jzw-2ff-srb","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Log Stream Widget Dashboard","teams":[],"created_at":"2022-04-14T13:40:43.341283Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-04-14T13:40:43.341283Z","widget_count":2,"widget_count_by_type":{"log_stream":2},"dashboard_quality_score":0.0}},{"id":"k64-a3e-t6p","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-03-15T13:39:50.094390Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-15T13:39:51.376388Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"k7b-e3u-xry","type":"dashboards-usages","attributes":{"org_id":321813,"title":"ESXi + Overview","teams":[],"created_at":"2024-05-02T18:54:09.468977Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-02T18:54:09.468977Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"kf4-nik-f6k","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-08-30T18:19:33.856132Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-30T18:19:33.856132Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"kr8-sth-skv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2022-07-13T16:47:06.137747Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-07-13T16:47:09.905432Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"kuj-pxv-rqh","type":"dashboards-usages","attributes":{"org_id":321813,"title":"MM + RBAC Dashboard [0.11]","teams":[],"created_at":"2021-04-23T16:04:56.337388Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-23T16:04:56.337388Z","widget_count":1,"widget_count_by_type":{"note":1},"dashboard_quality_score":0.0}},{"id":"m3a-qxx-d6r","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Timeboard + Dashboard 1769733","teams":[],"created_at":"2024-10-04T18:54:20.931820Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:54:20.931820Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"mjt-uva-tcy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-24T08:09:00.562026Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-24T08:09:01.756390Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"mmd-vfp-cq4","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Python-Create_a_new_dashboard_with_slo_widget-1738632660","teams":[],"created_at":"2025-02-04T01:31:02.435234Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-04T01:31:02.435234Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"mv6-3rt-tc2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-03-26T09:52:26.162275Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-26T09:52:26.162275Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"mwr-ife-dth","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{ + unique }} with list_stream widget","teams":[],"created_at":"2023-03-02T20:48:56.368879Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-02T20:48:56.368879Z","widget_count":1,"widget_count_by_type":{"list_stream":1},"dashboard_quality_score":0.0}},{"id":"n4f-d26-7fs","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-09-12T15:28:08.943107Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-12T15:28:08.943107Z","widget_count":7,"widget_count_by_type":{"scatterplot":1,"timeseries":1,"toplist":1,"group":1,"note":1,"alert_graph":1,"slo":1},"dashboard_quality_score":0.0}},{"id":"n5x-wj3-tt8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2022-11-16T14:55:32.325509Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-11-16T14:55:33.604225Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"n86-f3u-tw7","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-09-12T15:21:09.903112Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-12T15:21:55.038682Z","widget_count":7,"widget_count_by_type":{"scatterplot":1,"timeseries":1,"toplist":1,"group":1,"note":1,"alert_graph":1,"slo":1},"dashboard_quality_score":0.0}},{"id":"nb6-uk2-r2p","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Dashboard + created using cloudformation template","teams":[],"created_at":"2024-09-27T18:21:01.500799Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-27T18:21:01.500799Z","widget_count":60,"widget_count_by_type":{"group":6,"timeseries":17,"toplist":17,"sunburst":1,"hostmap":1,"query_value":18},"dashboard_quality_score":0.0}},{"id":"ncv-h4k-4it","type":"dashboards-usages","attributes":{"org_id":321813,"title":"ESXi + Overview","teams":[],"created_at":"2024-05-02T19:01:10.511984Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-24T15:00:11.787094Z","widget_count":30,"widget_count_by_type":{"group":6,"note":3,"query_value":2,"query_table":5,"toplist":4,"timeseries":10},"dashboard_quality_score":0.0}},{"id":"neh-3bi-sgi","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-06-01T00:04:03.352407Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-06-01T00:04:03.352407Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"ni6-8fj-4qa","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-09T01:31:58.083575Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-09T01:31:58.083575Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"ntb-zhs-zc6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OSLO: + systemid LB on starbug","teams":[],"created_at":"2021-04-26T09:59:02.371956Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-26T09:59:02.371956Z","widget_count":12,"widget_count_by_type":{"slo":2,"timeseries":8,"note":2},"dashboard_quality_score":0.0}},{"id":"ntg-i6e-bg3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-02-29T22:03:38.377385Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-02-29T22:03:38.377385Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"p3k-7zr-wpr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenTelemetry + Collector Metrics Dashboard (with equiv_otel)","teams":[],"created_at":"2025-04-10T13:39:12.520913Z","author":{"id":"5620636","name":"Shanel + Huang","handle":"shanel.huang@datadoghq.com","is_disabled":false},"total_views":2,"viewed_at":"2025-04-10T13:39:22.716000Z","viewer":{"id":"5620636","name":"Shanel + Huang","handle":"shanel.huang@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":2,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2025-04-10T13:39:21.857795Z","widget_count":75,"widget_count_by_type":{"group":8,"note":10,"timeseries":50,"query_table":6,"query_value":1},"dashboard_quality_score":0.0}},{"id":"p3v-g5w-f7h","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-06T20:25:05.998637Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T20:25:05.998637Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"p64-8q6-as6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-09T01:44:16.923835Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-09T02:23:31.421819Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"p6f-bt4-6mx","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-08-30T18:19:34.472771Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-30T18:19:34.472771Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"p8w-deq-k6x","type":"dashboards-usages","attributes":{"org_id":321813,"title":"CRP-176","teams":[],"created_at":"2022-08-24T14:10:40.232901Z","author":{"id":"4326960","name":"Datadog + Support","handle":"support-ddintegrationtests321813-4240449","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-08-24T14:10:47.209726Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"pj7-aps-g42","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-10-04T18:54:21.314190Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:54:21.314190Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"pra-83a-gm3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Fly.io + Overview ","teams":[],"created_at":"2024-07-17T18:16:25.227238Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-07-30T22:03:35.055528Z","widget_count":33,"widget_count_by_type":{"group":6,"note":3,"query_value":2,"check_status":1,"toplist":2,"query_table":5,"hostmap":1,"treemap":1,"timeseries":12},"dashboard_quality_score":0.0}},{"id":"pt8-4pn-jw6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-03-01T15:29:54.911262Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-01T15:29:55.700607Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"pu8-4pr-9v2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2021-01-21T14:01:08.820798Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-01-21T14:01:09.882536Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"pv5-p65-yis","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-12-11T18:22:19.897944Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-11T18:22:19.897944Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"pzz-ksp-bip","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Scaphandre + Overview","teams":[],"created_at":"2024-05-16T19:33:20.983978Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-16T19:33:20.983978Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"q5j-nti-fv6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"For + dashboard list tests - DO NOT DELETE","teams":[],"created_at":"2020-02-11T13:48:52.362473Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2020-02-11T13:49:16.919666Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"q5p-k9m-btm","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-07-22T18:22:19.757565Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-07-22T18:22:19.757565Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"q5z-8cr-k7v","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Run + workflow terraform dashboard","teams":[],"created_at":"2023-02-15T20:13:30.498477Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-02-15T20:13:30.498477Z","widget_count":1,"widget_count_by_type":{"run_workflow":1},"dashboard_quality_score":0.0}},{"id":"q9c-n75-4rq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-12-13T22:22:19.842417Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-13T22:22:19.842417Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"qc7-v9m-xqv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2023-12-08T19:58:04.706734Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-08T23:55:47.131235Z","widget_count":2,"widget_count_by_type":{"resolved_powerpack":1,"note":1},"dashboard_quality_score":0.0}},{"id":"qcr-t4m-v3k","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Kepler + Overview ","teams":[],"created_at":"2024-05-23T18:18:30.546120Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-23T19:17:16.197535Z","widget_count":8,"widget_count_by_type":{"group":2,"note":2,"query_table":1,"query_value":2,"sunburst":1},"dashboard_quality_score":0.0}},{"id":"qd5-u4z-i8z","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-12-27T04:11:24.143503Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-27T04:11:24.143503Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"qhf-em6-2i3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-23T13:37:35.644378Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-23T13:37:36.923776Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"qi6-q9m-tpv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-08T22:31:11.506879Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-08T22:31:11.506879Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"qmz-925-umx","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-10T14:22:53.864848Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-10T14:22:54.795680Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"qn2-but-2r8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2021-03-01T08:29:54.466356Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-03-01T08:29:54.466356Z","widget_count":2,"widget_count_by_type":{"event_stream":1,"image":1},"dashboard_quality_score":0.0}},{"id":"qpy-d9b-2bv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2021-01-06T10:48:02.242118Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-01-06T10:48:02.242118Z","widget_count":1,"widget_count_by_type":{"alert_graph":1},"dashboard_quality_score":0.0}},{"id":"qup-ydj-93n","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Create_a_new_dashboard_with_manage_status_widget_and_show_priority_parameter-1738728686","teams":[],"created_at":"2025-02-05T04:11:26.503360Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-05T04:11:26.503360Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"qxx-jfk-v42","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-24T15:14:41.219203Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-24T15:14:41.219203Z","widget_count":1,"widget_count_by_type":{"distribution":1},"dashboard_quality_score":0.0}},{"id":"rcn-b3p-kkk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2022-03-04T17:35:14.272142Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-03-04T17:35:16.152659Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"rj7-qir-ztd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-11-24T04:11:51.944178Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-11-24T04:11:51.944178Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"rm8-k6t-8m4","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-10-04T18:49:59.470703Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:49:59.470703Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"rmu-unn-gcq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2022-07-13T16:50:32.341526Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-07-13T16:50:35.610164Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"rn6-u8f-7yk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_sunburst_widget_and_metrics_data_1734531717","teams":[],"created_at":"2024-12-18T14:21:57.983817Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-18T14:21:57.983817Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"rrq-mav-byg","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:16:29.780792Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:18:38.540849Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.0}},{"id":"rsw-epy-tv6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Bruce + test","teams":[],"created_at":"2024-10-10T20:26:42.166692Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-11T20:04:05.520446Z","widget_count":1,"widget_count_by_type":{"distribution":1},"dashboard_quality_score":0.0}},{"id":"rt5-yit-kkz","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Octopus + Deploy Overview","teams":[],"created_at":"2024-12-02T17:57:23.397063Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":1,"viewed_at":"2025-01-03T18:22:09.527000Z","viewer":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":1,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2024-12-11T14:54:48.862172Z","widget_count":7,"widget_count_by_type":{"query_value":1,"timeseries":4,"query_table":2},"dashboard_quality_score":0.0}},{"id":"rvp-h5j-zhk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-08T22:25:11.372571Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-08T22:26:34.329161Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"rvw-uxs-a32","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-03T19:56:05.033591Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T21:38:18.943692Z","widget_count":3,"widget_count_by_type":{"toplist":3},"dashboard_quality_score":0.0}},{"id":"stu-5eb-fje","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-02-24T20:37:44.551755Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-02-24T20:37:45.473803Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"su8-kbt-qqk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"frog''s + Dashboard Mon, Oct 23, 12:43:30 pm","teams":[],"created_at":"2023-10-23T16:43:31.132952Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-23T16:43:31.132952Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"suf-n3q-967","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-05-03T02:13:09.132180Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-03T02:13:09.132180Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"sv6-maw-zx9","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-11-28T01:44:57.326488Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-11-28T01:44:57.326488Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"t5a-y6c-yr8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-12-27T04:11:24.943377Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-27T04:11:24.943377Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"t66-nfh-e25","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2022-09-12T19:54:19.969611Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-09-12T19:57:12.275290Z","widget_count":1,"widget_count_by_type":{"topology_map":1},"dashboard_quality_score":0.0}},{"id":"t7i-u49-9p6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Noueman''s + Dashboard Thu, Nov 9, 5:03:34 pm","teams":[],"created_at":"2023-11-09T16:03:34.595627Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-09T16:03:34.595627Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"taf-afu-akt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-23T07:59:08.905416Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-23T07:59:09.903936Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"tgf-iq6-ujs","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-08-30T18:22:19.797309Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-30T18:22:19.797309Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"tkn-wg4-sr3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_returns_OK_response_1718648515 + with Profile Metrics Query","teams":[],"created_at":"2024-06-17T18:21:55.846134Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-17T18:21:55.846134Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"tpx-f7m-z57","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{ + unique }}","teams":[],"created_at":"2023-09-12T19:44:24.710209Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-09-12T19:44:24.710209Z","widget_count":1,"widget_count_by_type":{"heatmap":1},"dashboard_quality_score":0.0}},{"id":"tx6-46v-wzw","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-19T03:11:04.352440Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-19T03:11:04.352440Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"u4x-txd-uf6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-08T22:26:48.362206Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-08T22:26:48.362206Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"uc8-ykp-3c7","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Fly.io + Overview (cloned)","teams":[],"created_at":"2024-08-13T17:58:15.161434Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-14T21:07:55.940923Z","widget_count":36,"widget_count_by_type":{"group":6,"note":3,"query_value":2,"check_status":1,"toplist":2,"query_table":4,"hostmap":1,"treemap":1,"timeseries":16},"dashboard_quality_score":0.0}},{"id":"ug4-a8z-jva","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-07T16:37:55.238444Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-07T16:37:55.238444Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"ug6-j5q-8mm","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-09T16:13:44.101907Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T16:13:45.105031Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"unw-hwk-68w","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T02:31:03.437671Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T02:31:03.437671Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"uq2-urd-dzu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Scaphandre + Overview ","teams":[],"created_at":"2024-05-16T19:33:47.986664Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-23T19:50:58.459791Z","widget_count":24,"widget_count_by_type":{"group":5,"note":4,"query_value":5,"timeseries":8,"toplist":1,"query_table":1},"dashboard_quality_score":0.0}},{"id":"uqe-kqz-p6j","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2022-11-17T18:42:10.349402Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-11-17T18:42:11.457516Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"uu8-cxu-zea","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Beacon + Service","teams":[],"created_at":"2023-10-10T18:45:29.276049Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-10T18:45:29.276049Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"uw4-48e-88t","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-30T18:59:31.861704Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-30T18:59:31.861704Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"ux5-fxw-5cf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"frog''s + Screenboard Thu, Jan 26, 9:35:17 am","teams":[],"created_at":"2023-01-26T08:35:17.499834Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-26T08:35:36.597872Z","widget_count":1,"widget_count_by_type":{"run_workflow":1},"dashboard_quality_score":0.0}},{"id":"uy6-4fe-nqd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:07:21.855524Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:08:42.636698Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.0}},{"id":"v37-yyy-9ym","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-03-30T02:06:59.053289Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-03-30T02:06:59.053289Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"v3w-u4i-tww","type":"dashboards-usages","attributes":{"org_id":321813,"title":"TF + Test Layout Dashboard","teams":[],"created_at":"2023-08-02T14:14:41.723635Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-08-02T14:14:41.723635Z","widget_count":1,"widget_count_by_type":{"alert_graph":1},"dashboard_quality_score":0.0}},{"id":"v74-xyc-vd4","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-09T21:28:00.315443Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T21:28:01.033524Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"vdt-sff-xrf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"kevinzou_sandbox","teams":[],"created_at":"2023-10-10T18:20:08.538567Z","author":{"id":"4348810","name":"Kevin + Zou","handle":"kevin.zou@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-01T15:26:52.470946Z","widget_count":4,"widget_count_by_type":{"timeseries":1,"resolved_powerpack":1,"note":2},"dashboard_quality_score":0.0}},{"id":"vfn-gvr-cxk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-25T18:21:50.656210Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-25T18:21:50.656210Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"vg2-fg8-7vh","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog-api-spec + Automerging","teams":[],"created_at":"2024-09-23T16:27:24.646048Z","author":{"id":"7359812","name":"Jack + Edmonds","handle":"jack.edmonds@datadoghq.com","is_disabled":false},"total_views":1,"viewed_at":"2025-01-14T22:53:10.616000Z","viewer":{"id":"21011231","name":"Datadog + Support","handle":"support-ddintegrationtests321813-jahanzeb.hassan@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":1,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2024-09-24T21:27:33.180160Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"vgn-f2f-zr3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion] (cloned)","teams":[],"created_at":"2023-11-21T20:19:09.753235Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-21T20:19:09.753235Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"vs6-9qu-vur","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-03-15T13:37:22.574326Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-15T13:37:23.238265Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"vvn-nwe-23z","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Log Stream Widget Dashboard","teams":[],"created_at":"2024-03-01T00:18:38.736689Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-03-01T00:18:38.736689Z","widget_count":2,"widget_count_by_type":{"log_stream":2},"dashboard_quality_score":0.0}},{"id":"wce-cqf-nhh","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Log Stream Widget Dashboard","teams":[],"created_at":"2022-05-22T00:22:51.925033Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-05-22T00:22:51.925033Z","widget_count":2,"widget_count_by_type":{"log_stream":2},"dashboard_quality_score":0.0}},{"id":"wcp-6ik-3wf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-12-29T01:44:20.834836Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-29T01:44:20.834836Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"wrg-gv3-3hf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Delete_custom_timeboard_dashboard_from_an_existing_dashboard_list_returns_OK_response_1720880516 + with Profile Metrics Query","teams":[],"created_at":"2024-07-13T14:21:57.467620Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-07-13T14:21:57.467620Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"wsr-yee-qm5","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-30T18:59:31.598171Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-30T18:59:31.598171Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"x45-5fs-594","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-03-15T13:43:02.051856Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-15T13:43:02.798289Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"x77-xd6-a6v","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-10-23T19:59:39.468599Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-05T20:38:35.743635Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"xc8-h6m-gyt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2021-04-13T11:50:10.192480Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-13T11:50:38.881933Z","widget_count":3,"widget_count_by_type":{"slo":3},"dashboard_quality_score":0.0}},{"id":"xdp-wbm-5rj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T21:50:56.241695Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T21:50:56.241695Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"xfe-kap-e5y","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-06-21T13:59:15.683388Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-06-21T13:59:15.683388Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"xgg-369-k9w","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-05-13T01:28:36.563248Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-13T01:28:36.563248Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"xkq-2cm-fed","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-30T18:57:16.687093Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-30T18:57:16.687093Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"xue-5t2-hzf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Log Stream Widget Dashboard","teams":[],"created_at":"2021-01-06T10:40:07.910997Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-01-06T10:40:07.910997Z","widget_count":1,"widget_count_by_type":{"log_stream":1},"dashboard_quality_score":0.0}},{"id":"xz6-mat-r9c","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_check_status_widget_1736101311","teams":[],"created_at":"2025-01-05T18:21:52.120117Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-05T18:21:52.120117Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"y3t-eqa-763","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-08-14T06:21:50.287887Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-14T06:21:50.287887Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"y6m-dsb-3uq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2022-11-17T18:39:28.101260Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-11-17T18:39:28.748416Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"ya2-tzk-zyw","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-07-07T19:53:37.805020Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-07T19:53:38.731282Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"ydt-8ah-kfv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Noueman''s + Dashboard Thu, May 9, 11:49:33 pm","teams":[],"created_at":"2024-05-09T21:49:33.558354Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-09T21:49:33.558354Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"yes-s6q-j58","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2022-02-02T15:50:14.521415Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-02-02T15:50:16.741690Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"yj9-r52-is2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-24T08:06:24.291924Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-24T08:06:25.020191Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"ynt-7re-g5t","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Dashboard + with Powerpack","teams":[],"created_at":"2023-09-13T20:04:26.921191Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-09-13T20:04:26.921191Z","widget_count":3,"widget_count_by_type":{"resolved_powerpack":1,"note":2},"dashboard_quality_score":0.0}},{"id":"yq7-7uz-gr9","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-10-04T18:40:12.197797Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:40:12.197797Z","widget_count":19,"widget_count_by_type":{"alert_graph":2,"alert_value":2,"change":1,"distribution":1,"check_status":1,"heatmap":1,"hostmap":1,"note":2,"query_value":1,"query_table":1,"scatterplot":1,"servicemap":1,"timeseries":1,"toplist":1,"group":1,"slo":1},"dashboard_quality_score":0.0}},{"id":"ytd-nd3-bxu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-19T01:32:56.908916Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-19T01:32:56.908916Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"ywh-67w-ngi","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:01:42.426084Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:02:16.920717Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.0}},{"id":"zfd-a24-thy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"PCF + Cloud Controller","teams":[],"created_at":"2022-04-15T08:57:00.852815Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-04-21T09:55:03.424538Z","widget_count":8,"widget_count_by_type":{"group":2,"timeseries":6},"dashboard_quality_score":0.0}},{"id":"zsp-mfz-rnt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"updated + api timeboard","teams":[],"created_at":"2023-01-23T07:59:06.665310Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-23T07:59:07.322412Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"zst-bcm-gq6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2023-12-08T08:08:54.613783Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":1,"viewed_at":"2025-01-14T22:53:12.978000Z","viewer":{"id":"21011231","name":"Datadog + Support","handle":"support-ddintegrationtests321813-jahanzeb.hassan@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":1,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2025-01-14T22:53:33.484565Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"zy8-8tg-sxr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardRbac_createRbac-local-1734697397","teams":[],"created_at":"2024-12-20T12:23:21.850235Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-20T12:23:21.850235Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}}],"meta":{"page":{"type":"offset_limit","offset":0,"first_offset":0,"limit":250,"prev_offset":null,"next_offset":null,"last_offset":0,"total":250}},"links":{"self":"https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bedited_before%5D=2025-04-26T00%3A00%3A00Z&filter%5Bviewed_before%5D=2025-04-26T00%3A00%3A00Z","first":"https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bedited_before%5D=2025-04-26T00%3A00%3A00Z&filter%5Bviewed_before%5D=2025-04-26T00%3A00%3A00Z&page[offset]=0&page[limit]=250","last":"https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bedited_before%5D=2025-04-26T00%3A00%3A00Z&filter%5Bviewed_before%5D=2025-04-26T00%3A00%3A00Z&page[offset]=0&page[limit]=250"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-edited-before-filter-returns-OK-response.frozen b/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-edited-before-filter-returns-OK-response.frozen new file mode 100644 index 000000000000..ce6d965d9f30 --- /dev/null +++ b/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-edited-before-filter-returns-OK-response.frozen @@ -0,0 +1 @@ +2026-06-01T18:14:52.307Z \ No newline at end of file diff --git a/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-edited-before-filter-returns-OK-response.yml b/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-edited-before-filter-returns-OK-response.yml new file mode 100644 index 000000000000..09f42350a080 --- /dev/null +++ b/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-edited-before-filter-returns-OK-response.yml @@ -0,0 +1,297 @@ +http_interactions: +- recorded_at: Mon, 01 Jun 2026 18:14:52 GMT + request: + body: null + headers: + Accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bedited_before%5D=2025-04-26T00%3A00%3A00Z + response: + body: + encoding: UTF-8 + string: '{"data":[{"id":"284-wiv-iqk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-10-21T21:02:03.739689Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-21T21:02:03.739689Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"29x-55z-rt2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-09T22:20:08.019993Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T22:20:09.093470Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"2be-q62-ep5","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-06-23T00:04:08.199090Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-23T00:04:08.199090Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"2gn-qtd-zd9","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:54:10.920756Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:54:57.107615Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"2m8-ht3-7kf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T02:11:27.660825Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T02:11:27.660825Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"2n8-amr-8ws","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_hostmap_widget_1738642608","teams":[],"created_at":"2025-02-04T04:16:49.306022Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-04T04:16:49.306022Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"2qn-4hs-6nz","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-06-06T18:28:02.296323Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-06T18:28:02.296323Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"2rd-dc2-4qz","type":"dashboards-usages","attributes":{"org_id":321813,"title":"delete-me","teams":[],"created_at":"2023-04-04T07:20:20.175651Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-04-04T07:25:00.141124Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"2t6-ira-9sr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-26T16:19:46.726552Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-26T16:19:46.726552Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"3bd-yi5-t9f","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Cloud + Foundry - Overview (cloned)","teams":[],"created_at":"2024-01-24T20:36:07.585183Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-24T20:36:07.585183Z","widget_count":42,"widget_count_by_type":{"query_value":21,"toplist":3,"note":5,"timeseries":9,"image":1,"hostmap":1,"heatmap":2},"dashboard_quality_score":0.0}},{"id":"3gp-ihg-25a","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:55:49.231714Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:55:49.231714Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"3hx-aas-pkd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-09T01:07:47.665899Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-09T01:11:49.409229Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"3ia-t26-3ny","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Powerpack + Test","teams":[],"created_at":"2023-09-12T17:24:07.448153Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":2,"viewed_at":"2026-05-22T08:18:36.471000Z","viewer":{"id":"68143611","name":"Enrico + Donnici","handle":"enrico.donnici@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":2,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2023-09-12T17:24:07.448153Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.24117932132193265}},{"id":"3jh-dek-qps","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-12-08T21:59:54.884830Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-08T22:00:29.988353Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"3jt-5cb-icy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-02-24T20:40:32.063650Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-02-24T20:40:33.482665Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"3kr-vna-uug","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:56:42.073944Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:56:42.073944Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"3y3-3x5-kq8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-11-09T16:03:35.113528Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-09T16:03:47.912796Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"43b-kw6-vqr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Cloud + Foundry - Overview (cloned)","teams":[],"created_at":"2023-09-20T09:37:10.513590Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-06T14:44:10.522900Z","widget_count":42,"widget_count_by_type":{"query_value":21,"toplist":3,"note":5,"timeseries":10,"image":1,"hostmap":1,"heatmap":1},"dashboard_quality_score":0.0}},{"id":"4j8-nbn-4gi","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-09-28T01:37:23.346984Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-09-28T01:37:23.346984Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"4n7-s4g-dqv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"For + dashboard list tests - DO NOT DELETE","teams":[],"created_at":"2020-02-11T13:49:29.555334Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2020-04-08T17:54:25.574039Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"4ud-du4-pi3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog + API Clients CI","teams":[],"created_at":"2021-05-17T08:32:02.449350Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-17T08:32:02.449350Z","widget_count":10,"widget_count_by_type":{"manage_status":1,"note":3,"timeseries":3,"toplist":3},"dashboard_quality_score":0.0}},{"id":"4wp-g9w-rqp","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2021-01-06T16:34:52.946050Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-01-06T16:34:52.946050Z","widget_count":1,"widget_count_by_type":{"change":1},"dashboard_quality_score":0.0}},{"id":"4wy-ajm-bvu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-10-04T18:35:18.554744Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:35:18.554744Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"4z7-iip-zrt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-07-07T17:09:12.214893Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-07T17:09:12.874904Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"59f-bun-r3c","type":"dashboards-usages","attributes":{"org_id":321813,"title":"VMware + vSphere - Overview","teams":[],"created_at":"2024-01-17T15:17:19.954644Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-17T15:17:33.545302Z","widget_count":22,"widget_count_by_type":{"image":1,"list_stream":1,"toplist":5,"timeseries":6,"note":3,"query_value":5,"check_status":1},"dashboard_quality_score":0.0}},{"id":"5cj-8j7-qpy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Octopus + Deploy Overview","teams":[],"created_at":"2024-12-11T20:48:25.007210Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":27,"viewed_at":"2025-01-16T20:42:51.598000Z","viewer":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":27,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2025-01-16T20:12:02.010750Z","widget_count":31,"widget_count_by_type":{"group":6,"note":5,"query_value":8,"list_stream":2,"toplist":2,"timeseries":1,"query_table":7},"dashboard_quality_score":0.0}},{"id":"5i4-3c5-qby","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Sherzod''s + Dashboard Wed, Dec 20, 1:37:28 pm","teams":[],"created_at":"2023-12-20T18:37:28.853122Z","author":{"id":"1725336","name":"Sherzod + Karimov","handle":"sherzod.karimov@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-20T18:37:28.853122Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"5mr-xms-2qa","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-09T22:16:56.913567Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T22:16:57.568474Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"5qz-2i3-6cq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"TF + Test Free Layout Dashboard","teams":[],"created_at":"2023-08-02T14:14:41.648472Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-08-02T14:14:41.648472Z","widget_count":1,"widget_count_by_type":{"event_stream":1},"dashboard_quality_score":0.0}},{"id":"5tp-tr6-93q","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-06-21T13:59:15.028164Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-06-21T13:59:15.028164Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"63v-49e-a7d","type":"dashboards-usages","attributes":{"org_id":321813,"title":"sarah + test","teams":[],"created_at":"2023-05-15T18:12:47.853642Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-05-15T18:25:28.895732Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"679-8up-bf2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Log Stream Widget Dashboard","teams":[],"created_at":"2022-04-14T13:40:43.116109Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-04-14T13:40:43.116109Z","widget_count":2,"widget_count_by_type":{"log_stream":2},"dashboard_quality_score":0.0}},{"id":"67i-fs9-rzn","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Teleport + Overview","teams":[],"created_at":"2024-04-03T15:04:15.262442Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":1,"viewed_at":"2025-11-01T18:56:10.280000Z","viewer":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":1,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2024-06-04T14:49:15.193580Z","widget_count":44,"widget_count_by_type":{"group":8,"note":3,"query_value":8,"timeseries":25},"dashboard_quality_score":0.0}},{"id":"6by-h9d-gui","type":"dashboards-usages","attributes":{"org_id":321813,"title":"MM + RBAC Dashboard","teams":[],"created_at":"2021-04-23T16:14:13.820995Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-23T16:14:13.820995Z","widget_count":1,"widget_count_by_type":{"note":1},"dashboard_quality_score":0.0}},{"id":"6ez-pq7-4zk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Create_a_shared_dashboard_returns_OK_response-1689999025 + with Profile Metrics Query","teams":[],"created_at":"2023-07-22T04:10:25.713775Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-22T04:10:25.713775Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"6md-r2g-kxc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-06-17T03:08:25.445281Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-06-17T03:08:25.445281Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"6pm-2ad-2v8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-03-15T13:45:39.004786Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-15T13:45:40.299693Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"6qu-cxf-9jy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-09-13T12:31:40.237970Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-13T12:31:40.237970Z","widget_count":7,"widget_count_by_type":{"scatterplot":1,"timeseries":1,"toplist":1,"group":1,"note":1,"alert_graph":1,"slo":1},"dashboard_quality_score":0.0}},{"id":"74v-m9u-yzs","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Event Timeline Widget Dashboard","teams":[],"created_at":"2020-12-10T04:21:12.270024Z","author":null,"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2020-12-10T04:21:12.270024Z","widget_count":1,"widget_count_by_type":{"event_timeline":1},"dashboard_quality_score":0.0}},{"id":"76m-n9x-wd4","type":"dashboards-usages","attributes":{"org_id":321813,"title":"DL + FF TF","teams":[],"created_at":"2021-02-02T13:54:05.514952Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-02-02T13:54:05.514952Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"795-wur-2am","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog + API Clients CI","teams":[],"created_at":"2021-05-14T14:17:13.784143Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-14T14:17:13.784143Z","widget_count":10,"widget_count_by_type":{"manage_status":1,"note":3,"timeseries":3,"toplist":3},"dashboard_quality_score":0.0}},{"id":"7b3-yvp-mmq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"TF + Test Free Layout Dashboard","teams":[],"created_at":"2023-08-02T16:16:55.297530Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-08-02T16:16:55.297530Z","widget_count":1,"widget_count_by_type":{"event_stream":1},"dashboard_quality_score":0.0}},{"id":"7dp-46c-6tr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-07T16:37:56.369573Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-07T16:37:56.369573Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"7q2-h97-j2m","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_items_of_a_Dashboard_List_returns_OK_response_1731709308 + with Profile Metrics Query","teams":[],"created_at":"2024-11-15T22:21:49.262821Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-11-15T22:21:49.262821Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"7ym-viw-7if","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Dashboard + created using cloudformation template","teams":[],"created_at":"2024-09-27T18:25:34.741716Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-27T18:25:34.741716Z","widget_count":60,"widget_count_by_type":{"group":6,"timeseries":17,"toplist":17,"sunburst":1,"hostmap":1,"query_value":18},"dashboard_quality_score":0.0}},{"id":"823-wmx-kyk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-09T21:30:35.101006Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T21:30:36.200544Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"86h-24u-mwc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"vSphere + VM Property Metrics","teams":[],"created_at":"2023-07-18T18:13:38.804575Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-11T19:57:25.366422Z","widget_count":14,"widget_count_by_type":{"query_table":10,"treemap":1,"toplist":3},"dashboard_quality_score":0.0}},{"id":"884-jxj-d7f","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Cloud + Foundry - Infrastructure Overview","teams":[],"created_at":"2024-01-04T11:25:42.564360Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-05T18:05:45.334010Z","widget_count":64,"widget_count_by_type":{"note":8,"timeseries":17,"hostmap":2,"query_value":32,"toplist":3,"query_table":2},"dashboard_quality_score":0.0}},{"id":"88m-nrr-j4c","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_shared_dashboard_returns_OK_response_1720742852 + with Profile Metrics Query","teams":[],"created_at":"2024-07-12T00:07:33.291059Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-07-12T00:07:33.291059Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"89p-5x9-mfp","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T04:09:45.848591Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T04:09:45.848591Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"8mr-z8r-xaq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog + API Clients CI","teams":[],"created_at":"2021-05-14T14:17:22.284588Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-14T14:17:22.284588Z","widget_count":10,"widget_count_by_type":{"manage_status":1,"note":3,"timeseries":3,"toplist":3},"dashboard_quality_score":0.0}},{"id":"8qn-sx4-6py","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-30T18:57:16.337700Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-30T18:57:16.337700Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"8r3-fr7-g8h","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-03T11:06:05.600888Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-03T18:00:35.762592Z","widget_count":3,"widget_count_by_type":{"hostmap":1,"timeseries":1,"toplist":1},"dashboard_quality_score":0.0}},{"id":"8rp-qrc-d72","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Java-Create_a_new_dashboard_with_geomap_widget-1737861024","teams":[],"created_at":"2025-01-26T03:10:24.707218Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-26T03:10:24.707218Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"8v6-29d-g7r","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Timeboard + Dashboard 1769733","teams":[],"created_at":"2024-10-04T18:49:59.050042Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:49:59.050042Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"8vg-n3m-t2r","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog''s + Dashboard Mon, Sep 18, 1:11:53 pm (cloned)","teams":[],"created_at":"2023-10-13T14:28:19.062400Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-13T14:28:19.062400Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"8w6-777-dbc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-03-03T15:12:52.825402Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-03T15:12:52.825402Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"8yn-6s7-pue","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T01:34:46.545176Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T01:34:46.545176Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"9dy-6d6-92u","type":"dashboards-usages","attributes":{"org_id":321813,"title":"KubeVirt + Overview (DEV)","teams":[],"created_at":"2025-01-07T07:17:49.547882Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":10,"viewed_at":"2025-01-07T15:05:57.088000Z","viewer":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":10,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2025-01-07T07:18:50.881143Z","widget_count":48,"widget_count_by_type":{"group":6,"note":1,"query_value":4,"timeseries":31,"query_table":2,"toplist":4},"dashboard_quality_score":0.0}},{"id":"9fh-bsk-dez","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-01T06:21:51.929267Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-01T06:21:51.929267Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"9gp-yca-ewc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-07-03T05:06:40.070179Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-07-03T05:06:40.070179Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"9gw-nvp-fv8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:16:01.442667Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:16:01.442667Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.0}},{"id":"9j7-b7g-fmp","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-07-07T17:12:20.570681Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-07T17:12:21.707927Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"9km-gj8-2rj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Hippolyte''s + Screenboard Fri, Apr 16, 10:20:54 am","teams":[],"created_at":"2021-04-16T08:20:54.758861Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-16T08:21:08.649752Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"9qq-fww-7dt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_event_stream_list_stream_widget_1736259735 + with list_stream widget","teams":[],"created_at":"2025-01-07T14:22:16.267384Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-07T14:22:16.267384Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"9ra-4tp-6x8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-08T22:30:44.267214Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-08T22:30:44.267214Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"9td-t9c-kk7","type":"dashboards-usages","attributes":{"org_id":321813,"title":"VMware + vSphere - Overview","teams":[],"created_at":"2024-01-17T14:04:12.968245Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-17T16:29:07.018541Z","widget_count":22,"widget_count_by_type":{"image":1,"event_stream":1,"toplist":5,"timeseries":6,"note":3,"query_value":5,"check_status":1},"dashboard_quality_score":0.0}},{"id":"9tw-t3j-j2j","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:55:33.097538Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:55:33.097538Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"9wr-ifb-ks3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Dashboard + for testing","teams":[],"created_at":"2024-06-28T14:32:31.419746Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-28T14:32:31.419746Z","widget_count":2,"widget_count_by_type":{"timeseries":1,"sunburst":1},"dashboard_quality_score":0.0}},{"id":"9ze-x5d-4uk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-10-02T10:21:50.272937Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-02T10:21:50.272937Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"asp-qkq-xha","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:47:56.046241Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:53:05.322597Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"b2p-ixy-wbd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-01T02:22:19.767227Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-01T02:22:19.767227Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"b2x-2d8-smj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"vsphere + test","teams":[],"created_at":"2023-11-15T14:29:57.863141Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-17T15:09:09.324288Z","widget_count":10,"widget_count_by_type":{"note":2,"timeseries":8},"dashboard_quality_score":0.0}},{"id":"b6n-8j5-2iz","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Cloud + Foundry - Overview (cloned) (cloned)","teams":[],"created_at":"2023-09-26T09:00:00.247208Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-05T14:50:19.276985Z","widget_count":42,"widget_count_by_type":{"image":1,"note":5,"hostmap":1,"timeseries":9,"query_value":21,"heatmap":2,"toplist":3},"dashboard_quality_score":0.0}},{"id":"b6n-d8r-7em","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OSLO: + splunk LB ","teams":[],"created_at":"2021-05-03T13:03:46.217614Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-03T13:03:46.217614Z","widget_count":12,"widget_count_by_type":{"note":3,"slo":1,"timeseries":8},"dashboard_quality_score":0.0}},{"id":"b9v-vd2-fq2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Etiennes + Dashboard Tue, Mar 18, 3:56:32 pm","teams":[],"created_at":"2025-03-18T14:56:32.569828Z","author":{"id":"21181844","name":"Etienne + Philippe Carriere","handle":"etienne.carriere@datadoghq.com","is_disabled":false},"total_views":1,"viewed_at":"2025-03-18T14:56:32.743000Z","viewer":{"id":"21181844","name":"Etienne + Philippe Carriere","handle":"etienne.carriere@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":1,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2025-03-18T14:57:27.767981Z","widget_count":1,"widget_count_by_type":{"query_value":1},"dashboard_quality_score":0.0}},{"id":"bcy-i9m-yk2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-03-26T09:52:25.783725Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-26T09:52:25.783725Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"bgf-jzg-b7a","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion] (shanel clone)","teams":[],"created_at":"2024-06-06T17:13:17.485112Z","author":{"id":"5620636","name":"Shanel + Huang","handle":"shanel.huang@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-06T17:28:16.789541Z","widget_count":156,"widget_count_by_type":{"group":11,"note":28,"check_status":8,"query_value":59,"query_table":24,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"bgp-uee-rt3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-03-03T15:12:51.418778Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-03T15:12:51.418778Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"bpc-yw5-2ai","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-08-11T05:06:09.509411Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-11T05:06:09.509411Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"bpj-ytu-fpt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-09-12T15:46:41.035816Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-12T15:48:05.847943Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"bru-u6k-rjq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Wisdom","teams":[],"created_at":"2021-12-15T14:39:24.510324Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-12-15T16:54:32.046189Z","widget_count":14,"widget_count_by_type":{"note":2,"timeseries":12},"dashboard_quality_score":0.0}},{"id":"bu8-gue-27p","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Bosh + AutoRelease Testing (cloned)","teams":[],"created_at":"2023-09-01T08:05:20.514088Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":1,"viewed_at":"2025-08-01T12:48:01.368000Z","viewer":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":1,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2023-09-01T08:08:49.528818Z","widget_count":11,"widget_count_by_type":{"note":1,"free_text":5,"query_table":3,"timeseries":2},"dashboard_quality_score":0.0}},{"id":"c5z-eix-jck","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_a_toplist_widget_with_stacked_type_and_no_legend_specified_1742496578","teams":[],"created_at":"2025-03-20T18:49:39.343102Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-20T18:49:39.343102Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"cf8-ifs-4vf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Sherzod''s + Dashboard Wed, Dec 20, 10:34:03 am","teams":[],"created_at":"2023-12-20T15:34:03.307486Z","author":{"id":"1725336","name":"Sherzod + Karimov","handle":"sherzod.karimov@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-20T15:34:03.307486Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"cmr-azj-aw6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-13T12:31:40.386452Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-13T12:31:40.386452Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"cw4-irn-n79","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T21:55:02.601652Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T21:55:02.601652Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.0}},{"id":"cx2-6g6-mni","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_timeseries_widget_with_legacy_live_span_time_format_1739376942 + with legacy live span time","teams":[],"created_at":"2025-02-12T16:15:43.276834Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-12T16:15:43.276834Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"cxr-rw5-dfb","type":"dashboards-usages","attributes":{"org_id":321813,"title":"frog''s + Dashboard Wed, Oct 11, 2:07:21 pm","teams":[],"created_at":"2023-10-11T18:07:21.856517Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-11T20:32:00.487697Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"dea-tup-asp","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-01-24T17:57:50.017145Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-24T17:57:50.017145Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"deh-2pa-jv8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Hippolyte''s + Timeboard Wed, Mar 3, 10:57:28 am","teams":[],"created_at":"2021-03-03T09:57:28.304302Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-03-03T09:59:37.861240Z","widget_count":2,"widget_count_by_type":{"timeseries":2},"dashboard_quality_score":0.0}},{"id":"dkd-m4y-nfc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2022-07-29T16:45:28.934525Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-07-29T16:45:31.392137Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"dvv-i5b-zbn","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion] (cloned)","teams":[],"created_at":"2024-01-08T19:23:43.013799Z","author":{"id":"6515857","name":"Candace + Shamieh","handle":"candace.shamieh@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-08T19:42:17.791727Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"timeseries":26,"query_table":21},"dashboard_quality_score":0.0}},{"id":"dw4-m52-byx","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_logs_stream_list_stream_widget_and_storage_parameter_1733350921 + with list_stream widget","teams":[],"created_at":"2024-12-04T22:22:01.830291Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-04T22:22:01.830291Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"dzm-bwc-ean","type":"dashboards-usages","attributes":{"org_id":321813,"title":"ListStream","teams":[],"created_at":"2025-02-25T10:01:52.815694Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-25T10:01:52.815694Z","widget_count":1,"widget_count_by_type":{"list_stream":1},"dashboard_quality_score":0.0}},{"id":"e63-myc-uhh","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Orchestrator + Writer [EP]","teams":[],"created_at":"2022-03-29T12:23:13.061726Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-03-29T12:23:13.061726Z","widget_count":57,"widget_count_by_type":{"group":7,"timeseries":47,"sunburst":3},"dashboard_quality_score":0.0}},{"id":"e7w-ted-kp5","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-07-07T19:50:57.927100Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-07T19:50:58.454696Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"e84-h6q-8ru","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2022-02-03T14:05:45.526436Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-02-03T14:05:47.627593Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"e88-itr-s9c","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardFreeText_import-local-1738715031","teams":[],"created_at":"2025-02-05T00:23:56.182926Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-05T00:23:56.182926Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"e8c-sk3-j9y","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-03-14T02:11:46.227958Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-14T02:11:46.227958Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"eg4-nui-f7r","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-09T16:11:30.640663Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T16:11:31.171270Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"egd-5vg-rac","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-10T14:20:28.977761Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-10T14:20:29.512718Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"ehj-axw-7z7","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-09-12T14:51:18.428821Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-12T15:21:55.042874Z","widget_count":7,"widget_count_by_type":{"scatterplot":1,"timeseries":1,"toplist":1,"group":1,"note":1,"alert_graph":1,"slo":1},"dashboard_quality_score":0.0}},{"id":"eq3-r74-a85","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T02:11:27.014458Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T02:11:27.014458Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"eup-drq-jnt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-03-01T16:07:22.663414Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-01T16:07:23.517492Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"ez7-i7k-kvy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardLogStream-local-1737547858","teams":[],"created_at":"2025-01-22T12:11:02.505903Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-22T12:11:02.505903Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"f47-qxr-zry","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Merging + Tracking","teams":[],"created_at":"2024-08-29T15:44:56.266108Z","author":{"id":"7557262","name":"Anika + Maskara","handle":"anika.maskara@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-29T15:44:56.266108Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"f4a-76m-nbn","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Hippolyte''s + Screenboard Fri, Apr 16, 10:20:54 am","teams":[],"created_at":"2021-04-16T08:27:11.505665Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-16T08:49:08.310691Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"f4q-d9c-2nj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog + API Clients CI","teams":[],"created_at":"2021-05-11T14:44:24.984417Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-11T14:44:24.984417Z","widget_count":10,"widget_count_by_type":{"manage_status":1,"note":3,"timeseries":3,"toplist":3},"dashboard_quality_score":0.0}},{"id":"f59-6bj-c7p","type":"dashboards-usages","attributes":{"org_id":321813,"title":"[corpit] + Iroh License Check Dashboard","teams":[],"created_at":"2023-01-30T11:34:18.574271Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-30T11:34:30.591612Z","widget_count":57,"widget_count_by_type":{"query_value":28,"timeseries":11,"image":12,"list_stream":1,"toplist":2,"note":3},"dashboard_quality_score":0.0}},{"id":"f5q-i7e-ewj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"jeffallen + - pcf billing test","teams":[],"created_at":"2022-05-20T20:30:30.729505Z","author":{"id":"4053606","name":"Datadog + Support","handle":"support-ddintegrationtests321813-3920545","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-06-09T21:01:57.752118Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"fim-fgh-t55","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_run_workflow_widget_1737023351","teams":[],"created_at":"2025-01-16T10:29:11.940056Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-16T10:29:11.940056Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"fny-85t-qat","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Python-Create_a_new_dashboard_with_split_graph_widget-1734399089","teams":[],"created_at":"2024-12-17T01:31:30.428183Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-17T01:31:30.428183Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"fx7-fqc-mvu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"TF + Test Layout Dashboard","teams":[],"created_at":"2023-08-02T16:16:55.510850Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-08-02T16:16:55.510850Z","widget_count":1,"widget_count_by_type":{"alert_graph":1},"dashboard_quality_score":0.0}},{"id":"g5y-dp6-qvu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-03-27T00:04:42.266863Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-27T00:04:42.266863Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"g9c-xme-5c8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Powerpack + Dashboard","teams":[],"created_at":"2023-09-13T20:02:37.796210Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-08T17:33:09.413127Z","widget_count":5,"widget_count_by_type":{"resolved_powerpack":2,"note":3},"dashboard_quality_score":0.0}},{"id":"g9d-nja-s56","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-12-07T15:11:01.265429Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-07T15:27:24.603106Z","widget_count":124,"widget_count_by_type":{"group":7,"note":27,"check_status":6,"query_value":37,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"h35-e77-y7b","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-08-29T19:53:19.113620Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-08-29T19:54:10.579886Z","widget_count":130,"widget_count_by_type":{"group":7,"note":29,"check_status":7,"query_value":41,"query_table":20,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"h39-2vx-x5t","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}} + fooo","teams":[],"created_at":"2024-09-23T17:13:29.658664Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-23T17:13:29.658664Z","widget_count":1,"widget_count_by_type":{"query_table":1},"dashboard_quality_score":0.0}},{"id":"h4n-bfi-dg5","type":"dashboards-usages","attributes":{"org_id":321813,"title":"KubeVirt + Overview","teams":[],"created_at":"2024-07-25T09:17:13.681827Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":11,"viewed_at":"2026-03-17T11:13:57.801000Z","viewer":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":11,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2024-08-27T10:34:25.951925Z","widget_count":47,"widget_count_by_type":{"group":6,"note":1,"query_value":3,"timeseries":31,"query_table":2,"toplist":4},"dashboard_quality_score":0.5987270471340143}},{"id":"h7j-v4q-aeu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-23T13:34:48.246025Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-23T13:34:49.033289Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"h8e-vwj-uy8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2022-07-29T16:48:46.701592Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-07-29T16:48:49.599967Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"hiu-7x9-6yd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_dashboard_with_tags_returns_OK_response_1737087532 + with Profile Metrics Query","teams":[],"created_at":"2025-01-17T04:18:53.051598Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-17T04:18:53.051598Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"hn6-a2w-7fv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Restore_deleted_dashboards_returns_No_Content_response_1686850305 + with Profile Metrics Query","teams":[],"created_at":"2023-06-15T17:31:45.390220Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-06-15T17:31:45.390220Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"hsz-pvn-gie","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2021-01-21T11:01:38.594211Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-01-21T11:01:39.149109Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"hur-yk4-4ey","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-12-08T20:49:20.928521Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-08T21:46:33.784247Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"hyq-he9-mmv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2022-11-16T14:53:07.236859Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-11-16T14:53:08.023820Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"i39-nvs-35n","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-02T05:06:26.825469Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-02T05:06:26.825469Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"i6q-quy-cn2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:23:19.837734Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:34:00.011483Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.0}},{"id":"ia3-mtz-d4e","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Timeboard","teams":[],"created_at":"2020-12-09T04:18:00.388550Z","author":null,"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2020-12-09T04:18:00.388550Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"iic-aki-a5y","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Log Stream Widget Dashboard","teams":[],"created_at":"2022-05-22T00:22:49.406365Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-05-22T00:22:49.406365Z","widget_count":2,"widget_count_by_type":{"log_stream":2},"dashboard_quality_score":0.0}},{"id":"iqb-wzk-7ab","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Create_a_new_dashboard_with_powerpack_widget-1745381568 + with powerpack widget","teams":[],"created_at":"2025-04-23T04:12:49.950553Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-04-23T04:12:49.950553Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"it8-zmc-esc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-03-01T16:10:54.233168Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-01T16:10:55.754868Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"ivx-9cb-hq6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-03-01T15:32:14.718423Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-01T15:32:15.878992Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"j6w-fex-8fn","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2021-04-15T16:42:07.677880Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-15T16:42:08.423227Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"j82-fmx-4nd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-23T10:21:50.450445Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-23T10:21:50.450445Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"jad-5wi-r7k","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-06T20:25:05.406527Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T20:25:05.406527Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"jcd-pci-xxw","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog''s + 111222333, Sep 18, 1:11:53 pm (cloned)","teams":[],"created_at":"2023-10-13T15:06:17.052642Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-13T15:10:51.018368Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"je2-bwi-ces","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OSLO: + systemid LB on c2c","teams":[],"created_at":"2021-04-26T09:58:20.982778Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-26T09:58:20.982778Z","widget_count":12,"widget_count_by_type":{"slo":2,"timeseries":8,"note":2},"dashboard_quality_score":0.0}},{"id":"jjp-ch8-h4j","type":"dashboards-usages","attributes":{"org_id":321813,"title":"VMware + vSphere - Overview (cloned)","teams":[],"created_at":"2024-05-20T15:14:34.623626Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-20T15:14:34.623626Z","widget_count":22,"widget_count_by_type":{"image":1,"list_stream":1,"toplist":5,"timeseries":6,"note":3,"query_value":5,"check_status":1},"dashboard_quality_score":0.0}},{"id":"jzw-2ff-srb","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Log Stream Widget Dashboard","teams":[],"created_at":"2022-04-14T13:40:43.341283Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-04-14T13:40:43.341283Z","widget_count":2,"widget_count_by_type":{"log_stream":2},"dashboard_quality_score":0.0}},{"id":"k64-a3e-t6p","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-03-15T13:39:50.094390Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-15T13:39:51.376388Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"k7b-e3u-xry","type":"dashboards-usages","attributes":{"org_id":321813,"title":"ESXi + Overview","teams":[],"created_at":"2024-05-02T18:54:09.468977Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-02T18:54:09.468977Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"kf4-nik-f6k","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-08-30T18:19:33.856132Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-30T18:19:33.856132Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"kqz-yw2-egk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"PCF + Nozzle Testing (cloned)","teams":[],"created_at":"2023-09-07T11:31:05.567145Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":4,"viewed_at":"2025-09-25T08:30:09.388000Z","viewer":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":4,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2023-11-13T15:10:51.833223Z","widget_count":13,"widget_count_by_type":{"note":1,"timeseries":12},"dashboard_quality_score":0.0}},{"id":"kr8-sth-skv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2022-07-13T16:47:06.137747Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-07-13T16:47:09.905432Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"kuj-pxv-rqh","type":"dashboards-usages","attributes":{"org_id":321813,"title":"MM + RBAC Dashboard [0.11]","teams":[],"created_at":"2021-04-23T16:04:56.337388Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-23T16:04:56.337388Z","widget_count":1,"widget_count_by_type":{"note":1},"dashboard_quality_score":0.0}},{"id":"m3a-qxx-d6r","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Timeboard + Dashboard 1769733","teams":[],"created_at":"2024-10-04T18:54:20.931820Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:54:20.931820Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"mjt-uva-tcy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-24T08:09:00.562026Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-24T08:09:01.756390Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"mmd-vfp-cq4","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Python-Create_a_new_dashboard_with_slo_widget-1738632660","teams":[],"created_at":"2025-02-04T01:31:02.435234Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-04T01:31:02.435234Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"mv6-3rt-tc2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-03-26T09:52:26.162275Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-26T09:52:26.162275Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"mwr-ife-dth","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{ + unique }} with list_stream widget","teams":[],"created_at":"2023-03-02T20:48:56.368879Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-02T20:48:56.368879Z","widget_count":1,"widget_count_by_type":{"list_stream":1},"dashboard_quality_score":0.0}},{"id":"n4f-d26-7fs","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-09-12T15:28:08.943107Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-12T15:28:08.943107Z","widget_count":7,"widget_count_by_type":{"scatterplot":1,"timeseries":1,"toplist":1,"group":1,"note":1,"alert_graph":1,"slo":1},"dashboard_quality_score":0.0}},{"id":"n5x-wj3-tt8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2022-11-16T14:55:32.325509Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-11-16T14:55:33.604225Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"n86-f3u-tw7","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-09-12T15:21:09.903112Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-12T15:21:55.038682Z","widget_count":7,"widget_count_by_type":{"scatterplot":1,"timeseries":1,"toplist":1,"group":1,"note":1,"alert_graph":1,"slo":1},"dashboard_quality_score":0.0}},{"id":"nb6-uk2-r2p","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Dashboard + created using cloudformation template","teams":[],"created_at":"2024-09-27T18:21:01.500799Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-27T18:21:01.500799Z","widget_count":60,"widget_count_by_type":{"group":6,"timeseries":17,"toplist":17,"sunburst":1,"hostmap":1,"query_value":18},"dashboard_quality_score":0.0}},{"id":"ncv-h4k-4it","type":"dashboards-usages","attributes":{"org_id":321813,"title":"ESXi + Overview","teams":[],"created_at":"2024-05-02T19:01:10.511984Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-24T15:00:11.787094Z","widget_count":30,"widget_count_by_type":{"group":6,"note":3,"query_value":2,"query_table":5,"toplist":4,"timeseries":10},"dashboard_quality_score":0.0}},{"id":"neh-3bi-sgi","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-06-01T00:04:03.352407Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-06-01T00:04:03.352407Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"ni6-8fj-4qa","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-09T01:31:58.083575Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-09T01:31:58.083575Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"ntb-zhs-zc6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OSLO: + systemid LB on starbug","teams":[],"created_at":"2021-04-26T09:59:02.371956Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-26T09:59:02.371956Z","widget_count":12,"widget_count_by_type":{"slo":2,"timeseries":8,"note":2},"dashboard_quality_score":0.0}},{"id":"ntg-i6e-bg3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-02-29T22:03:38.377385Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-02-29T22:03:38.377385Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"p3k-7zr-wpr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenTelemetry + Collector Metrics Dashboard (with equiv_otel)","teams":[],"created_at":"2025-04-10T13:39:12.520913Z","author":{"id":"5620636","name":"Shanel + Huang","handle":"shanel.huang@datadoghq.com","is_disabled":false},"total_views":2,"viewed_at":"2025-04-10T13:39:22.716000Z","viewer":{"id":"5620636","name":"Shanel + Huang","handle":"shanel.huang@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":2,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2025-04-10T13:39:21.857795Z","widget_count":75,"widget_count_by_type":{"group":8,"note":10,"timeseries":50,"query_table":6,"query_value":1},"dashboard_quality_score":0.0}},{"id":"p3v-g5w-f7h","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-06T20:25:05.998637Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T20:25:05.998637Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"p64-8q6-as6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-09T01:44:16.923835Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-09T02:23:31.421819Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"p6f-bt4-6mx","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-08-30T18:19:34.472771Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-30T18:19:34.472771Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"p8w-deq-k6x","type":"dashboards-usages","attributes":{"org_id":321813,"title":"CRP-176","teams":[],"created_at":"2022-08-24T14:10:40.232901Z","author":{"id":"4326960","name":"Datadog + Support","handle":"support-ddintegrationtests321813-4240449","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-08-24T14:10:47.209726Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"pj7-aps-g42","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-10-04T18:54:21.314190Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:54:21.314190Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"pra-83a-gm3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Fly.io + Overview ","teams":[],"created_at":"2024-07-17T18:16:25.227238Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-07-30T22:03:35.055528Z","widget_count":33,"widget_count_by_type":{"group":6,"note":3,"query_value":2,"check_status":1,"toplist":2,"query_table":5,"hostmap":1,"treemap":1,"timeseries":12},"dashboard_quality_score":0.0}},{"id":"pt8-4pn-jw6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-03-01T15:29:54.911262Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-01T15:29:55.700607Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"pu8-4pr-9v2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2021-01-21T14:01:08.820798Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-01-21T14:01:09.882536Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"pv5-p65-yis","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-12-11T18:22:19.897944Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-11T18:22:19.897944Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"pzz-ksp-bip","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Scaphandre + Overview","teams":[],"created_at":"2024-05-16T19:33:20.983978Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-16T19:33:20.983978Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"q5j-nti-fv6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"For + dashboard list tests - DO NOT DELETE","teams":[],"created_at":"2020-02-11T13:48:52.362473Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2020-02-11T13:49:16.919666Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"q5p-k9m-btm","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-07-22T18:22:19.757565Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-07-22T18:22:19.757565Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"q5z-8cr-k7v","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Run + workflow terraform dashboard","teams":[],"created_at":"2023-02-15T20:13:30.498477Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-02-15T20:13:30.498477Z","widget_count":1,"widget_count_by_type":{"run_workflow":1},"dashboard_quality_score":0.0}},{"id":"q9c-n75-4rq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-12-13T22:22:19.842417Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-13T22:22:19.842417Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"qc7-v9m-xqv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2023-12-08T19:58:04.706734Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-08T23:55:47.131235Z","widget_count":2,"widget_count_by_type":{"resolved_powerpack":1,"note":1},"dashboard_quality_score":0.0}},{"id":"qcr-t4m-v3k","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Kepler + Overview ","teams":[],"created_at":"2024-05-23T18:18:30.546120Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-23T19:17:16.197535Z","widget_count":8,"widget_count_by_type":{"group":2,"note":2,"query_table":1,"query_value":2,"sunburst":1},"dashboard_quality_score":0.0}},{"id":"qd5-u4z-i8z","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-12-27T04:11:24.143503Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-27T04:11:24.143503Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"qhf-em6-2i3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-23T13:37:35.644378Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-23T13:37:36.923776Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"qi6-q9m-tpv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-08T22:31:11.506879Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-08T22:31:11.506879Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"qmz-925-umx","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-10T14:22:53.864848Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-10T14:22:54.795680Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"qn2-but-2r8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2021-03-01T08:29:54.466356Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-03-01T08:29:54.466356Z","widget_count":2,"widget_count_by_type":{"event_stream":1,"image":1},"dashboard_quality_score":0.0}},{"id":"qpy-d9b-2bv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2021-01-06T10:48:02.242118Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-01-06T10:48:02.242118Z","widget_count":1,"widget_count_by_type":{"alert_graph":1},"dashboard_quality_score":0.0}},{"id":"qup-ydj-93n","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Create_a_new_dashboard_with_manage_status_widget_and_show_priority_parameter-1738728686","teams":[],"created_at":"2025-02-05T04:11:26.503360Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-05T04:11:26.503360Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"qxx-jfk-v42","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-24T15:14:41.219203Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-24T15:14:41.219203Z","widget_count":1,"widget_count_by_type":{"distribution":1},"dashboard_quality_score":0.0}},{"id":"rcn-b3p-kkk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2022-03-04T17:35:14.272142Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-03-04T17:35:16.152659Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"rj7-qir-ztd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-11-24T04:11:51.944178Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-11-24T04:11:51.944178Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"rm8-k6t-8m4","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-10-04T18:49:59.470703Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:49:59.470703Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"rmu-unn-gcq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2022-07-13T16:50:32.341526Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-07-13T16:50:35.610164Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"rn6-u8f-7yk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_sunburst_widget_and_metrics_data_1734531717","teams":[],"created_at":"2024-12-18T14:21:57.983817Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-18T14:21:57.983817Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"rrq-mav-byg","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:16:29.780792Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:18:38.540849Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.0}},{"id":"rsw-epy-tv6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Bruce + test","teams":[],"created_at":"2024-10-10T20:26:42.166692Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-11T20:04:05.520446Z","widget_count":1,"widget_count_by_type":{"distribution":1},"dashboard_quality_score":0.0}},{"id":"rt5-yit-kkz","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Octopus + Deploy Overview","teams":[],"created_at":"2024-12-02T17:57:23.397063Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":1,"viewed_at":"2025-01-03T18:22:09.527000Z","viewer":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":1,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2024-12-11T14:54:48.862172Z","widget_count":7,"widget_count_by_type":{"query_value":1,"timeseries":4,"query_table":2},"dashboard_quality_score":0.0}},{"id":"rvp-h5j-zhk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-08T22:25:11.372571Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-08T22:26:34.329161Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"rvw-uxs-a32","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-03T19:56:05.033591Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T21:38:18.943692Z","widget_count":3,"widget_count_by_type":{"toplist":3},"dashboard_quality_score":0.0}},{"id":"stu-5eb-fje","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-02-24T20:37:44.551755Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-02-24T20:37:45.473803Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"su8-kbt-qqk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"frog''s + Dashboard Mon, Oct 23, 12:43:30 pm","teams":[],"created_at":"2023-10-23T16:43:31.132952Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-23T16:43:31.132952Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"suf-n3q-967","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-05-03T02:13:09.132180Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-03T02:13:09.132180Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"sv6-maw-zx9","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-11-28T01:44:57.326488Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-11-28T01:44:57.326488Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"t5a-y6c-yr8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-12-27T04:11:24.943377Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-27T04:11:24.943377Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"t66-nfh-e25","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2022-09-12T19:54:19.969611Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-09-12T19:57:12.275290Z","widget_count":1,"widget_count_by_type":{"topology_map":1},"dashboard_quality_score":0.0}},{"id":"t7i-u49-9p6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Noueman''s + Dashboard Thu, Nov 9, 5:03:34 pm","teams":[],"created_at":"2023-11-09T16:03:34.595627Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-09T16:03:34.595627Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"taf-afu-akt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-23T07:59:08.905416Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-23T07:59:09.903936Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"tgf-iq6-ujs","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-08-30T18:22:19.797309Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-30T18:22:19.797309Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"tkn-wg4-sr3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_returns_OK_response_1718648515 + with Profile Metrics Query","teams":[],"created_at":"2024-06-17T18:21:55.846134Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-17T18:21:55.846134Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"tpx-f7m-z57","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{ + unique }}","teams":[],"created_at":"2023-09-12T19:44:24.710209Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-09-12T19:44:24.710209Z","widget_count":1,"widget_count_by_type":{"heatmap":1},"dashboard_quality_score":0.0}},{"id":"tx6-46v-wzw","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-19T03:11:04.352440Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-19T03:11:04.352440Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"u4x-txd-uf6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-08T22:26:48.362206Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-08T22:26:48.362206Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"uc8-ykp-3c7","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Fly.io + Overview (cloned)","teams":[],"created_at":"2024-08-13T17:58:15.161434Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-14T21:07:55.940923Z","widget_count":36,"widget_count_by_type":{"group":6,"note":3,"query_value":2,"check_status":1,"toplist":2,"query_table":4,"hostmap":1,"treemap":1,"timeseries":16},"dashboard_quality_score":0.0}},{"id":"ug4-a8z-jva","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-07T16:37:55.238444Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-07T16:37:55.238444Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"ug6-j5q-8mm","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-09T16:13:44.101907Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T16:13:45.105031Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"unw-hwk-68w","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T02:31:03.437671Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T02:31:03.437671Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"uq2-urd-dzu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Scaphandre + Overview ","teams":[],"created_at":"2024-05-16T19:33:47.986664Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-23T19:50:58.459791Z","widget_count":24,"widget_count_by_type":{"group":5,"note":4,"query_value":5,"timeseries":8,"toplist":1,"query_table":1},"dashboard_quality_score":0.0}},{"id":"uqe-kqz-p6j","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2022-11-17T18:42:10.349402Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-11-17T18:42:11.457516Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"uu8-cxu-zea","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Beacon + Service","teams":[],"created_at":"2023-10-10T18:45:29.276049Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-10T18:45:29.276049Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"uw4-48e-88t","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-30T18:59:31.861704Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-30T18:59:31.861704Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"ux5-fxw-5cf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"frog''s + Screenboard Thu, Jan 26, 9:35:17 am","teams":[],"created_at":"2023-01-26T08:35:17.499834Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-26T08:35:36.597872Z","widget_count":1,"widget_count_by_type":{"run_workflow":1},"dashboard_quality_score":0.0}},{"id":"uy6-4fe-nqd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:07:21.855524Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:08:42.636698Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.0}},{"id":"v37-yyy-9ym","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-03-30T02:06:59.053289Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-03-30T02:06:59.053289Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"v3w-u4i-tww","type":"dashboards-usages","attributes":{"org_id":321813,"title":"TF + Test Layout Dashboard","teams":[],"created_at":"2023-08-02T14:14:41.723635Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-08-02T14:14:41.723635Z","widget_count":1,"widget_count_by_type":{"alert_graph":1},"dashboard_quality_score":0.0}},{"id":"v74-xyc-vd4","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-09T21:28:00.315443Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T21:28:01.033524Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"vdt-sff-xrf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"kevinzou_sandbox","teams":[],"created_at":"2023-10-10T18:20:08.538567Z","author":{"id":"4348810","name":"Kevin + Zou","handle":"kevin.zou@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-01T15:26:52.470946Z","widget_count":4,"widget_count_by_type":{"timeseries":1,"resolved_powerpack":1,"note":2},"dashboard_quality_score":0.0}},{"id":"vfn-gvr-cxk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-25T18:21:50.656210Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-25T18:21:50.656210Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"vg2-fg8-7vh","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog-api-spec + Automerging","teams":[],"created_at":"2024-09-23T16:27:24.646048Z","author":{"id":"7359812","name":"Jack + Edmonds","handle":"jack.edmonds@datadoghq.com","is_disabled":false},"total_views":1,"viewed_at":"2025-01-14T22:53:10.616000Z","viewer":{"id":"21011231","name":"Datadog + Support","handle":"support-ddintegrationtests321813-jahanzeb.hassan@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":1,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2024-09-24T21:27:33.180160Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"vgn-f2f-zr3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion] (cloned)","teams":[],"created_at":"2023-11-21T20:19:09.753235Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-21T20:19:09.753235Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"vs6-9qu-vur","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-03-15T13:37:22.574326Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-15T13:37:23.238265Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"vvn-nwe-23z","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Log Stream Widget Dashboard","teams":[],"created_at":"2024-03-01T00:18:38.736689Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-03-01T00:18:38.736689Z","widget_count":2,"widget_count_by_type":{"log_stream":2},"dashboard_quality_score":0.0}},{"id":"wce-cqf-nhh","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Log Stream Widget Dashboard","teams":[],"created_at":"2022-05-22T00:22:51.925033Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-05-22T00:22:51.925033Z","widget_count":2,"widget_count_by_type":{"log_stream":2},"dashboard_quality_score":0.0}},{"id":"wcp-6ik-3wf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-12-29T01:44:20.834836Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-29T01:44:20.834836Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"wrg-gv3-3hf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Delete_custom_timeboard_dashboard_from_an_existing_dashboard_list_returns_OK_response_1720880516 + with Profile Metrics Query","teams":[],"created_at":"2024-07-13T14:21:57.467620Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-07-13T14:21:57.467620Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"wsr-yee-qm5","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-30T18:59:31.598171Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-30T18:59:31.598171Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"x45-5fs-594","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-03-15T13:43:02.051856Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-15T13:43:02.798289Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"x77-xd6-a6v","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-10-23T19:59:39.468599Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-05T20:38:35.743635Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"xc8-h6m-gyt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2021-04-13T11:50:10.192480Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-13T11:50:38.881933Z","widget_count":3,"widget_count_by_type":{"slo":3},"dashboard_quality_score":0.0}},{"id":"xdp-wbm-5rj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T21:50:56.241695Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T21:50:56.241695Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"xfe-kap-e5y","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-06-21T13:59:15.683388Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-06-21T13:59:15.683388Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"xgg-369-k9w","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-05-13T01:28:36.563248Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-13T01:28:36.563248Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"xkq-2cm-fed","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-30T18:57:16.687093Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-30T18:57:16.687093Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"xue-5t2-hzf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Log Stream Widget Dashboard","teams":[],"created_at":"2021-01-06T10:40:07.910997Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-01-06T10:40:07.910997Z","widget_count":1,"widget_count_by_type":{"log_stream":1},"dashboard_quality_score":0.0}},{"id":"xz6-mat-r9c","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_check_status_widget_1736101311","teams":[],"created_at":"2025-01-05T18:21:52.120117Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-05T18:21:52.120117Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"y3t-eqa-763","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-08-14T06:21:50.287887Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-14T06:21:50.287887Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"y6m-dsb-3uq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2022-11-17T18:39:28.101260Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-11-17T18:39:28.748416Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"ya2-tzk-zyw","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-07-07T19:53:37.805020Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-07T19:53:38.731282Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"ydt-8ah-kfv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Noueman''s + Dashboard Thu, May 9, 11:49:33 pm","teams":[],"created_at":"2024-05-09T21:49:33.558354Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-05-09T21:49:33.558354Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"yes-s6q-j58","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2022-02-02T15:50:14.521415Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-02-02T15:50:16.741690Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"yj9-r52-is2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-24T08:06:24.291924Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-24T08:06:25.020191Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"ynt-7re-g5t","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Dashboard + with Powerpack","teams":[],"created_at":"2023-09-13T20:04:26.921191Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-09-13T20:04:26.921191Z","widget_count":3,"widget_count_by_type":{"resolved_powerpack":1,"note":2},"dashboard_quality_score":0.0}},{"id":"yq7-7uz-gr9","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-10-04T18:40:12.197797Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:40:12.197797Z","widget_count":19,"widget_count_by_type":{"alert_graph":2,"alert_value":2,"change":1,"distribution":1,"check_status":1,"heatmap":1,"hostmap":1,"note":2,"query_value":1,"query_table":1,"scatterplot":1,"servicemap":1,"timeseries":1,"toplist":1,"group":1,"slo":1},"dashboard_quality_score":0.0}},{"id":"ytd-nd3-bxu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-19T01:32:56.908916Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-19T01:32:56.908916Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}}],"meta":{"page":{"type":"offset_limit","offset":0,"first_offset":0,"limit":250,"prev_offset":null,"next_offset":250,"last_offset":250,"total":255}},"links":{"self":"https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bedited_before%5D=2025-04-26T00%3A00%3A00Z","next":"https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bedited_before%5D=2025-04-26T00%3A00%3A00Z&page[offset]=250&page[limit]=250","first":"https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bedited_before%5D=2025-04-26T00%3A00%3A00Z&page[offset]=0&page[limit]=250","last":"https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bedited_before%5D=2025-04-26T00%3A00%3A00Z&page[offset]=250&page[limit]=250"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-viewed-before-filter-returns-OK-response.frozen b/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-viewed-before-filter-returns-OK-response.frozen new file mode 100644 index 000000000000..a2c3e1fa9af4 --- /dev/null +++ b/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-viewed-before-filter-returns-OK-response.frozen @@ -0,0 +1 @@ +2026-06-01T18:15:30.412Z \ No newline at end of file diff --git a/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-viewed-before-filter-returns-OK-response.yml b/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-viewed-before-filter-returns-OK-response.yml new file mode 100644 index 000000000000..1248e01d7e2e --- /dev/null +++ b/cassettes/features/v2/dashboards/Get-usage-stats-for-all-dashboards-with-viewed-before-filter-returns-OK-response.yml @@ -0,0 +1,297 @@ +http_interactions: +- recorded_at: Mon, 01 Jun 2026 18:15:30 GMT + request: + body: null + headers: + Accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bviewed_before%5D=2025-04-26T00%3A00%3A00Z + response: + body: + encoding: UTF-8 + string: '{"data":[{"id":"22p-zw6-qia","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Send_shared_dashboard_invitation_email_returns_OK_response-1770895286 + with Profile Metrics Query","teams":[],"created_at":"2026-02-12T11:21:26.907249Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-12T11:21:26.907249Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23756985018964683}},{"id":"284-wiv-iqk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-10-21T21:02:03.739689Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-21T21:02:03.739689Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"287-waf-fua","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Get_all_invitations_for_a_shared_dashboard_returns_OK_response-1770981465 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T11:17:45.310427Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T11:17:45.310427Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24073878500924423}},{"id":"29x-55z-rt2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-09T22:20:08.019993Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T22:20:09.093470Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"2be-q62-ep5","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-06-23T00:04:08.199090Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-23T00:04:08.199090Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"2cz-cim-bga","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771235251 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T09:47:32.359535Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T09:47:32.359535Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2500709910730988}},{"id":"2fb-2xi-b3r","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1771048054 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T05:47:35.029821Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T05:47:35.029821Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24318740870871283}},{"id":"2fn-zr3-4jy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771249651 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T13:47:32.319363Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T13:47:32.319363Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25060050348469665}},{"id":"2fp-uaa-dxc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1770904050 + with Profile Metrics Query","teams":[],"created_at":"2026-02-12T13:47:31.270385Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-12T13:47:31.270385Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23789213157850414}},{"id":"2gn-qtd-zd9","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:54:10.920756Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:54:57.107615Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"2m8-ht3-7kf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T02:11:27.660825Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T02:11:27.660825Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"2n8-amr-8ws","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_hostmap_widget_1738642608","teams":[],"created_at":"2025-02-04T04:16:49.306022Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-04T04:16:49.306022Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"2ph-z9s-3ma","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1771019257 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T21:47:37.816410Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T21:47:37.816410Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24212848339848805}},{"id":"2qn-4hs-6nz","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-06-06T18:28:02.296323Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-06T18:28:02.296323Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"2rd-dc2-4qz","type":"dashboards-usages","attributes":{"org_id":321813,"title":"delete-me","teams":[],"created_at":"2023-04-04T07:20:20.175651Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-04-04T07:25:00.141124Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"2t6-ira-9sr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-26T16:19:46.726552Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-26T16:19:46.726552Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"2w5-uyn-tkh","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771390145 + with Profile Metrics Query","teams":[],"created_at":"2026-02-18T04:49:05.674863Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-18T04:49:05.674863Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25576669675031316}},{"id":"2wf-ez7-j7s","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771048050 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T05:47:31.238278Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T05:47:31.238278Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24318726928614662}},{"id":"37f-p9m-n5a","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardRbac_updateToRbac-local-1776085112","teams":[],"created_at":"2026-04-13T12:58:33.957713Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-04-13T12:58:33.957713Z","widget_count":1,"widget_count_by_type":{"note":1},"dashboard_quality_score":0.18728267598253262}},{"id":"37v-ks5-42n","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771019250 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T21:47:31.237085Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T21:47:31.237085Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24212824146438033}},{"id":"38e-jd2-pvu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771033651 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T01:47:32.276189Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T01:47:32.276189Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24265779356294825}},{"id":"3ag-svk-vks","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1771379257 + with Profile Metrics Query","teams":[],"created_at":"2026-02-18T01:47:37.819031Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-18T01:47:37.819031Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25536633071651027}},{"id":"3bd-yi5-t9f","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Cloud + Foundry - Overview (cloned)","teams":[],"created_at":"2024-01-24T20:36:07.585183Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-24T20:36:07.585183Z","widget_count":42,"widget_count_by_type":{"query_value":21,"toplist":3,"note":5,"timeseries":9,"image":1,"hostmap":1,"heatmap":2},"dashboard_quality_score":0.0}},{"id":"3dh-twk-s46","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1771364857 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T21:47:37.812316Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T21:47:37.812316Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25483681658051194}},{"id":"3gp-ihg-25a","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:55:49.231714Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:55:49.231714Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"3hx-aas-pkd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-09T01:07:47.665899Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-09T01:11:49.409229Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"3jf-enh-rvf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1770889652 + with Profile Metrics Query","teams":[],"created_at":"2026-02-12T09:47:32.857235Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-12T09:47:32.857235Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23736267603969477}},{"id":"3jh-dek-qps","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-12-08T21:59:54.884830Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-08T22:00:29.988353Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"3jt-5cb-icy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-02-24T20:40:32.063650Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-02-24T20:40:33.482665Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"3kr-vna-uug","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:56:42.073944Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:56:42.073944Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"3mh-eua-8gx","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1771264055 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T17:47:35.437223Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T17:47:35.437223Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25113013202126155}},{"id":"3nb-3ce-ckg","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Get_a_shared_dashboard_returns_OK_response-1771240877 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T11:21:17.935183Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T11:21:17.935183Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25027785360178356}},{"id":"3nb-t26-7yu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771105650 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T21:47:31.428318Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T21:47:31.428318Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24530533182875625}},{"id":"3uh-fgj-iu9","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_distribution_widget_using_a_histogram_request_containing_a_formulas_and_functions_events_qu_1771155581","teams":[],"created_at":"2026-02-15T11:39:41.627411Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T11:39:41.627411Z","widget_count":1,"widget_count_by_type":{"distribution":1},"dashboard_quality_score":0.3295218066876309}},{"id":"3xf-myy-c3f","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardRbac_createAdmin-local-1774386000","teams":[],"created_at":"2026-03-24T21:00:04.874787Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-03-24T21:00:04.874787Z","widget_count":1,"widget_count_by_type":{"note":1},"dashboard_quality_score":0.1599693226684617}},{"id":"3y3-3x5-kq8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-11-09T16:03:35.113528Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-09T16:03:47.912796Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"43b-kw6-vqr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Cloud + Foundry - Overview (cloned)","teams":[],"created_at":"2023-09-20T09:37:10.513590Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-06T14:44:10.522900Z","widget_count":42,"widget_count_by_type":{"query_value":21,"toplist":3,"note":5,"timeseries":10,"image":1,"hostmap":1,"heatmap":1},"dashboard_quality_score":0.0}},{"id":"43k-xij-6fu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771393651 + with Profile Metrics Query","teams":[],"created_at":"2026-02-18T05:47:32.095399Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-18T05:47:32.095399Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2558956341355224}},{"id":"49w-wru-9r3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1771336054 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T13:47:35.021426Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T13:47:35.021426Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2537776861747541}},{"id":"4ai-qzh-uxc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771192051 + with Profile Metrics Query","teams":[],"created_at":"2026-02-15T21:47:32.249226Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T21:47:32.249226Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24848244534703923}},{"id":"4b5-8v7-rh2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771336050 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T13:47:31.201562Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T13:47:31.201562Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25377754571138356}},{"id":"4ic-zm9-api","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardSpans_NoHideIncompleteCostData-local-1771030254","teams":[],"created_at":"2026-02-14T00:50:57.448221Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T00:50:57.448221Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.323377279510527}},{"id":"4ig-4ks-6c8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1770990454 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T13:47:35.017644Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T13:47:35.017644Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24106935270214458}},{"id":"4j8-nbn-4gi","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-09-28T01:37:23.346984Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-09-28T01:37:23.346984Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"4m8-kr3-ca4","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771076850 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T13:47:31.252396Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T13:47:31.252396Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2442462975804462}},{"id":"4mv-u7u-ysx","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_shared_dashboard_with_a_group_template_variable_returns_OK_response_1771163253 + with Profile Metrics Query","teams":[],"created_at":"2026-02-15T13:47:33.853020Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T13:47:33.853020Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24742347654333854}},{"id":"4n7-s4g-dqv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"For + dashboard list tests - DO NOT DELETE","teams":[],"created_at":"2020-02-11T13:49:29.555334Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2020-04-08T17:54:25.574039Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"4nf-i9k-t87","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771379250 + with Profile Metrics Query","teams":[],"created_at":"2026-02-18T01:47:31.220114Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-18T01:47:31.220114Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2553660880598945}},{"id":"4sx-tiz-2qu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1770745657 + with Profile Metrics Query","teams":[],"created_at":"2026-02-10T17:47:37.768200Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-10T17:47:37.768200Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23206771773364124}},{"id":"4td-xzm-6yq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Create_a_new_dashboard_with_a_toplist_widget_sorted_by_group-1772531926","teams":[],"created_at":"2026-03-03T09:58:47.282663Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-03-03T09:58:47.282663Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.2977520592063098}},{"id":"4ud-du4-pi3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog + API Clients CI","teams":[],"created_at":"2021-05-17T08:32:02.449350Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-17T08:32:02.449350Z","widget_count":10,"widget_count_by_type":{"manage_status":1,"note":3,"timeseries":3,"toplist":3},"dashboard_quality_score":0.0}},{"id":"4uk-xyr-myu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_funnel_widget_1775734738 + with funnel widget","teams":[],"created_at":"2026-04-09T11:38:59.468470Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-04-09T11:38:59.468470Z","widget_count":1,"widget_count_by_type":{"funnel":1},"dashboard_quality_score":0.4155252214205967}},{"id":"4vs-2aj-87j","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1770731251 + with Profile Metrics Query","teams":[],"created_at":"2026-02-10T13:47:32.144492Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-10T13:47:32.144492Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23153799705070313}},{"id":"4wp-g9w-rqp","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2021-01-06T16:34:52.946050Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-01-06T16:34:52.946050Z","widget_count":1,"widget_count_by_type":{"change":1},"dashboard_quality_score":0.0}},{"id":"4wy-ajm-bvu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-10-04T18:35:18.554744Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:35:18.554744Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"4z7-iip-zrt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-07-07T17:09:12.214893Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-07T17:09:12.874904Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"4zw-ifc-4pv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1770745651 + with Profile Metrics Query","teams":[],"created_at":"2026-02-10T17:47:32.295694Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-10T17:47:32.295694Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23206751649941387}},{"id":"55v-ka5-rne","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1770745655 + with Profile Metrics Query","teams":[],"created_at":"2026-02-10T17:47:35.397058Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-10T17:47:35.397058Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23206763054210952}},{"id":"59f-bun-r3c","type":"dashboards-usages","attributes":{"org_id":321813,"title":"VMware + vSphere - Overview","teams":[],"created_at":"2024-01-17T15:17:19.954644Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-17T15:17:33.545302Z","widget_count":22,"widget_count_by_type":{"image":1,"list_stream":1,"toplist":5,"timeseries":6,"note":3,"query_value":5,"check_status":1},"dashboard_quality_score":0.0}},{"id":"5bg-c69-wq9","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771062450 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T09:47:31.220095Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T09:47:31.220095Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2437167825030936}},{"id":"5cj-8j7-qpy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Octopus + Deploy Overview","teams":[],"created_at":"2024-12-11T20:48:25.007210Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":27,"viewed_at":"2025-01-16T20:42:51.598000Z","viewer":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":27,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2025-01-16T20:12:02.010750Z","widget_count":31,"widget_count_by_type":{"group":6,"note":5,"query_value":8,"list_stream":2,"toplist":2,"timeseries":1,"query_table":7},"dashboard_quality_score":0.0}},{"id":"5gx-3pv-cwk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Get_all_invitations_for_a_shared_dashboard_returns_OK_response-1771327301 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T11:21:41.852380Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T11:21:41.852380Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25345581641102205}},{"id":"5i4-3c5-qby","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Sherzod''s + Dashboard Wed, Dec 20, 1:37:28 pm","teams":[],"created_at":"2023-12-20T18:37:28.853122Z","author":{"id":"1725336","name":"Sherzod + Karimov","handle":"sherzod.karimov@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-20T18:37:28.853122Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"5mk-tv6-3wt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1771321657 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T09:47:37.701536Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T09:47:37.701536Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25324827083706314}},{"id":"5mr-xms-2qa","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-09T22:16:56.913567Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T22:16:57.568474Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"5qz-2i3-6cq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"TF + Test Free Layout Dashboard","teams":[],"created_at":"2023-08-02T14:14:41.648472Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-08-02T14:14:41.648472Z","widget_count":1,"widget_count_by_type":{"event_stream":1},"dashboard_quality_score":0.0}},{"id":"5r9-yr4-f7p","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1770970019 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T08:06:59.825960Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T08:06:59.825960Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24031791396337582}},{"id":"5ti-jks-zwd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1770832051 + with Profile Metrics Query","teams":[],"created_at":"2026-02-11T17:47:32.154507Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-11T17:47:32.154507Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23524459464028127}},{"id":"5tp-tr6-93q","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-06-21T13:59:15.028164Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-06-21T13:59:15.028164Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"5uv-zxz-4r8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771004851 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T17:47:32.259530Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T17:47:32.259530Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24159876516876042}},{"id":"5yv-q5c-8m3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1770737540 + with Profile Metrics Query","teams":[],"created_at":"2026-02-10T15:32:20.553171Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-10T15:32:20.553171Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23176923314226194}},{"id":"63v-49e-a7d","type":"dashboards-usages","attributes":{"org_id":321813,"title":"sarah + test","teams":[],"created_at":"2023-05-15T18:12:47.853642Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-05-15T18:25:28.895732Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"669-8wg-nfr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1770803257 + with Profile Metrics Query","teams":[],"created_at":"2026-02-11T09:47:37.746546Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-11T09:47:37.746546Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23418577249155625}},{"id":"679-8up-bf2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Log Stream Widget Dashboard","teams":[],"created_at":"2022-04-14T13:40:43.116109Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-04-14T13:40:43.116109Z","widget_count":2,"widget_count_by_type":{"log_stream":2},"dashboard_quality_score":0.0}},{"id":"67s-cju-w7w","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1770832057 + with Profile Metrics Query","teams":[],"created_at":"2026-02-11T17:47:37.795289Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-11T17:47:37.795289Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23524480206152595}},{"id":"6by-h9d-gui","type":"dashboards-usages","attributes":{"org_id":321813,"title":"MM + RBAC Dashboard","teams":[],"created_at":"2021-04-23T16:14:13.820995Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-23T16:14:13.820995Z","widget_count":1,"widget_count_by_type":{"note":1},"dashboard_quality_score":0.0}},{"id":"6e7-n4p-tdp","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1771033657 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T01:47:37.805777Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T01:47:37.805777Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24265799689157355}},{"id":"6ez-pq7-4zk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Create_a_shared_dashboard_returns_OK_response-1689999025 + with Profile Metrics Query","teams":[],"created_at":"2023-07-22T04:10:25.713775Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-22T04:10:25.713775Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"6md-r2g-kxc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-06-17T03:08:25.445281Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-06-17T03:08:25.445281Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"6pm-2ad-2v8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-03-15T13:45:39.004786Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-15T13:45:40.299693Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"6qu-cxf-9jy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-09-13T12:31:40.237970Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-13T12:31:40.237970Z","widget_count":7,"widget_count_by_type":{"scatterplot":1,"timeseries":1,"toplist":1,"group":1,"note":1,"alert_graph":1,"slo":1},"dashboard_quality_score":0.0}},{"id":"6rw-fcg-izv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771105651 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T21:47:32.200877Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T21:47:32.200877Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2453053602335819}},{"id":"6v2-52t-9m7","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771091250 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T17:47:31.249672Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T17:47:31.249672Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24477581136713875}},{"id":"6vb-yrz-ag6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1770918450 + with Profile Metrics Query","teams":[],"created_at":"2026-02-12T17:47:31.238722Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-12T17:47:31.238722Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2384216442977763}},{"id":"6vv-phh-8te","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1770731257 + with Profile Metrics Query","teams":[],"created_at":"2026-02-10T13:47:37.794992Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-10T13:47:37.794992Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23153820482802467}},{"id":"6xb-usd-min","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-12-04T15:37:35.427082Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-12-04T15:37:35.427082Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.015739144954754695}},{"id":"73p-kiw-ike","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771091251 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T17:47:32.262566Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T17:47:32.262566Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24477584861292045}},{"id":"74v-m9u-yzs","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Acceptance + Test Event Timeline Widget Dashboard","teams":[],"created_at":"2020-12-10T04:21:12.270024Z","author":null,"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2020-12-10T04:21:12.270024Z","widget_count":1,"widget_count_by_type":{"event_timeline":1},"dashboard_quality_score":0.0}},{"id":"76m-n9x-wd4","type":"dashboards-usages","attributes":{"org_id":321813,"title":"DL + FF TF","teams":[],"created_at":"2021-02-02T13:54:05.514952Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-02-02T13:54:05.514952Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"795-wur-2am","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog + API Clients CI","teams":[],"created_at":"2021-05-14T14:17:13.784143Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-14T14:17:13.784143Z","widget_count":10,"widget_count_by_type":{"manage_status":1,"note":3,"timeseries":3,"toplist":3},"dashboard_quality_score":0.0}},{"id":"7b3-yvp-mmq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"TF + Test Free Layout Dashboard","teams":[],"created_at":"2023-08-02T16:16:55.297530Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-08-02T16:16:55.297530Z","widget_count":1,"widget_count_by_type":{"event_stream":1},"dashboard_quality_score":0.0}},{"id":"7dp-46c-6tr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-07T16:37:56.369573Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-07T16:37:56.369573Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"7ia-ywt-ixn","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1770955619 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T04:06:59.844956Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T04:06:59.844956Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23978840077180083}},{"id":"7j9-9in-7md","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1770904051 + with Profile Metrics Query","teams":[],"created_at":"2026-02-12T13:47:32.262502Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-12T13:47:32.262502Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23789216805469163}},{"id":"7kp-v5x-s54","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Update_a_shared_dashboard_returns_OK_response-1771327312 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T11:21:52.754388Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T11:21:52.754388Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2534562172957386}},{"id":"7ns-vmc-rup","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardListStream-local-1772801028","teams":[],"created_at":"2026-03-06T12:43:50.956179Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-03-06T12:43:50.956179Z","widget_count":1,"widget_count_by_type":{"list_stream":1},"dashboard_quality_score":0.4101966467791395}},{"id":"7q2-h97-j2m","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_items_of_a_Dashboard_List_returns_OK_response_1731709308 + with Profile Metrics Query","teams":[],"created_at":"2024-11-15T22:21:49.262821Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-11-15T22:21:49.262821Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"7ui-ttk-rjb","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771336051 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T13:47:32.369190Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T13:47:32.369190Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25377758864426786}},{"id":"7v3-gfj-zzr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1770760050 + with Profile Metrics Query","teams":[],"created_at":"2026-02-10T21:47:31.212371Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-10T21:47:31.212371Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23259699055036287}},{"id":"7yi-rk7-7kw","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1770947250 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T01:47:31.242266Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T01:47:31.242266Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23948067220516697}},{"id":"7ym-viw-7if","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Dashboard + created using cloudformation template","teams":[],"created_at":"2024-09-27T18:25:34.741716Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-27T18:25:34.741716Z","widget_count":60,"widget_count_by_type":{"group":6,"timeseries":17,"toplist":17,"sunburst":1,"hostmap":1,"query_value":18},"dashboard_quality_score":0.0}},{"id":"823-wmx-kyk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-01-09T21:30:35.101006Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T21:30:36.200544Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"86h-24u-mwc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"vSphere + VM Property Metrics","teams":[],"created_at":"2023-07-18T18:13:38.804575Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-11T19:57:25.366422Z","widget_count":14,"widget_count_by_type":{"query_table":10,"treemap":1,"toplist":3},"dashboard_quality_score":0.0}},{"id":"884-jxj-d7f","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Cloud + Foundry - Infrastructure Overview","teams":[],"created_at":"2024-01-04T11:25:42.564360Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-05T18:05:45.334010Z","widget_count":64,"widget_count_by_type":{"note":8,"timeseries":17,"hostmap":2,"query_value":32,"toplist":3,"query_table":2},"dashboard_quality_score":0.0}},{"id":"88m-nrr-j4c","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_shared_dashboard_returns_OK_response_1720742852 + with Profile Metrics Query","teams":[],"created_at":"2024-07-12T00:07:33.291059Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-07-12T00:07:33.291059Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"89p-5x9-mfp","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T04:09:45.848591Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T04:09:45.848591Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"8d7-qz3-urj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771128419 + with Profile Metrics Query","teams":[],"created_at":"2026-02-15T04:06:59.945411Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T04:06:59.945411Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24614257113158403}},{"id":"8ev-2hz-9yh","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1771364854 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T21:47:35.065546Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T21:47:35.065546Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25483671557130294}},{"id":"8fj-gzg-78v","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1770932854 + with Profile Metrics Query","teams":[],"created_at":"2026-02-12T21:47:35.023675Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-12T21:47:35.023675Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23895129736491214}},{"id":"8mr-z8r-xaq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog + API Clients CI","teams":[],"created_at":"2021-05-14T14:17:22.284588Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-14T14:17:22.284588Z","widget_count":10,"widget_count_by_type":{"manage_status":1,"note":3,"timeseries":3,"toplist":3},"dashboard_quality_score":0.0}},{"id":"8ny-iwn-ira","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardEventTimeline-local-1776820257","teams":[],"created_at":"2026-04-22T01:11:00.774052Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-04-22T01:11:00.774052Z","widget_count":1,"widget_count_by_type":{"event_timeline":1},"dashboard_quality_score":0.19910023668490762}},{"id":"8qn-sx4-6py","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-30T18:57:16.337700Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-30T18:57:16.337700Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"8r3-fr7-g8h","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-03T11:06:05.600888Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-03T18:00:35.762592Z","widget_count":3,"widget_count_by_type":{"hostmap":1,"timeseries":1,"toplist":1},"dashboard_quality_score":0.0}},{"id":"8rp-qrc-d72","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Java-Create_a_new_dashboard_with_geomap_widget-1737861024","teams":[],"created_at":"2025-01-26T03:10:24.707218Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-26T03:10:24.707218Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"8rq-w48-cav","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response-1770981477 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T11:17:57.935448Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T11:17:57.935448Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24073924924663315}},{"id":"8v6-29d-g7r","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Timeboard + Dashboard 1769733","teams":[],"created_at":"2024-10-04T18:49:59.050042Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-04T18:49:59.050042Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"8va-as3-xfj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771099619 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T20:06:59.844113Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T20:06:59.844113Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24508353962835971}},{"id":"8vg-n3m-t2r","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog''s + Dashboard Mon, Sep 18, 1:11:53 pm (cloned)","teams":[],"created_at":"2023-10-13T14:28:19.062400Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-13T14:28:19.062400Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"8w6-777-dbc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-03-03T15:12:52.825402Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-03T15:12:52.825402Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"8wn-wbp-bpe","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771243619 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T12:06:59.843565Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T12:06:59.843565Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2503786784969048}},{"id":"8yn-6s7-pue","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T01:34:46.545176Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T01:34:46.545176Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"8z4-u8g-ecy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771200419 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T00:06:59.836148Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T00:06:59.836148Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24879013655743737}},{"id":"92z-j9h-rpi","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1770745650 + with Profile Metrics Query","teams":[],"created_at":"2026-02-10T17:47:31.175796Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-10T17:47:31.175796Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23206747531514346}},{"id":"96c-d6b-txk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771134451 + with Profile Metrics Query","teams":[],"created_at":"2026-02-15T05:47:32.238314Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T05:47:32.238314Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24636438938580169}},{"id":"986-sdj-7f5","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1770947257 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T01:47:37.813715Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T01:47:37.813715Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2394809138477331}},{"id":"998-r9i-nmq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1770889657 + with Profile Metrics Query","teams":[],"created_at":"2026-02-12T09:47:37.810139Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-12T09:47:37.810139Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23736285816064762}},{"id":"9bz-xsh-sd4","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1770976054 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T09:47:35.350772Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T09:47:35.350772Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24053985105860365}},{"id":"9cb-ici-wh9","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1770788857 + with Profile Metrics Query","teams":[],"created_at":"2026-02-11T05:47:37.728846Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-11T05:47:37.728846Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2336562579490677}},{"id":"9dy-6d6-92u","type":"dashboards-usages","attributes":{"org_id":321813,"title":"KubeVirt + Overview (DEV)","teams":[],"created_at":"2025-01-07T07:17:49.547882Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":10,"viewed_at":"2025-01-07T15:05:57.088000Z","viewer":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":10,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2025-01-07T07:18:50.881143Z","widget_count":48,"widget_count_by_type":{"group":6,"note":1,"query_value":4,"timeseries":31,"query_table":2,"toplist":4},"dashboard_quality_score":0.0}},{"id":"9fh-bsk-dez","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-01T06:21:51.929267Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-01T06:21:51.929267Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"9gp-yca-ewc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-07-03T05:06:40.070179Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-07-03T05:06:40.070179Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"9gw-nvp-fv8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:16:01.442667Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:16:01.442667Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.0}},{"id":"9hv-ptz-8ca","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1770846451 + with Profile Metrics Query","teams":[],"created_at":"2026-02-11T21:47:31.833721Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-11T21:47:31.833721Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23577409672987026}},{"id":"9j7-b7g-fmp","type":"dashboards-usages","attributes":{"org_id":321813,"title":"new_title","teams":[],"created_at":"2023-07-07T17:12:20.570681Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-07T17:12:21.707927Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"9km-gj8-2rj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Hippolyte''s + Screenboard Fri, Apr 16, 10:20:54 am","teams":[],"created_at":"2021-04-16T08:20:54.758861Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-16T08:21:08.649752Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"9kx-z8g-k6m","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1770867140 + with Profile Metrics Query","teams":[],"created_at":"2026-02-12T03:32:20.633759Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-12T03:32:20.633759Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23653486110224511}},{"id":"9nh-zpi-6qr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1770904054 + with Profile Metrics Query","teams":[],"created_at":"2026-02-12T13:47:35.018170Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-12T13:47:35.018170Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23789226938313285}},{"id":"9qq-fww-7dt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_event_stream_list_stream_widget_1736259735 + with list_stream widget","teams":[],"created_at":"2025-01-07T14:22:16.267384Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-07T14:22:16.267384Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"9ra-4tp-6x8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-08T22:30:44.267214Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-08T22:30:44.267214Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"9re-h8a-8tw","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardStyle-local-1773413743","teams":[],"created_at":"2026-03-13T14:55:46.971416Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-03-13T14:55:46.971416Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.3301781545272053}},{"id":"9td-t9c-kk7","type":"dashboards-usages","attributes":{"org_id":321813,"title":"VMware + vSphere - Overview","teams":[],"created_at":"2024-01-17T14:04:12.968245Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-17T16:29:07.018541Z","widget_count":22,"widget_count_by_type":{"image":1,"event_stream":1,"toplist":5,"timeseries":6,"note":3,"query_value":5,"check_status":1},"dashboard_quality_score":0.0}},{"id":"9tw-t3j-j2j","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:55:33.097538Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:55:33.097538Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"9wr-ifb-ks3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Dashboard + for testing","teams":[],"created_at":"2024-06-28T14:32:31.419746Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-28T14:32:31.419746Z","widget_count":2,"widget_count_by_type":{"timeseries":1,"sunburst":1},"dashboard_quality_score":0.0}},{"id":"9ze-x5d-4uk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-10-02T10:21:50.272937Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-10-02T10:21:50.272937Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"a2m-4ke-pvn","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771350450 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T17:47:31.256739Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T17:47:31.256739Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2543070616237209}},{"id":"a4r-ixp-f77","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Send_shared_dashboard_invitation_email_returns_OK_response-1770981467 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T11:17:47.463943Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T11:17:47.463943Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24073886418893023}},{"id":"aaq-h42-uug","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771292851 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T01:47:32.150956Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T01:47:32.150956Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2521890389500456}},{"id":"ab7-eca-ywv","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771206450 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T01:47:31.251500Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T01:47:31.251500Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2490119225420613}},{"id":"anz-4xk-5rd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1771163254 + with Profile Metrics Query","teams":[],"created_at":"2026-02-15T13:47:35.016746Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T13:47:35.016746Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24742351933022425}},{"id":"arc-fsp-y6c","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771364854 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T21:47:34.823663Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T21:47:34.823663Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25483670667453295}},{"id":"asp-qkq-xha","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T22:47:56.046241Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T22:53:05.322597Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"asx-682-bd2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1771019254 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T21:47:35.043844Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T21:47:35.043844Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24212838143757}},{"id":"av3-b6t-5d4","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1771120057 + with Profile Metrics Query","teams":[],"created_at":"2026-02-15T01:47:37.800815Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T01:47:37.800815Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24583508003852905}},{"id":"axt-yuk-b8k","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771186019 + with Profile Metrics Query","teams":[],"created_at":"2026-02-15T20:06:59.834652Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T20:06:59.834652Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2482606226118164}},{"id":"b2p-ixy-wbd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-09-01T02:22:19.767227Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-01T02:22:19.767227Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"b2x-2d8-smj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"vsphere + test","teams":[],"created_at":"2023-11-15T14:29:57.863141Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-17T15:09:09.324288Z","widget_count":10,"widget_count_by_type":{"note":2,"timeseries":8},"dashboard_quality_score":0.0}},{"id":"b3e-rar-7dg","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1771249657 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T13:47:37.710012Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T13:47:37.710012Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2506007016993433}},{"id":"b6n-8j5-2iz","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Cloud + Foundry - Overview (cloned) (cloned)","teams":[],"created_at":"2023-09-26T09:00:00.247208Z","author":{"id":"2475411","name":"Noueman + Khalikine","handle":"noueman.khalikine@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-05T14:50:19.276985Z","widget_count":42,"widget_count_by_type":{"image":1,"note":5,"hostmap":1,"timeseries":9,"query_value":21,"heatmap":2,"toplist":3},"dashboard_quality_score":0.0}},{"id":"b6n-d8r-7em","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OSLO: + splunk LB ","teams":[],"created_at":"2021-05-03T13:03:46.217614Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-03T13:03:46.217614Z","widget_count":12,"widget_count_by_type":{"note":3,"slo":1,"timeseries":8},"dashboard_quality_score":0.0}},{"id":"b8u-q5n-6xn","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1770766340 + with Profile Metrics Query","teams":[],"created_at":"2026-02-10T23:32:20.553044Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-10T23:32:20.553044Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23282826091077408}},{"id":"b9v-vd2-fq2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Etiennes + Dashboard Tue, Mar 18, 3:56:32 pm","teams":[],"created_at":"2025-03-18T14:56:32.569828Z","author":{"id":"21181844","name":"Etienne + Philippe Carriere","handle":"etienne.carriere@datadoghq.com","is_disabled":false},"total_views":1,"viewed_at":"2025-03-18T14:56:32.743000Z","viewer":{"id":"21181844","name":"Etienne + Philippe Carriere","handle":"etienne.carriere@datadoghq.com","is_disabled":false},"total_views_by_type":{"embed":0,"in_app":1,"public":0,"shared":0,"api":0,"unknown":0},"edited_at":"2025-03-18T14:57:27.767981Z","widget_count":1,"widget_count_by_type":{"query_value":1},"dashboard_quality_score":0.0}},{"id":"ba4-5j6-8be","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771324708 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T10:38:29.056240Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T10:38:29.056240Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25336047463015454}},{"id":"bby-apf-qxh","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Get_a_shared_dashboard_returns_OK_response-1770981464 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T11:17:44.522761Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T11:17:44.522761Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24073875603551292}},{"id":"bcy-i9m-yk2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-03-26T09:52:25.783725Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-26T09:52:25.783725Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"bde-dby-we2","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1770932850 + with Profile Metrics Query","teams":[],"created_at":"2026-02-12T21:47:31.228195Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-12T21:47:31.228195Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2389511577953478}},{"id":"bgf-jzg-b7a","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion] (shanel clone)","teams":[],"created_at":"2024-06-06T17:13:17.485112Z","author":{"id":"5620636","name":"Shanel + Huang","handle":"shanel.huang@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-06-06T17:28:16.789541Z","widget_count":156,"widget_count_by_type":{"group":11,"note":28,"check_status":8,"query_value":59,"query_table":24,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"bgp-uee-rt3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-03-03T15:12:51.418778Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-03T15:12:51.418778Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"bjz-fmp-fv7","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1770774451 + with Profile Metrics Query","teams":[],"created_at":"2026-02-11T01:47:32.146629Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-11T01:47:32.146629Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23312653878975642}},{"id":"bpc-yw5-2ai","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2024-08-11T05:06:09.509411Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-11T05:06:09.509411Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"bpj-ytu-fpt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-09-12T15:46:41.035816Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-12T15:48:05.847943Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"bru-u6k-rjq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Wisdom","teams":[],"created_at":"2021-12-15T14:39:24.510324Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-12-15T16:54:32.046189Z","widget_count":14,"widget_count_by_type":{"note":2,"timeseries":12},"dashboard_quality_score":0.0}},{"id":"brz-7z3-9w7","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771027619 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T00:06:59.982674Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T00:06:59.982674Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2424359752760392}},{"id":"bvm-3qi-iuq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1771393654 + with Profile Metrics Query","teams":[],"created_at":"2026-02-18T05:47:35.059151Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-18T05:47:35.059151Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25589574311027136}},{"id":"byj-yvx-u34","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardTopologyMap-local-1772643592","teams":[],"created_at":"2026-03-04T16:59:55.987040Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-03-04T16:59:55.987040Z","widget_count":1,"widget_count_by_type":{"topology_map":1},"dashboard_quality_score":0.4024777576291846}},{"id":"c5w-bu2-9tj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardRbac_createRbac-local-1774284510","teams":[],"created_at":"2026-03-23T16:48:34.042558Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-03-23T16:48:34.042558Z","widget_count":1,"widget_count_by_type":{"note":1},"dashboard_quality_score":0.15833784709532417}},{"id":"c5z-eix-jck","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_a_toplist_widget_with_stacked_type_and_no_legend_specified_1742496578","teams":[],"created_at":"2025-03-20T18:49:39.343102Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-20T18:49:39.343102Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"c7v-rr4-syc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1771048057 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T05:47:37.791536Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T05:47:37.791536Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2431875102514791}},{"id":"ce2-rip-h9m","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771235250 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T09:47:31.226370Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T09:47:31.226370Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2500709493940407}},{"id":"cf8-ifs-4vf","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Sherzod''s + Dashboard Wed, Dec 20, 10:34:03 am","teams":[],"created_at":"2023-12-20T15:34:03.307486Z","author":{"id":"1725336","name":"Sherzod + Karimov","handle":"sherzod.karimov@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-20T15:34:03.307486Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"ch3-ufm-3r3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1771278457 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T21:47:37.708347Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T21:47:37.708347Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2516597294145297}},{"id":"chp-364-vkw","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Send_shared_dashboard_invitation_email_returns_OK_response-1770809020 + with Profile Metrics Query","teams":[],"created_at":"2026-02-11T11:23:40.360996Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-11T11:23:40.360996Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23439767417939056}},{"id":"cmr-azj-aw6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-13T12:31:40.386452Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-13T12:31:40.386452Z","widget_count":2,"widget_count_by_type":{"toplist":2},"dashboard_quality_score":0.0}},{"id":"cpe-53e-zpe","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Update_a_shared_dashboard_returns_OK_response-1770895295 + with Profile Metrics Query","teams":[],"created_at":"2026-02-12T11:21:35.806052Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-12T11:21:35.806052Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23757017740340938}},{"id":"cph-7er-div","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771379251 + with Profile Metrics Query","teams":[],"created_at":"2026-02-18T01:47:32.093932Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-18T01:47:32.093932Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2553661201844489}},{"id":"cqe-tb8-kag","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1770881540 + with Profile Metrics Query","teams":[],"created_at":"2026-02-12T07:32:20.535221Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-12T07:32:20.535221Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23706437136494196}},{"id":"cw4-irn-n79","type":"dashboards-usages","attributes":{"org_id":321813,"title":"{{uniq}}","teams":[],"created_at":"2024-09-06T21:55:02.601652Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-06T21:55:02.601652Z","widget_count":1,"widget_count_by_type":{"toplist":1},"dashboard_quality_score":0.0}},{"id":"cx2-6g6-mni","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_timeseries_widget_with_legacy_live_span_time_format_1739376942 + with legacy live span time","teams":[],"created_at":"2025-02-12T16:15:43.276834Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-12T16:15:43.276834Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"cxr-rw5-dfb","type":"dashboards-usages","attributes":{"org_id":321813,"title":"frog''s + Dashboard Wed, Oct 11, 2:07:21 pm","teams":[],"created_at":"2023-10-11T18:07:21.856517Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-10-11T20:32:00.487697Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"d27-b4r-765","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Update_a_shared_dashboard_returns_OK_response-1771240889 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T11:21:29.190827Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T11:21:29.190827Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2502782674825783}},{"id":"d44-daj-rt3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1771235254 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T09:47:35.291802Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T09:47:35.291802Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2500710988865427}},{"id":"d4c-zbf-ehz","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771332545 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T12:49:05.720282Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T12:49:05.720282Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2536486428542805}},{"id":"d9k-7wu-vwn","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardTabUpdate-local-1774284040","teams":[],"created_at":"2026-03-23T16:40:44.085796Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-03-23T16:40:53.238271Z","widget_count":3,"widget_count_by_type":{"note":3},"dashboard_quality_score":0.15833043961847454}},{"id":"d9n-2k5-rjr","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771120050 + with Profile Metrics Query","teams":[],"created_at":"2026-02-15T01:47:31.229462Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T01:47:31.229462Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24583483839549952}},{"id":"dc4-sn4-x3c","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771307251 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T05:47:32.139096Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T05:47:32.139096Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2527185523998893}},{"id":"dea-tup-asp","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-01-24T17:57:50.017145Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-24T17:57:50.017145Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"deh-2pa-jv8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Hippolyte''s + Timeboard Wed, Mar 3, 10:57:28 am","teams":[],"created_at":"2021-03-03T09:57:28.304302Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-03-03T09:59:37.861240Z","widget_count":2,"widget_count_by_type":{"timeseries":2},"dashboard_quality_score":0.0}},{"id":"dep-fr9-h4z","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771214819 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T04:06:59.939941Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T04:06:59.939941Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.249319654258522}},{"id":"dgv-rzf-sdg","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771319423 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T09:10:23.922075Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T09:10:23.922075Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25316613074272637}},{"id":"dis-ra2-zyk","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1770918454 + with Profile Metrics Query","teams":[],"created_at":"2026-02-12T17:47:35.362355Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-12T17:47:35.362355Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23842179592467166}},{"id":"dkd-m4y-nfc","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2022-07-29T16:45:28.934525Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-07-29T16:45:31.392137Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"dmj-ttd-6fy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Send_shared_dashboard_invitation_email_returns_OK_response-1771327303 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T11:21:43.612738Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T11:21:43.612738Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2534558811347179}},{"id":"dnm-hvh-9hw","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771301219 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T04:06:59.854762Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T04:06:59.854762Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2524967344594881}},{"id":"dvv-i5b-zbn","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion] (cloned)","teams":[],"created_at":"2024-01-08T19:23:43.013799Z","author":{"id":"6515857","name":"Candace + Shamieh","handle":"candace.shamieh@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-01-08T19:42:17.791727Z","widget_count":133,"widget_count_by_type":{"group":7,"note":29,"check_status":6,"query_value":44,"timeseries":26,"query_table":21},"dashboard_quality_score":0.0}},{"id":"dw4-m52-byx","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_logs_stream_list_stream_widget_and_storage_parameter_1733350921 + with list_stream widget","teams":[],"created_at":"2024-12-04T22:22:01.830291Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-04T22:22:01.830291Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"dwv-37t-bd6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1770846452 + with Profile Metrics Query","teams":[],"created_at":"2026-02-11T21:47:32.382782Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-11T21:47:32.382782Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23577411691558833}},{"id":"dyc-y4i-su4","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771220851 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T05:47:32.212811Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T05:47:32.212811Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24954147177652072}},{"id":"dzm-bwc-ean","type":"dashboards-usages","attributes":{"org_id":321813,"title":"ListStream","teams":[],"created_at":"2025-02-25T10:01:52.815694Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-25T10:01:52.815694Z","widget_count":1,"widget_count_by_type":{"list_stream":1},"dashboard_quality_score":0.0}},{"id":"e63-myc-uhh","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Orchestrator + Writer [EP]","teams":[],"created_at":"2022-03-29T12:23:13.061726Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-03-29T12:23:13.061726Z","widget_count":57,"widget_count_by_type":{"group":7,"timeseries":47,"sunburst":3},"dashboard_quality_score":0.0}},{"id":"e7c-akg-fbj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response-1771327313 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T11:21:53.347737Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T11:21:53.347737Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25345623910756404}},{"id":"e7w-ted-kp5","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-07-07T19:50:57.927100Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-07-07T19:50:58.454696Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"e84-h6q-8ru","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2022-02-03T14:05:45.526436Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-02-03T14:05:47.627593Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"e88-itr-s9c","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardFreeText_import-local-1738715031","teams":[],"created_at":"2025-02-05T00:23:56.182926Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-02-05T00:23:56.182926Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"e8c-sk3-j9y","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-03-14T02:11:46.227958Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-14T02:11:46.227958Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"eg4-nui-f7r","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-09T16:11:30.640663Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-09T16:11:31.171270Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"egd-5vg-rac","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-01-10T14:20:28.977761Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-10T14:20:29.512718Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"ehj-axw-7z7","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Ordered + Layout Dashboard","teams":[],"created_at":"2024-09-12T14:51:18.428821Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-09-12T15:21:55.042874Z","widget_count":7,"widget_count_by_type":{"scatterplot":1,"timeseries":1,"toplist":1,"group":1,"note":1,"alert_graph":1,"slo":1},"dashboard_quality_score":0.0}},{"id":"ekk-7pk-gs8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1771192054 + with Profile Metrics Query","teams":[],"created_at":"2026-02-15T21:47:34.995462Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T21:47:34.995462Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2484825463212602}},{"id":"em8-i32-hk5","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2026-04-07T14:54:38.987154Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-04-07T14:54:40.849696Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.1790613361492745}},{"id":"eq3-r74-a85","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2023-11-02T02:11:27.014458Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-02T02:11:27.014458Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"eqh-5b2-49v","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1771350454 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T17:47:35.047347Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T17:47:35.047347Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25430720100682513}},{"id":"eup-drq-jnt","type":"dashboards-usages","attributes":{"org_id":321813,"title":"datadog + test","teams":[],"created_at":"2023-03-01T16:07:22.663414Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-03-01T16:07:23.517492Z","widget_count":1,"widget_count_by_type":{"image":1},"dashboard_quality_score":0.0}},{"id":"exv-de7-2iw","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1770788850 + with Profile Metrics Query","teams":[],"created_at":"2026-02-11T05:47:31.133313Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-11T05:47:31.133313Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23365601541400152}},{"id":"eyd-ivm-aaw","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771177650 + with Profile Metrics Query","teams":[],"created_at":"2026-02-15T17:47:31.208772Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T17:47:31.208772Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24795289318872427}},{"id":"ez7-i7k-kvy","type":"dashboards-usages","attributes":{"org_id":321813,"title":"tf-TestAccDatadogDashboardLogStream-local-1737547858","teams":[],"created_at":"2025-01-22T12:11:02.505903Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-22T12:11:02.505903Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"f2n-g2w-p8k","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1770838340 + with Profile Metrics Query","teams":[],"created_at":"2026-02-11T19:32:20.700785Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-11T19:32:20.700785Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23547583578409417}},{"id":"f3n-m8x-cyd","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1771148854 + with Profile Metrics Query","teams":[],"created_at":"2026-02-15T09:47:35.020282Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T09:47:35.020282Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24689400556686958}},{"id":"f47-qxr-zry","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Merging + Tracking","teams":[],"created_at":"2024-08-29T15:44:56.266108Z","author":{"id":"7557262","name":"Anika + Maskara","handle":"anika.maskara@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-08-29T15:44:56.266108Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"f4a-76m-nbn","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Hippolyte''s + Screenboard Fri, Apr 16, 10:20:54 am","teams":[],"created_at":"2021-04-16T08:27:11.505665Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-04-16T08:49:08.310691Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"f4q-d9c-2nj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Datadog + API Clients CI","teams":[],"created_at":"2021-05-11T14:44:24.984417Z","author":{"id":"1379828","name":"Hippolyte + Henry","handle":"hippolyte.henry@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2021-05-11T14:44:24.984417Z","widget_count":10,"widget_count_by_type":{"manage_status":1,"note":3,"timeseries":3,"toplist":3},"dashboard_quality_score":0.0}},{"id":"f59-6bj-c7p","type":"dashboards-usages","attributes":{"org_id":321813,"title":"[corpit] + Iroh License Check Dashboard","teams":[],"created_at":"2023-01-30T11:34:18.574271Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-01-30T11:34:30.591612Z","widget_count":57,"widget_count_by_type":{"query_value":28,"timeseries":11,"image":12,"list_stream":1,"toplist":2,"note":3},"dashboard_quality_score":0.0}},{"id":"f5q-i7e-ewj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"jeffallen + - pcf billing test","teams":[],"created_at":"2022-05-20T20:30:30.729505Z","author":{"id":"4053606","name":"Datadog + Support","handle":"support-ddintegrationtests321813-3920545","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2022-06-09T21:01:57.752118Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.0}},{"id":"f8a-ji7-qwq","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Send_shared_dashboard_invitation_email_returns_OK_response-1771240880 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T11:21:20.340141Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T11:21:20.340141Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25027794202446035}},{"id":"fap-y2h-r3r","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771393650 + with Profile Metrics Query","teams":[],"created_at":"2026-02-18T05:47:31.269914Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-18T05:47:31.269914Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.255895603769782}},{"id":"fbk-p62-su3","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_returns_OK_response_1770961657 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T05:47:37.800370Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T05:47:37.800370Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.240010427239676}},{"id":"ffm-526-xz6","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1771062451 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T09:47:32.260690Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T09:47:32.260690Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24371676510875606}},{"id":"fha-aib-dfs","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Send_shared_dashboard_invitation_email_returns_OK_response_1771157219 + with Profile Metrics Query","teams":[],"created_at":"2026-02-15T12:06:59.841448Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T12:06:59.841448Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24720153942999235}},{"id":"fhq-aq5-4nu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_a_shared_dashboard_returns_OK_response_1770947251 + with Profile Metrics Query","teams":[],"created_at":"2026-02-13T01:47:32.452373Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-13T01:47:32.452373Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23948066104597981}},{"id":"fim-fgh-t55","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Create_a_new_dashboard_with_run_workflow_widget_1737023351","teams":[],"created_at":"2025-01-16T10:29:11.940056Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-01-16T10:29:11.940056Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"fny-85t-qat","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Python-Create_a_new_dashboard_with_split_graph_widget-1734399089","teams":[],"created_at":"2024-12-17T01:31:30.428183Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2024-12-17T01:31:30.428183Z","widget_count":0,"widget_count_by_type":{},"dashboard_quality_score":0.0}},{"id":"fpr-kus-ryj","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1770731250 + with Profile Metrics Query","teams":[],"created_at":"2026-02-10T13:47:31.224075Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-10T13:47:31.224075Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23153790754560338}},{"id":"frk-ke6-iy8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Test-Typescript-Get_all_invitations_for_a_shared_dashboard_returns_OK_response-1770809016 + with Profile Metrics Query","teams":[],"created_at":"2026-02-11T11:23:36.982121Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-11T11:23:36.982121Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.23439749427924528}},{"id":"fs5-ib5-p7i","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771249650 + with Profile Metrics Query","teams":[],"created_at":"2026-02-16T13:47:31.258110Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-16T13:47:31.258110Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25060040879702344}},{"id":"fst-vg2-dax","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1770803254 + with Profile Metrics Query","teams":[],"created_at":"2026-02-11T09:47:35.106620Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-11T09:47:35.106620Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.2341856197580425}},{"id":"fua-njm-8vw","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771321650 + with Profile Metrics Query","teams":[],"created_at":"2026-02-17T09:47:31.273391Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-17T09:47:31.273391Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.25324797880327277}},{"id":"fx7-fqc-mvu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"TF + Test Layout Dashboard","teams":[],"created_at":"2023-08-02T16:16:55.510850Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-08-02T16:16:55.510850Z","widget_count":1,"widget_count_by_type":{"alert_graph":1},"dashboard_quality_score":0.0}},{"id":"g3b-pak-mf9","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Update_a_shared_dashboard_with_selectable_template_vars_returns_OK_response_1771033650 + with Profile Metrics Query","teams":[],"created_at":"2026-02-14T01:47:31.232292Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-14T01:47:31.232292Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24265769951409744}},{"id":"g5y-dp6-qvu","type":"dashboards-usages","attributes":{"org_id":321813,"title":"","teams":[],"created_at":"2025-03-27T00:04:42.266863Z","author":{"id":"2320499","name":"CI + Account","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2025-03-27T00:04:42.266863Z","widget_count":1,"widget_count_by_type":{"hostmap":1},"dashboard_quality_score":0.0}},{"id":"g9c-xme-5c8","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Powerpack + Dashboard","teams":[],"created_at":"2023-09-13T20:02:37.796210Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-11-08T17:33:09.413127Z","widget_count":5,"widget_count_by_type":{"resolved_powerpack":2,"note":3},"dashboard_quality_score":0.0}},{"id":"g9d-nja-s56","type":"dashboards-usages","attributes":{"org_id":321813,"title":"OpenStack + Controller Overview [Default Microversion]","teams":[],"created_at":"2023-12-07T15:11:01.265429Z","author":{"id":"4594522","name":"Sarah + Witt","handle":"sarah.witt@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2023-12-07T15:27:24.603106Z","widget_count":124,"widget_count_by_type":{"group":7,"note":27,"check_status":6,"query_value":37,"query_table":21,"timeseries":26},"dashboard_quality_score":0.0}},{"id":"gci-4wq-yzg","type":"dashboards-usages","attributes":{"org_id":321813,"title":"Example-Get_all_invitations_for_a_shared_dashboard_returns_OK_response_1771134454 + with Profile Metrics Query","teams":[],"created_at":"2026-02-15T05:47:34.999039Z","author":{"id":"1445416","name":"frog","handle":"frog@datadoghq.com","is_disabled":false},"total_views":0,"viewed_at":null,"viewer":null,"total_views_by_type":null,"edited_at":"2026-02-15T05:47:34.999039Z","widget_count":1,"widget_count_by_type":{"timeseries":1},"dashboard_quality_score":0.24636443524598448}}],"meta":{"page":{"type":"offset_limit","offset":0,"first_offset":0,"limit":250,"prev_offset":null,"next_offset":250,"last_offset":500,"total":564}},"links":{"self":"https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bviewed_before%5D=2025-04-26T00%3A00%3A00Z","next":"https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bviewed_before%5D=2025-04-26T00%3A00%3A00Z&page[offset]=250&page[limit]=250","first":"https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bviewed_before%5D=2025-04-26T00%3A00%3A00Z&page[offset]=0&page[limit]=250","last":"https://api.datadoghq.com/api/v2/dashboards/usage?filter%5Bviewed_before%5D=2025-04-26T00%3A00%3A00Z&page[offset]=500&page[limit]=250"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/examples/v2/dashboards/ListDashboardsUsage_3889372739.rb b/examples/v2/dashboards/ListDashboardsUsage_3889372739.rb new file mode 100644 index 000000000000..876c3fad18f9 --- /dev/null +++ b/examples/v2/dashboards/ListDashboardsUsage_3889372739.rb @@ -0,0 +1,11 @@ +# Get usage stats for all dashboards with edited_before filter returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.list_dashboards_usage".to_sym] = true +end +api_instance = DatadogAPIClient::V2::DashboardsAPI.new +opts = { + filter_edited_before: "2025-04-26T00:00:00Z", +} +p api_instance.list_dashboards_usage(opts) diff --git a/examples/v2/dashboards/ListDashboardsUsage_3946782296.rb b/examples/v2/dashboards/ListDashboardsUsage_3946782296.rb new file mode 100644 index 000000000000..73b762c4f8d0 --- /dev/null +++ b/examples/v2/dashboards/ListDashboardsUsage_3946782296.rb @@ -0,0 +1,11 @@ +# Get usage stats for all dashboards with viewed_before filter returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.list_dashboards_usage".to_sym] = true +end +api_instance = DatadogAPIClient::V2::DashboardsAPI.new +opts = { + filter_viewed_before: "2025-04-26T00:00:00Z", +} +p api_instance.list_dashboards_usage(opts) diff --git a/examples/v2/dashboards/ListDashboardsUsage_4183300898.rb b/examples/v2/dashboards/ListDashboardsUsage_4183300898.rb new file mode 100644 index 000000000000..453130481b4e --- /dev/null +++ b/examples/v2/dashboards/ListDashboardsUsage_4183300898.rb @@ -0,0 +1,12 @@ +# Get usage stats for all dashboards with both filters returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.list_dashboards_usage".to_sym] = true +end +api_instance = DatadogAPIClient::V2::DashboardsAPI.new +opts = { + filter_edited_before: "2025-04-26T00:00:00Z", + filter_viewed_before: "2025-04-26T00:00:00Z", +} +p api_instance.list_dashboards_usage(opts) diff --git a/examples/v2/entity-risk-scores/GetEntityRiskScore.rb b/examples/v2/entity-risk-scores/GetEntityRiskScore.rb new file mode 100644 index 000000000000..8495db26df40 --- /dev/null +++ b/examples/v2/entity-risk-scores/GetEntityRiskScore.rb @@ -0,0 +1,8 @@ +# Get Entity Risk Score returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.get_entity_risk_score".to_sym] = true +end +api_instance = DatadogAPIClient::V2::EntityRiskScoresAPI.new +p api_instance.get_entity_risk_score("arn:aws:iam::123456789012:user/john.doe") diff --git a/examples/v2/rum-insights/QueryAggregatedLongTasks.rb b/examples/v2/rum-insights/QueryAggregatedLongTasks.rb new file mode 100644 index 000000000000..2c71b4358e3c --- /dev/null +++ b/examples/v2/rum-insights/QueryAggregatedLongTasks.rb @@ -0,0 +1,27 @@ +# Query aggregated long tasks returns "Successful response" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.query_aggregated_long_tasks".to_sym] = true +end +api_instance = DatadogAPIClient::V2::RUMInsightsAPI.new + +body = DatadogAPIClient::V2::AggregatedLongTasksRequest.new({ + data: DatadogAPIClient::V2::AggregatedLongTasksRequestData.new({ + attributes: DatadogAPIClient::V2::AggregatedLongTasksRequestAttributes.new({ + application_id: "ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b", + criteria: DatadogAPIClient::V2::AggregatedWaterfallPerformanceCriteria.new({ + max: 5.0, + metric: DatadogAPIClient::V2::AggregatedWaterfallPerformanceCriteriaMetric::LARGEST_CONTENTFUL_PAINT, + min: 2.5, + }), + filter: "@session.type:user", + from: 1762437564, + sample_size: 20, + to: 1762523964, + view_name: "/account/login(/:type)", + }), + type: DatadogAPIClient::V2::AggregatedLongTasksRequestType::AGGREGATED_LONG_TASKS, + }), +}) +p api_instance.query_aggregated_long_tasks(body) diff --git a/examples/v2/rum-insights/QueryAggregatedSignalsProblems.rb b/examples/v2/rum-insights/QueryAggregatedSignalsProblems.rb new file mode 100644 index 000000000000..f80c5996d269 --- /dev/null +++ b/examples/v2/rum-insights/QueryAggregatedSignalsProblems.rb @@ -0,0 +1,31 @@ +# Query aggregated signals and problems returns "Successful response" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.query_aggregated_signals_problems".to_sym] = true +end +api_instance = DatadogAPIClient::V2::RUMInsightsAPI.new + +body = DatadogAPIClient::V2::AggregatedSignalsProblemsRequest.new({ + data: DatadogAPIClient::V2::AggregatedSignalsProblemsRequestData.new({ + attributes: DatadogAPIClient::V2::AggregatedSignalsProblemsRequestAttributes.new({ + application_id: "ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b", + criteria: DatadogAPIClient::V2::AggregatedWaterfallPerformanceCriteria.new({ + max: 5.0, + metric: DatadogAPIClient::V2::AggregatedWaterfallPerformanceCriteriaMetric::LARGEST_CONTENTFUL_PAINT, + min: 2.5, + }), + detection_types: [ + "high_script_evaluations", + "uncompressed_resources", + ], + filter: "@session.type:user", + from: 1762437564, + sample_size: 30, + to: 1762523964, + view_name: "/account/login(/:type)", + }), + type: DatadogAPIClient::V2::AggregatedSignalsProblemsRequestType::AGGREGATED_SIGNALS_PROBLEMS, + }), +}) +p api_instance.query_aggregated_signals_problems(body) diff --git a/examples/v2/rum-insights/QueryAggregatedWaterfall.rb b/examples/v2/rum-insights/QueryAggregatedWaterfall.rb new file mode 100644 index 000000000000..74375d65bd53 --- /dev/null +++ b/examples/v2/rum-insights/QueryAggregatedWaterfall.rb @@ -0,0 +1,28 @@ +# Query aggregated waterfall returns "Successful response" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.query_aggregated_waterfall".to_sym] = true +end +api_instance = DatadogAPIClient::V2::RUMInsightsAPI.new + +body = DatadogAPIClient::V2::AggregatedWaterfallRequest.new({ + data: DatadogAPIClient::V2::AggregatedWaterfallRequestData.new({ + attributes: DatadogAPIClient::V2::AggregatedWaterfallRequestAttributes.new({ + application_id: "ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b", + criteria: DatadogAPIClient::V2::AggregatedWaterfallPerformanceCriteria.new({ + max: 5.0, + metric: DatadogAPIClient::V2::AggregatedWaterfallPerformanceCriteriaMetric::LARGEST_CONTENTFUL_PAINT, + min: 2.5, + }), + filter: "@session.type:user", + from: 1762437564, + include_global_appearance: false, + sample_size: 20, + to: 1762523964, + view_name: "/account/login(/:type)", + }), + type: DatadogAPIClient::V2::AggregatedWaterfallRequestType::AGGREGATED_WATERFALL, + }), +}) +p api_instance.query_aggregated_waterfall(body) diff --git a/examples/v2/salesforce-integration/CreateIncidentTemplate.rb b/examples/v2/salesforce-integration/CreateIncidentTemplate.rb new file mode 100644 index 000000000000..fca6f278616d --- /dev/null +++ b/examples/v2/salesforce-integration/CreateIncidentTemplate.rb @@ -0,0 +1,19 @@ +# Create a Salesforce incident template returns "CREATED" response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::SalesforceIntegrationAPI.new + +body = DatadogAPIClient::V2::SalesforceIncidentsTemplateCreateRequest.new({ + data: DatadogAPIClient::V2::SalesforceIncidentsTemplateCreateData.new({ + attributes: DatadogAPIClient::V2::SalesforceIncidentsTemplateCreateAttributes.new({ + description: "An incident was detected by Datadog monitors.", + name: "production-outage", + owner_id: "005000000000000", + priority: DatadogAPIClient::V2::SalesforceIncidentsTemplatePriority::HIGH, + salesforce_org_id: "596da4af-0563-4097-90ff-07230c3f9db3", + subject: "Datadog Incident: Production Outage", + }), + type: DatadogAPIClient::V2::SalesforceIncidentsTemplateType::SALESFORCE_INCIDENTS_INCIDENT_TEMPLATE, + }), +}) +p api_instance.create_incident_template(body) diff --git a/examples/v2/salesforce-integration/DeleteIncidentTemplate.rb b/examples/v2/salesforce-integration/DeleteIncidentTemplate.rb new file mode 100644 index 000000000000..e1b791a71075 --- /dev/null +++ b/examples/v2/salesforce-integration/DeleteIncidentTemplate.rb @@ -0,0 +1,5 @@ +# Delete a Salesforce incident template returns "OK" response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::SalesforceIntegrationAPI.new +api_instance.delete_incident_template("incident_template_id") diff --git a/examples/v2/salesforce-integration/DeleteSalesforceOrganization.rb b/examples/v2/salesforce-integration/DeleteSalesforceOrganization.rb new file mode 100644 index 000000000000..53ceaa24b48d --- /dev/null +++ b/examples/v2/salesforce-integration/DeleteSalesforceOrganization.rb @@ -0,0 +1,5 @@ +# Delete a connected Salesforce organization returns "OK" response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::SalesforceIntegrationAPI.new +api_instance.delete_salesforce_organization("salesforce_org_id") diff --git a/examples/v2/salesforce-integration/GetIncidentTemplates.rb b/examples/v2/salesforce-integration/GetIncidentTemplates.rb new file mode 100644 index 000000000000..e651cba18488 --- /dev/null +++ b/examples/v2/salesforce-integration/GetIncidentTemplates.rb @@ -0,0 +1,5 @@ +# Get all Salesforce incident templates returns "OK" response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::SalesforceIntegrationAPI.new +p api_instance.get_incident_templates() diff --git a/examples/v2/salesforce-integration/GetSalesforceOrganizations.rb b/examples/v2/salesforce-integration/GetSalesforceOrganizations.rb new file mode 100644 index 000000000000..1682efba1eda --- /dev/null +++ b/examples/v2/salesforce-integration/GetSalesforceOrganizations.rb @@ -0,0 +1,5 @@ +# Get all connected Salesforce organizations returns "OK" response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::SalesforceIntegrationAPI.new +p api_instance.get_salesforce_organizations() diff --git a/examples/v2/salesforce-integration/UpdateIncidentTemplate.rb b/examples/v2/salesforce-integration/UpdateIncidentTemplate.rb new file mode 100644 index 000000000000..def7d9e24346 --- /dev/null +++ b/examples/v2/salesforce-integration/UpdateIncidentTemplate.rb @@ -0,0 +1,20 @@ +# Update a Salesforce incident template returns "OK" response + +require "datadog_api_client" +api_instance = DatadogAPIClient::V2::SalesforceIntegrationAPI.new + +body = DatadogAPIClient::V2::SalesforceIncidentsTemplateUpdateRequest.new({ + data: DatadogAPIClient::V2::SalesforceIncidentsTemplateUpdateData.new({ + attributes: DatadogAPIClient::V2::SalesforceIncidentsTemplateUpdateAttributes.new({ + description: "An incident was detected by Datadog monitors.", + name: "production-outage", + owner_id: "005000000000000", + priority: DatadogAPIClient::V2::SalesforceIncidentsTemplatePriority::HIGH, + salesforce_org_id: "596da4af-0563-4097-90ff-07230c3f9db3", + subject: "Datadog Incident: Production Outage", + }), + id: "596da4af-0563-4097-90ff-07230c3f9db3", + type: DatadogAPIClient::V2::SalesforceIncidentsTemplateType::SALESFORCE_INCIDENTS_INCIDENT_TEMPLATE, + }), +}) +p api_instance.update_incident_template("incident_template_id", body) diff --git a/features/scenarios_model_mapping.rb b/features/scenarios_model_mapping.rb index 5f9a7353fd42..04b92a1c7f38 100644 --- a/features/scenarios_model_mapping.rb +++ b/features/scenarios_model_mapping.rb @@ -2859,6 +2859,8 @@ "v2.ListDashboardsUsage" => { "page_limit" => "Integer", "page_offset" => "Integer", + "filter_edited_before" => "String", + "filter_viewed_before" => "String", }, "v2.GetDashboardUsage" => { "dashboard_id" => "String", @@ -3491,6 +3493,19 @@ "integration_service_id" => "String", "body" => "OpsgenieServiceUpdateRequest", }, + "v2.CreateIncidentTemplate" => { + "body" => "SalesforceIncidentsTemplateCreateRequest", + }, + "v2.DeleteIncidentTemplate" => { + "incident_template_id" => "String", + }, + "v2.UpdateIncidentTemplate" => { + "incident_template_id" => "String", + "body" => "SalesforceIncidentsTemplateUpdateRequest", + }, + "v2.DeleteSalesforceOrganization" => { + "salesforce_org_id" => "String", + }, "v2.ListServiceNowAssignmentGroups" => { "instance_id" => "UUID", }, @@ -4593,6 +4608,15 @@ "metric_id" => "String", "body" => "RumMetricUpdateRequest", }, + "v2.QueryAggregatedLongTasks" => { + "body" => "AggregatedLongTasksRequest", + }, + "v2.QueryAggregatedSignalsProblems" => { + "body" => "AggregatedSignalsProblemsRequest", + }, + "v2.QueryAggregatedWaterfall" => { + "body" => "AggregatedWaterfallRequest", + }, "v2.ListRumReplayPlaylists" => { "filter_created_by_uuid" => "String", "filter_query" => "String", @@ -4762,6 +4786,9 @@ "filter_query" => "String", "entity_type" => "Array", }, + "v2.GetEntityRiskScore" => { + "entity_id" => "String", + }, "v2.ReorderScanningGroups" => { "body" => "SensitiveDataScannerConfigRequest", }, diff --git a/features/v1/hosts.feature b/features/v1/hosts.feature index 7ed533f7b20f..56257ab18440 100644 --- a/features/v1/hosts.feature +++ b/features/v1/hosts.feature @@ -9,20 +9,20 @@ Feature: Hosts And a valid "appKeyAuth" key in the system And an instance of "Hosts" API - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Get all hosts for your organization returns "Invalid Parameter Error" response Given new "ListHosts" request When the request is sent Then the response status is 400 Invalid Parameter Error - @integration-only @team:DataDog/core-index + @integration-only @team:DataDog/redapl-hosts Scenario: Get all hosts for your organization returns "OK" response Given new "ListHosts" request And request contains "filter" parameter with value "env:ci" When the request is sent Then the response status is 200 OK - @replay-only @team:DataDog/core-index + @replay-only @team:DataDog/redapl-hosts Scenario: Get all hosts with metadata deserializes successfully Given new "ListHosts" request And request contains "include_hosts_metadata" parameter with value true @@ -35,26 +35,26 @@ Feature: Hosts And the response "host_list[0].meta.agent_checks[0]" is equal to ["ntp","ntp","ntp:d884b5186b651429","OK","",""] And the response "host_list[0].meta.gohai" is equal to "{\"cpu\":{\"cache_size\":\"8192 KB\",\"cpu_cores\":\"1\",\"cpu_logical_processors\":\"1\",\"family\":\"6\",\"mhz\":\"2711.998\",\"model\":\"142\",\"model_name\":\"Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz\",\"stepping\":\"10\",\"vendor_id\":\"GenuineIntel\"},\"filesystem\":[{\"kb_size\":\"3966892\",\"mounted_on\":\"/dev\",\"name\":\"udev\"},{\"kb_size\":\"797396\",\"mounted_on\":\"/run\",\"name\":\"tmpfs\"},{\"kb_size\":\"64800356\",\"mounted_on\":\"/\",\"name\":\"/dev/mapper/vagrant--vg-root\"},{\"kb_size\":\"3986968\",\"mounted_on\":\"/dev/shm\",\"name\":\"tmpfs\"},{\"kb_size\":\"5120\",\"mounted_on\":\"/run/lock\",\"name\":\"tmpfs\"},{\"kb_size\":\"3986968\",\"mounted_on\":\"/sys/fs/cgroup\",\"name\":\"tmpfs\"},{\"kb_size\":\"488245288\",\"mounted_on\":\"/vagrant\",\"name\":\"/vagrant\"},{\"kb_size\":\"797392\",\"mounted_on\":\"/run/user/1000\",\"name\":\"tmpfs\"}],\"memory\":{\"swap_total\":\"1003516kB\",\"total\":\"7973940kB\"},\"network\":{\"interfaces\":[{\"ipv4\":\"10.0.2.15\",\"ipv4-network\":\"10.0.2.0/24\",\"ipv6\":\"fe80::a00:27ff:fec2:be11\",\"ipv6-network\":\"fe80::/64\",\"macaddress\":\"08:00:27:c2:be:11\",\"name\":\"eth0\"},{\"ipv4\":\"192.168.122.1\",\"ipv4-network\":\"192.168.122.0/24\",\"macaddress\":\"52:54:00:6f:1c:bf\",\"name\":\"virbr0\"}],\"ipaddress\":\"10.0.2.15\",\"ipaddressv6\":\"fe80::a00:27ff:fec2:be11\",\"macaddress\":\"08:00:27:c2:be:11\"},\"platform\":{\"GOOARCH\":\"amd64\",\"GOOS\":\"linux\",\"goV\":\"1.16.7\",\"hardware_platform\":\"x86_64\",\"hostname\":\"vagrant\",\"kernel_name\":\"Linux\",\"kernel_release\":\"4.15.0-29-generic\",\"kernel_version\":\"#31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018\",\"machine\":\"x86_64\",\"os\":\"GNU/Linux\",\"processor\":\"x86_64\",\"pythonV\":\"2.7.15rc1\"}}" - @skip-validation @team:DataDog/core-index + @skip-validation @team:DataDog/redapl-hosts Scenario: Get all hosts with metadata for your organization returns "OK" response Given new "ListHosts" request And request contains "include_hosts_metadata" parameter with value true When the request is sent Then the response status is 200 OK - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Get the total number of active hosts returns "Invalid Parameter Error" response Given new "GetHostTotals" request When the request is sent Then the response status is 400 Invalid Parameter Error - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Get the total number of active hosts returns "OK" response Given new "GetHostTotals" request When the request is sent Then the response status is 200 OK - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Mute a host returns "Invalid Parameter Error" response Given new "MuteHost" request And request contains "host_name" parameter from "REPLACE.ME" @@ -62,7 +62,7 @@ Feature: Hosts When the request is sent Then the response status is 400 Invalid Parameter Error - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Mute a host returns "OK" response Given new "MuteHost" request And request contains "host_name" parameter from "REPLACE.ME" @@ -70,14 +70,14 @@ Feature: Hosts When the request is sent Then the response status is 200 OK - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Unmute a host returns "Invalid Parameter Error" response Given new "UnmuteHost" request And request contains "host_name" parameter from "REPLACE.ME" When the request is sent Then the response status is 400 Invalid Parameter Error - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Unmute a host returns "OK" response Given new "UnmuteHost" request And request contains "host_name" parameter from "REPLACE.ME" diff --git a/features/v1/tags.feature b/features/v1/tags.feature index d6557ca18821..f0e8881a275d 100644 --- a/features/v1/tags.feature +++ b/features/v1/tags.feature @@ -17,7 +17,7 @@ Feature: Tags And a valid "appKeyAuth" key in the system And an instance of "Tags" API - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Add tags to a host returns "Created" response Given new "CreateHostTags" request And request contains "host_name" parameter from "REPLACE.ME" @@ -25,7 +25,7 @@ Feature: Tags When the request is sent Then the response status is 201 Created - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Add tags to a host returns "Not Found" response Given new "CreateHostTags" request And request contains "host_name" parameter from "REPLACE.ME" @@ -33,47 +33,47 @@ Feature: Tags When the request is sent Then the response status is 404 Not Found - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Get All Host Tags returns "Not Found" response Given new "ListHostTags" request When the request is sent Then the response status is 404 Not Found - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Get All Host Tags returns "OK" response Given new "ListHostTags" request When the request is sent Then the response status is 200 OK - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Get Host Tags returns "Not Found" response Given new "GetHostTags" request And request contains "host_name" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Not Found - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Get Host Tags returns "OK" response Given new "GetHostTags" request And request contains "host_name" parameter from "REPLACE.ME" When the request is sent Then the response status is 200 OK - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Remove host tags returns "Not Found" response Given new "DeleteHostTags" request And request contains "host_name" parameter from "REPLACE.ME" When the request is sent Then the response status is 404 Not Found - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Remove host tags returns "OK" response Given new "DeleteHostTags" request And request contains "host_name" parameter from "REPLACE.ME" When the request is sent Then the response status is 204 OK - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Update host tags returns "Not Found" response Given new "UpdateHostTags" request And request contains "host_name" parameter from "REPLACE.ME" @@ -81,7 +81,7 @@ Feature: Tags When the request is sent Then the response status is 404 Not Found - @generated @skip @team:DataDog/core-index + @generated @skip @team:DataDog/redapl-hosts Scenario: Update host tags returns "OK" response Given new "UpdateHostTags" request And request contains "host_name" parameter from "REPLACE.ME" diff --git a/features/v2/dashboards.feature b/features/v2/dashboards.feature index bc2c2068c944..347955175ea0 100644 --- a/features/v2/dashboards.feature +++ b/features/v2/dashboards.feature @@ -71,3 +71,31 @@ Feature: Dashboards When the request with pagination is sent Then the response status is 200 OK And the response has 590 items + + @replay-only @team:DataDog/dashboards-backend + Scenario: Get usage stats for all dashboards with both filters returns "OK" response + Given operation "ListDashboardsUsage" enabled + And new "ListDashboardsUsage" request + And request contains "filter[edited_before]" parameter with value "2025-04-26T00:00:00Z" + And request contains "filter[viewed_before]" parameter with value "2025-04-26T00:00:00Z" + When the request is sent + Then the response status is 200 OK + And the response "meta.page" has field "total" + + @replay-only @team:DataDog/dashboards-backend + Scenario: Get usage stats for all dashboards with edited_before filter returns "OK" response + Given operation "ListDashboardsUsage" enabled + And new "ListDashboardsUsage" request + And request contains "filter[edited_before]" parameter with value "2025-04-26T00:00:00Z" + When the request is sent + Then the response status is 200 OK + And the response "meta.page" has field "total" + + @replay-only @team:DataDog/dashboards-backend + Scenario: Get usage stats for all dashboards with viewed_before filter returns "OK" response + Given operation "ListDashboardsUsage" enabled + And new "ListDashboardsUsage" request + And request contains "filter[viewed_before]" parameter with value "2025-04-26T00:00:00Z" + When the request is sent + Then the response status is 200 OK + And the response "meta.page" has field "total" diff --git a/features/v2/entity_risk_scores.feature b/features/v2/entity_risk_scores.feature index f6e28ae74051..be283af2fba1 100644 --- a/features/v2/entity_risk_scores.feature +++ b/features/v2/entity_risk_scores.feature @@ -6,15 +6,41 @@ Feature: Entity Risk Scores Given a valid "apiKeyAuth" key in the system And a valid "appKeyAuth" key in the system And an instance of "EntityRiskScores" API - And operation "ListEntityRiskScores" enabled - And new "ListEntityRiskScores" request + + @generated @skip @team:DataDog/cloud-siem + Scenario: Get Entity Risk Score returns "Bad Request" response + Given operation "GetEntityRiskScore" enabled + And new "GetEntityRiskScore" request + And request contains "entity_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/cloud-siem + Scenario: Get Entity Risk Score returns "Not Found" response + Given operation "GetEntityRiskScore" enabled + And new "GetEntityRiskScore" request + And request contains "entity_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/cloud-siem + Scenario: Get Entity Risk Score returns "OK" response + Given operation "GetEntityRiskScore" enabled + And new "GetEntityRiskScore" request + And request contains "entity_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK @generated @skip @team:DataDog/cloud-siem Scenario: List Entity Risk Scores returns "Bad Request" response + Given operation "ListEntityRiskScores" enabled + And new "ListEntityRiskScores" request When the request is sent Then the response status is 400 Bad Request @generated @skip @team:DataDog/cloud-siem Scenario: List Entity Risk Scores returns "OK" response + Given operation "ListEntityRiskScores" enabled + And new "ListEntityRiskScores" request When the request is sent Then the response status is 200 OK diff --git a/features/v2/given.json b/features/v2/given.json index 63f710c0e919..097f6a07d557 100644 --- a/features/v2/given.json +++ b/features/v2/given.json @@ -698,6 +698,18 @@ "tag": "Opsgenie Integration", "operationId": "CreateOpsgenieService" }, + { + "parameters": [ + { + "name": "body", + "value": "{\n \"data\": {\n \"attributes\": {\n \"salesforce_org_id\": \"596da4af-0563-4097-90ff-07230c3f9db3\",\n \"name\": \"{{ unique }}\",\n \"subject\": \"Datadog Incident: Production Outage\",\n \"description\": \"An incident was detected by Datadog monitors.\",\n \"owner_id\": \"005000000000000\",\n \"priority\": \"High\"\n },\n \"type\": \"salesforce-incidents-incident-template\"\n }\n}" + } + ], + "step": "there is a valid \"salesforce_incidents_template\" in the system", + "key": "salesforce_incidents_template", + "tag": "Salesforce Integration", + "operationId": "CreateIncidentTemplate" + }, { "parameters": [ { diff --git a/features/v2/rum_insights.feature b/features/v2/rum_insights.feature new file mode 100644 index 000000000000..27dcc3fb5655 --- /dev/null +++ b/features/v2/rum_insights.feature @@ -0,0 +1,59 @@ +@endpoint(rum-insights) @endpoint(rum-insights-v2) +Feature: RUM Insights + Get insights into the performance of your Real User Monitoring (RUM) + applications over HTTP. See the [RUM & Session Replay + page](https://docs.datadoghq.com/real_user_monitoring/) for more + information + + Background: + Given a valid "apiKeyAuth" key in the system + And a valid "appKeyAuth" key in the system + And an instance of "RUMInsights" API + + @generated @skip @team:DataDog/rum-backend + Scenario: Query aggregated long tasks returns "Bad Request" response + Given operation "QueryAggregatedLongTasks" enabled + And new "QueryAggregatedLongTasks" request + And body with value {"data": {"attributes": {"application_id": "ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b", "criteria": {"max": 5.0, "metric": "largest_contentful_paint", "min": 2.5}, "filter": "@session.type:user", "from": 1762437564, "sample_size": 20, "to": 1762523964, "view_name": "/account/login(/:type)"}, "type": "aggregated_long_tasks"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/rum-backend + Scenario: Query aggregated long tasks returns "Successful response" response + Given operation "QueryAggregatedLongTasks" enabled + And new "QueryAggregatedLongTasks" request + And body with value {"data": {"attributes": {"application_id": "ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b", "criteria": {"max": 5.0, "metric": "largest_contentful_paint", "min": 2.5}, "filter": "@session.type:user", "from": 1762437564, "sample_size": 20, "to": 1762523964, "view_name": "/account/login(/:type)"}, "type": "aggregated_long_tasks"}} + When the request is sent + Then the response status is 201 Successful response + + @generated @skip @team:DataDog/rum-backend + Scenario: Query aggregated signals and problems returns "Bad Request" response + Given operation "QueryAggregatedSignalsProblems" enabled + And new "QueryAggregatedSignalsProblems" request + And body with value {"data": {"attributes": {"application_id": "ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b", "criteria": {"max": 5.0, "metric": "largest_contentful_paint", "min": 2.5}, "detection_types": ["high_script_evaluations", "uncompressed_resources"], "filter": "@session.type:user", "from": 1762437564, "sample_size": 30, "to": 1762523964, "view_name": "/account/login(/:type)"}, "type": "aggregated_signals_problems"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/rum-backend + Scenario: Query aggregated signals and problems returns "Successful response" response + Given operation "QueryAggregatedSignalsProblems" enabled + And new "QueryAggregatedSignalsProblems" request + And body with value {"data": {"attributes": {"application_id": "ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b", "criteria": {"max": 5.0, "metric": "largest_contentful_paint", "min": 2.5}, "detection_types": ["high_script_evaluations", "uncompressed_resources"], "filter": "@session.type:user", "from": 1762437564, "sample_size": 30, "to": 1762523964, "view_name": "/account/login(/:type)"}, "type": "aggregated_signals_problems"}} + When the request is sent + Then the response status is 201 Successful response + + @generated @skip @team:DataDog/rum-backend + Scenario: Query aggregated waterfall returns "Bad Request" response + Given operation "QueryAggregatedWaterfall" enabled + And new "QueryAggregatedWaterfall" request + And body with value {"data": {"attributes": {"application_id": "ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b", "criteria": {"max": 5.0, "metric": "largest_contentful_paint", "min": 2.5}, "filter": "@session.type:user", "from": 1762437564, "include_global_appearance": false, "sample_size": 20, "to": 1762523964, "view_name": "/account/login(/:type)"}, "type": "aggregated_waterfall"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/rum-backend + Scenario: Query aggregated waterfall returns "Successful response" response + Given operation "QueryAggregatedWaterfall" enabled + And new "QueryAggregatedWaterfall" request + And body with value {"data": {"attributes": {"application_id": "ccbc53b1-74f2-496b-bdd7-9a8fa7b7376b", "criteria": {"max": 5.0, "metric": "largest_contentful_paint", "min": 2.5}, "filter": "@session.type:user", "from": 1762437564, "include_global_appearance": false, "sample_size": 20, "to": 1762523964, "view_name": "/account/login(/:type)"}, "type": "aggregated_waterfall"}} + When the request is sent + Then the response status is 201 Successful response diff --git a/features/v2/salesforce_integration.feature b/features/v2/salesforce_integration.feature new file mode 100644 index 000000000000..63b3c068dfdd --- /dev/null +++ b/features/v2/salesforce_integration.feature @@ -0,0 +1,129 @@ +@endpoint(salesforce-integration) @endpoint(salesforce-integration-v2) +Feature: Salesforce Integration + Configure your [Datadog Salesforce + integration](https://docs.datadoghq.com/integrations/salesforce/) directly + through the Datadog API. + + Background: + Given a valid "apiKeyAuth" key in the system + And a valid "appKeyAuth" key in the system + And an instance of "SalesforceIntegration" API + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Create a Salesforce incident template returns "Bad Request" response + Given new "CreateIncidentTemplate" request + And body with value {"data": {"attributes": {"description": "An incident was detected by Datadog monitors.", "name": "production-outage", "owner_id": "005000000000000", "priority": "High", "salesforce_org_id": "596da4af-0563-4097-90ff-07230c3f9db3", "subject": "Datadog Incident: Production Outage"}, "type": "salesforce-incidents-incident-template"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Create a Salesforce incident template returns "CREATED" response + Given new "CreateIncidentTemplate" request + And body with value {"data": {"attributes": {"description": "An incident was detected by Datadog monitors.", "name": "production-outage", "owner_id": "005000000000000", "priority": "High", "salesforce_org_id": "596da4af-0563-4097-90ff-07230c3f9db3", "subject": "Datadog Incident: Production Outage"}, "type": "salesforce-incidents-incident-template"}} + When the request is sent + Then the response status is 201 CREATED + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Create a Salesforce incident template returns "Conflict" response + Given new "CreateIncidentTemplate" request + And body with value {"data": {"attributes": {"description": "An incident was detected by Datadog monitors.", "name": "production-outage", "owner_id": "005000000000000", "priority": "High", "salesforce_org_id": "596da4af-0563-4097-90ff-07230c3f9db3", "subject": "Datadog Incident: Production Outage"}, "type": "salesforce-incidents-incident-template"}} + When the request is sent + Then the response status is 409 Conflict + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Create a Salesforce incident template returns "Not Found" response + Given new "CreateIncidentTemplate" request + And body with value {"data": {"attributes": {"description": "An incident was detected by Datadog monitors.", "name": "production-outage", "owner_id": "005000000000000", "priority": "High", "salesforce_org_id": "596da4af-0563-4097-90ff-07230c3f9db3", "subject": "Datadog Incident: Production Outage"}, "type": "salesforce-incidents-incident-template"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Delete a Salesforce incident template returns "Not Found" response + Given new "DeleteIncidentTemplate" request + And request contains "incident_template_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Delete a Salesforce incident template returns "OK" response + Given new "DeleteIncidentTemplate" request + And request contains "incident_template_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 204 OK + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Delete a connected Salesforce organization returns "Bad Request" response + Given new "DeleteSalesforceOrganization" request + And request contains "salesforce_org_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Delete a connected Salesforce organization returns "Not Found" response + Given new "DeleteSalesforceOrganization" request + And request contains "salesforce_org_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Delete a connected Salesforce organization returns "OK" response + Given new "DeleteSalesforceOrganization" request + And request contains "salesforce_org_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 204 OK + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Get all Salesforce incident templates returns "OK" response + Given new "GetIncidentTemplates" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Get all connected Salesforce organizations returns "Bad Request" response + Given new "GetSalesforceOrganizations" request + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Get all connected Salesforce organizations returns "Not Found" response + Given new "GetSalesforceOrganizations" request + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Get all connected Salesforce organizations returns "OK" response + Given new "GetSalesforceOrganizations" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Update a Salesforce incident template returns "Bad Request" response + Given new "UpdateIncidentTemplate" request + And request contains "incident_template_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"description": "An incident was detected by Datadog monitors.", "name": "production-outage", "owner_id": "005000000000000", "priority": "High", "salesforce_org_id": "596da4af-0563-4097-90ff-07230c3f9db3", "subject": "Datadog Incident: Production Outage"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "salesforce-incidents-incident-template"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Update a Salesforce incident template returns "Conflict" response + Given new "UpdateIncidentTemplate" request + And request contains "incident_template_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"description": "An incident was detected by Datadog monitors.", "name": "production-outage", "owner_id": "005000000000000", "priority": "High", "salesforce_org_id": "596da4af-0563-4097-90ff-07230c3f9db3", "subject": "Datadog Incident: Production Outage"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "salesforce-incidents-incident-template"}} + When the request is sent + Then the response status is 409 Conflict + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Update a Salesforce incident template returns "Not Found" response + Given new "UpdateIncidentTemplate" request + And request contains "incident_template_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"description": "An incident was detected by Datadog monitors.", "name": "production-outage", "owner_id": "005000000000000", "priority": "High", "salesforce_org_id": "596da4af-0563-4097-90ff-07230c3f9db3", "subject": "Datadog Incident: Production Outage"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "salesforce-incidents-incident-template"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:Datadog/collaboration-integrations + Scenario: Update a Salesforce incident template returns "OK" response + Given new "UpdateIncidentTemplate" request + And request contains "incident_template_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"description": "An incident was detected by Datadog monitors.", "name": "production-outage", "owner_id": "005000000000000", "priority": "High", "salesforce_org_id": "596da4af-0563-4097-90ff-07230c3f9db3", "subject": "Datadog Incident: Production Outage"}, "id": "596da4af-0563-4097-90ff-07230c3f9db3", "type": "salesforce-incidents-incident-template"}} + When the request is sent + Then the response status is 200 OK diff --git a/features/v2/undo.json b/features/v2/undo.json index 3e68f5928426..07db45886a9f 100644 --- a/features/v2/undo.json +++ b/features/v2/undo.json @@ -3524,6 +3524,49 @@ "type": "idempotent" } }, + "GetIncidentTemplates": { + "tag": "Salesforce Integration", + "undo": { + "type": "safe" + } + }, + "CreateIncidentTemplate": { + "tag": "Salesforce Integration", + "undo": { + "operationId": "DeleteIncidentTemplate", + "parameters": [ + { + "name": "incident_template_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteIncidentTemplate": { + "tag": "Salesforce Integration", + "undo": { + "type": "idempotent" + } + }, + "UpdateIncidentTemplate": { + "tag": "Salesforce Integration", + "undo": { + "type": "idempotent" + } + }, + "GetSalesforceOrganizations": { + "tag": "Salesforce Integration", + "undo": { + "type": "safe" + } + }, + "DeleteSalesforceOrganization": { + "tag": "Salesforce Integration", + "undo": { + "type": "idempotent" + } + }, "ListServiceNowAssignmentGroups": { "tag": "ServiceNow Integration", "undo": { @@ -6108,6 +6151,24 @@ "type": "safe" } }, + "QueryAggregatedLongTasks": { + "tag": "RUM Insights", + "undo": { + "type": "safe" + } + }, + "QueryAggregatedSignalsProblems": { + "tag": "RUM Insights", + "undo": { + "type": "safe" + } + }, + "QueryAggregatedWaterfall": { + "tag": "RUM Insights", + "undo": { + "type": "safe" + } + }, "ListRumReplayPlaylists": { "tag": "Rum Replay Playlists", "undo": { @@ -6335,6 +6396,12 @@ "type": "safe" } }, + "GetEntityRiskScore": { + "tag": "Entity Risk Scores", + "undo": { + "type": "safe" + } + }, "DownloadCloudWorkloadPolicyFile": { "tag": "CSM Threats", "undo": { diff --git a/lib/datadog_api_client/configuration.rb b/lib/datadog_api_client/configuration.rb index eeeec9db856f..42fbfd24dcc9 100644 --- a/lib/datadog_api_client/configuration.rb +++ b/lib/datadog_api_client/configuration.rb @@ -567,7 +567,11 @@ def initialize "v2.update_connection": false, "v2.get_pruned_trace_by_id": false, "v2.get_trace_by_id": false, + "v2.query_aggregated_long_tasks": false, + "v2.query_aggregated_signals_problems": false, + "v2.query_aggregated_waterfall": false, "v2.create_scorecard_outcomes_batch": false, + "v2.get_entity_risk_score": false, "v2.list_entity_risk_scores": false, "v2.create_incident_service": false, "v2.delete_incident_service": false, diff --git a/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index 4c22cc490df5..798974113cbd 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -1166,6 +1166,39 @@ def overrides "v2.active_billing_dimensions_type" => "ActiveBillingDimensionsType", "v2.add_member_team_request" => "AddMemberTeamRequest", "v2.advisory" => "Advisory", + "v2.aggregated_high_frozen_frame_rate" => "AggregatedHighFrozenFrameRate", + "v2.aggregated_high_script_eval" => "AggregatedHighScriptEval", + "v2.aggregated_long_tasks_by_invoker_type" => "AggregatedLongTasksByInvokerType", + "v2.aggregated_long_tasks_request" => "AggregatedLongTasksRequest", + "v2.aggregated_long_tasks_request_attributes" => "AggregatedLongTasksRequestAttributes", + "v2.aggregated_long_tasks_request_data" => "AggregatedLongTasksRequestData", + "v2.aggregated_long_tasks_request_type" => "AggregatedLongTasksRequestType", + "v2.aggregated_long_tasks_response" => "AggregatedLongTasksResponse", + "v2.aggregated_long_tasks_response_attributes" => "AggregatedLongTasksResponseAttributes", + "v2.aggregated_long_tasks_response_data" => "AggregatedLongTasksResponseData", + "v2.aggregated_low_cache_hit_rate" => "AggregatedLowCacheHitRate", + "v2.aggregated_mobile_scroll_friction" => "AggregatedMobileScrollFriction", + "v2.aggregated_resource" => "AggregatedResource", + "v2.aggregated_resource_timing_breakdown" => "AggregatedResourceTimingBreakdown", + "v2.aggregated_signals_problems_request" => "AggregatedSignalsProblemsRequest", + "v2.aggregated_signals_problems_request_attributes" => "AggregatedSignalsProblemsRequestAttributes", + "v2.aggregated_signals_problems_request_data" => "AggregatedSignalsProblemsRequestData", + "v2.aggregated_signals_problems_request_type" => "AggregatedSignalsProblemsRequestType", + "v2.aggregated_signals_problems_response" => "AggregatedSignalsProblemsResponse", + "v2.aggregated_signals_problems_response_attributes" => "AggregatedSignalsProblemsResponseAttributes", + "v2.aggregated_signals_problems_response_data" => "AggregatedSignalsProblemsResponseData", + "v2.aggregated_slow_fcp_high_bytes" => "AggregatedSlowFCPHighBytes", + "v2.aggregated_slow_interaction_long_task" => "AggregatedSlowInteractionLongTask", + "v2.aggregated_uncompressed_resource" => "AggregatedUncompressedResource", + "v2.aggregated_waterfall_performance_criteria" => "AggregatedWaterfallPerformanceCriteria", + "v2.aggregated_waterfall_performance_criteria_metric" => "AggregatedWaterfallPerformanceCriteriaMetric", + "v2.aggregated_waterfall_request" => "AggregatedWaterfallRequest", + "v2.aggregated_waterfall_request_attributes" => "AggregatedWaterfallRequestAttributes", + "v2.aggregated_waterfall_request_data" => "AggregatedWaterfallRequestData", + "v2.aggregated_waterfall_request_type" => "AggregatedWaterfallRequestType", + "v2.aggregated_waterfall_response" => "AggregatedWaterfallResponse", + "v2.aggregated_waterfall_response_attributes" => "AggregatedWaterfallResponseAttributes", + "v2.aggregated_waterfall_response_data" => "AggregatedWaterfallResponseData", "v2.ai_custom_rule_data_type" => "AiCustomRuleDataType", "v2.ai_custom_rule_item" => "AiCustomRuleItem", "v2.ai_custom_rule_request" => "AiCustomRuleRequest", @@ -4191,6 +4224,8 @@ def overrides "v2.logs_storage_tier" => "LogsStorageTier", "v2.logs_warning" => "LogsWarning", "v2.log_type" => "LogType", + "v2.long_task_metric_stats" => "LongTaskMetricStats", + "v2.long_task_stats_per_view" => "LongTaskStatsPerView", "v2.maintenance" => "Maintenance", "v2.maintenance_array" => "MaintenanceArray", "v2.maintenance_data" => "MaintenanceData", @@ -5586,6 +5621,22 @@ def overrides "v2.run_historical_job_request_attributes" => "RunHistoricalJobRequestAttributes", "v2.run_historical_job_request_data" => "RunHistoricalJobRequestData", "v2.run_historical_job_request_data_type" => "RunHistoricalJobRequestDataType", + "v2.salesforce_incidents_organization_response_attributes" => "SalesforceIncidentsOrganizationResponseAttributes", + "v2.salesforce_incidents_organization_response_data" => "SalesforceIncidentsOrganizationResponseData", + "v2.salesforce_incidents_organizations_response" => "SalesforceIncidentsOrganizationsResponse", + "v2.salesforce_incidents_organization_type" => "SalesforceIncidentsOrganizationType", + "v2.salesforce_incidents_template_create_attributes" => "SalesforceIncidentsTemplateCreateAttributes", + "v2.salesforce_incidents_template_create_data" => "SalesforceIncidentsTemplateCreateData", + "v2.salesforce_incidents_template_create_request" => "SalesforceIncidentsTemplateCreateRequest", + "v2.salesforce_incidents_template_priority" => "SalesforceIncidentsTemplatePriority", + "v2.salesforce_incidents_template_response" => "SalesforceIncidentsTemplateResponse", + "v2.salesforce_incidents_template_response_attributes" => "SalesforceIncidentsTemplateResponseAttributes", + "v2.salesforce_incidents_template_response_data" => "SalesforceIncidentsTemplateResponseData", + "v2.salesforce_incidents_templates_response" => "SalesforceIncidentsTemplatesResponse", + "v2.salesforce_incidents_template_type" => "SalesforceIncidentsTemplateType", + "v2.salesforce_incidents_template_update_attributes" => "SalesforceIncidentsTemplateUpdateAttributes", + "v2.salesforce_incidents_template_update_data" => "SalesforceIncidentsTemplateUpdateData", + "v2.salesforce_incidents_template_update_request" => "SalesforceIncidentsTemplateUpdateRequest", "v2.saml_assertion_attribute" => "SAMLAssertionAttribute", "v2.saml_assertion_attribute_attributes" => "SAMLAssertionAttributeAttributes", "v2.saml_assertion_attributes_type" => "SAMLAssertionAttributesType", @@ -5755,6 +5806,7 @@ def overrides "v2.security_entity_risk_score" => "SecurityEntityRiskScore", "v2.security_entity_risk_score_attributes" => "SecurityEntityRiskScoreAttributes", "v2.security_entity_risk_score_attributes_severity" => "SecurityEntityRiskScoreAttributesSeverity", + "v2.security_entity_risk_score_response" => "SecurityEntityRiskScoreResponse", "v2.security_entity_risk_scores_meta" => "SecurityEntityRiskScoresMeta", "v2.security_entity_risk_scores_response" => "SecurityEntityRiskScoresResponse", "v2.security_entity_risk_score_type" => "SecurityEntityRiskScoreType", @@ -6208,6 +6260,8 @@ def overrides "v2.signal_entities_data" => "SignalEntitiesData", "v2.signal_entities_response" => "SignalEntitiesResponse", "v2.signal_entities_type" => "SignalEntitiesType", + "v2.signals_problems_detections" => "SignalsProblemsDetections", + "v2.signals_problems_sample_metadata" => "SignalsProblemsSampleMetadata", "v2.simple_monitor_user_template" => "SimpleMonitorUserTemplate", "v2.single_aggregated_connection_response_array" => "SingleAggregatedConnectionResponseArray", "v2.single_aggregated_connection_response_data" => "SingleAggregatedConnectionResponseData", @@ -6832,6 +6886,7 @@ def overrides "v2.timeseries_response_attributes" => "TimeseriesResponseAttributes", "v2.timeseries_response_series" => "TimeseriesResponseSeries", "v2.token_type" => "TokenType", + "v2.top_long_task_invoker" => "TopLongTaskInvoker", "v2.trace_attributes" => "TraceAttributes", "v2.trace_data" => "TraceData", "v2.trace_response" => "TraceResponse", @@ -7282,12 +7337,14 @@ def overrides "v2.roles_api" => "RolesAPI", "v2.rum_api" => "RUMAPI", "v2.rum_audience_management_api" => "RumAudienceManagementAPI", + "v2.rum_insights_api" => "RUMInsightsAPI", "v2.rum_metrics_api" => "RumMetricsAPI", "v2.rum_replay_heatmaps_api" => "RumReplayHeatmapsAPI", "v2.rum_replay_playlists_api" => "RumReplayPlaylistsAPI", "v2.rum_replay_sessions_api" => "RumReplaySessionsAPI", "v2.rum_replay_viewership_api" => "RumReplayViewershipAPI", "v2.rum_retention_filters_api" => "RumRetentionFiltersAPI", + "v2.salesforce_integration_api" => "SalesforceIntegrationAPI", "v2.scorecards_api" => "ScorecardsAPI", "v2.seats_api" => "SeatsAPI", "v2.security_monitoring_api" => "SecurityMonitoringAPI", diff --git a/lib/datadog_api_client/v2/api/dashboards_api.rb b/lib/datadog_api_client/v2/api/dashboards_api.rb index 21abf8ea3610..e18836aa4bf8 100644 --- a/lib/datadog_api_client/v2/api/dashboards_api.rb +++ b/lib/datadog_api_client/v2/api/dashboards_api.rb @@ -33,7 +33,7 @@ def get_dashboard_usage(dashboard_id, opts = {}) # Get usage stats for a dashboard. # - # Get usage statistics for a single dashboard. The response includes view counts, the most recent view and edit times, widget counts, and the dashboard quality score. + # Get usage statistics for a single dashboard. The response includes view counts, the most recent view and edit times, widget counts, and the dashboard quality score. View-count fields depend on Real User Monitoring (RUM) and are `null` or `0` in orgs without RUM. # # @param dashboard_id [String] The ID of the dashboard. # @param opts [Hash] the optional parameters @@ -104,11 +104,13 @@ def list_dashboards_usage(opts = {}) # Get usage stats for all dashboards. # - # Get paginated usage statistics for every dashboard in the caller's organization. Use `page[limit]` and `page[offset]` to walk the result set. + # Get paginated usage statistics for every dashboard in the caller's organization. Use `page[limit]` and `page[offset]` to walk the result set. Use `filter[edited_before]` or `filter[viewed_before]` to narrow results by recency. View-count fields depend on Real User Monitoring (RUM) and are `null` or `0` in orgs without RUM. # # @param opts [Hash] the optional parameters # @option opts [Integer] :page_limit Maximum number of dashboards to return per page. Server-side maximum is 500; values above 500 return a 400 Bad Request. # @option opts [Integer] :page_offset Zero-based offset into the result set. + # @option opts [String] :filter_edited_before Return only dashboards whose last edit (`edited_at`) is strictly before this ISO 8601 timestamp (`edited_at < value`; boundary matches are excluded). Must include a timezone offset (for example, `Z` or `+00:00`); naive timestamps return HTTP 400. + # @option opts [String] :filter_viewed_before Return only dashboards whose most recent view (`viewed_at`) is strictly before this ISO 8601 timestamp, including dashboards that have never been viewed. Must include a timezone offset; naive timestamps return HTTP 400. Orgs without Real User Monitoring (RUM) will see all dashboards returned by this filter. # @return [Array<(ListDashboardsUsageResponse, Integer, Hash)>] ListDashboardsUsageResponse data, response status code and response headers def list_dashboards_usage_with_http_info(opts = {}) unstable_enabled = @api_client.config.unstable_operations["v2.list_dashboards_usage".to_sym] @@ -131,6 +133,8 @@ def list_dashboards_usage_with_http_info(opts = {}) query_params = opts[:query_params] || {} query_params[:'page[limit]'] = opts[:'page_limit'] if !opts[:'page_limit'].nil? query_params[:'page[offset]'] = opts[:'page_offset'] if !opts[:'page_offset'].nil? + query_params[:'filter[edited_before]'] = opts[:'filter_edited_before'] if !opts[:'filter_edited_before'].nil? + query_params[:'filter[viewed_before]'] = opts[:'filter_viewed_before'] if !opts[:'filter_viewed_before'].nil? # header parameters header_params = opts[:header_params] || {} diff --git a/lib/datadog_api_client/v2/api/entity_risk_scores_api.rb b/lib/datadog_api_client/v2/api/entity_risk_scores_api.rb index f9982ae73610..c0b5d20a69ba 100644 --- a/lib/datadog_api_client/v2/api/entity_risk_scores_api.rb +++ b/lib/datadog_api_client/v2/api/entity_risk_scores_api.rb @@ -23,6 +23,77 @@ def initialize(api_client = DatadogAPIClient::APIClient.default) @api_client = api_client end + # Get Entity Risk Score. + # + # @see #get_entity_risk_score_with_http_info + def get_entity_risk_score(entity_id, opts = {}) + data, _status_code, _headers = get_entity_risk_score_with_http_info(entity_id, opts) + data + end + + # Get Entity Risk Score. + # + # Get the risk score for a specific entity by its ID. Returns security risk assessment including risk score, severity, detected signals, misconfigurations, and identity risks. + # + # @param entity_id [String] The URL-encoded unique identifier for the entity. + # @param opts [Hash] the optional parameters + # @return [Array<(SecurityEntityRiskScoreResponse, Integer, Hash)>] SecurityEntityRiskScoreResponse data, response status code and response headers + def get_entity_risk_score_with_http_info(entity_id, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.get_entity_risk_score".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.get_entity_risk_score") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.get_entity_risk_score")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: EntityRiskScoresAPI.get_entity_risk_score ...' + end + # verify the required parameter 'entity_id' is set + if @api_client.config.client_side_validation && entity_id.nil? + fail ArgumentError, "Missing the required parameter 'entity_id' when calling EntityRiskScoresAPI.get_entity_risk_score" + end + # resource path + local_var_path = '/api/v2/security-entities/risk-scores/{entity_id}'.sub('{entity_id}', CGI.escape(entity_id.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] || 'SecurityEntityRiskScoreResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :get_entity_risk_score, + :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: EntityRiskScoresAPI#get_entity_risk_score\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + # List Entity Risk Scores. # # @see #list_entity_risk_scores_with_http_info diff --git a/lib/datadog_api_client/v2/api/rum_insights_api.rb b/lib/datadog_api_client/v2/api/rum_insights_api.rb new file mode 100644 index 000000000000..3a078d2cac3a --- /dev/null +++ b/lib/datadog_api_client/v2/api/rum_insights_api.rb @@ -0,0 +1,245 @@ +=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 'cgi' + +module DatadogAPIClient::V2 + class RUMInsightsAPI + attr_accessor :api_client + + def initialize(api_client = DatadogAPIClient::APIClient.default) + @api_client = api_client + end + + # Query aggregated long tasks. + # + # @see #query_aggregated_long_tasks_with_http_info + def query_aggregated_long_tasks(body, opts = {}) + data, _status_code, _headers = query_aggregated_long_tasks_with_http_info(body, opts) + data + end + + # Query aggregated long tasks. + # + # Get aggregated long task data for a RUM view, grouped by invoker type and sampled across multiple view instances. + # + # @param body [AggregatedLongTasksRequest] + # @param opts [Hash] the optional parameters + # @return [Array<(AggregatedLongTasksResponse, Integer, Hash)>] AggregatedLongTasksResponse data, response status code and response headers + def query_aggregated_long_tasks_with_http_info(body, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.query_aggregated_long_tasks".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.query_aggregated_long_tasks") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.query_aggregated_long_tasks")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: RUMInsightsAPI.query_aggregated_long_tasks ...' + end + # verify the required parameter 'body' is set + if @api_client.config.client_side_validation && body.nil? + fail ArgumentError, "Missing the required parameter 'body' when calling RUMInsightsAPI.query_aggregated_long_tasks" + end + # resource path + local_var_path = '/api/v2/rum/query/insight/aggregated_long_tasks' + + # 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']) + # HTTP header 'Content-Type' + header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] || @api_client.object_to_http_body(body) + + # return_type + return_type = opts[:debug_return_type] || 'AggregatedLongTasksResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :query_aggregated_long_tasks, + :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::Post, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: RUMInsightsAPI#query_aggregated_long_tasks\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + + # Query aggregated signals and problems. + # + # @see #query_aggregated_signals_problems_with_http_info + def query_aggregated_signals_problems(body, opts = {}) + data, _status_code, _headers = query_aggregated_signals_problems_with_http_info(body, opts) + data + end + + # Query aggregated signals and problems. + # + # Get aggregated performance signals and problem detections for a RUM view, sampled across multiple view instances. + # + # @param body [AggregatedSignalsProblemsRequest] + # @param opts [Hash] the optional parameters + # @return [Array<(AggregatedSignalsProblemsResponse, Integer, Hash)>] AggregatedSignalsProblemsResponse data, response status code and response headers + def query_aggregated_signals_problems_with_http_info(body, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.query_aggregated_signals_problems".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.query_aggregated_signals_problems") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.query_aggregated_signals_problems")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: RUMInsightsAPI.query_aggregated_signals_problems ...' + end + # verify the required parameter 'body' is set + if @api_client.config.client_side_validation && body.nil? + fail ArgumentError, "Missing the required parameter 'body' when calling RUMInsightsAPI.query_aggregated_signals_problems" + end + # resource path + local_var_path = '/api/v2/rum/query/insight/aggregated_signals_problems' + + # 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']) + # HTTP header 'Content-Type' + header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] || @api_client.object_to_http_body(body) + + # return_type + return_type = opts[:debug_return_type] || 'AggregatedSignalsProblemsResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :query_aggregated_signals_problems, + :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::Post, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: RUMInsightsAPI#query_aggregated_signals_problems\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + + # Query aggregated waterfall. + # + # @see #query_aggregated_waterfall_with_http_info + def query_aggregated_waterfall(body, opts = {}) + data, _status_code, _headers = query_aggregated_waterfall_with_http_info(body, opts) + data + end + + # Query aggregated waterfall. + # + # Get aggregated network resource waterfall data for a RUM view, sampled across multiple view instances. + # + # @param body [AggregatedWaterfallRequest] + # @param opts [Hash] the optional parameters + # @return [Array<(AggregatedWaterfallResponse, Integer, Hash)>] AggregatedWaterfallResponse data, response status code and response headers + def query_aggregated_waterfall_with_http_info(body, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.query_aggregated_waterfall".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.query_aggregated_waterfall") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.query_aggregated_waterfall")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: RUMInsightsAPI.query_aggregated_waterfall ...' + end + # verify the required parameter 'body' is set + if @api_client.config.client_side_validation && body.nil? + fail ArgumentError, "Missing the required parameter 'body' when calling RUMInsightsAPI.query_aggregated_waterfall" + end + # resource path + local_var_path = '/api/v2/rum/query/insight/aggregated_waterfall' + + # 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']) + # HTTP header 'Content-Type' + header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] || @api_client.object_to_http_body(body) + + # return_type + return_type = opts[:debug_return_type] || 'AggregatedWaterfallResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :query_aggregated_waterfall, + :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::Post, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: RUMInsightsAPI#query_aggregated_waterfall\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + end +end diff --git a/lib/datadog_api_client/v2/api/salesforce_integration_api.rb b/lib/datadog_api_client/v2/api/salesforce_integration_api.rb new file mode 100644 index 000000000000..9ed66dadfbda --- /dev/null +++ b/lib/datadog_api_client/v2/api/salesforce_integration_api.rb @@ -0,0 +1,419 @@ +=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 'cgi' + +module DatadogAPIClient::V2 + class SalesforceIntegrationAPI + attr_accessor :api_client + + def initialize(api_client = DatadogAPIClient::APIClient.default) + @api_client = api_client + end + + # Create a Salesforce incident template. + # + # @see #create_incident_template_with_http_info + def create_incident_template(body, opts = {}) + data, _status_code, _headers = create_incident_template_with_http_info(body, opts) + data + end + + # Create a Salesforce incident template. + # + # Create a new Salesforce incident template for your organization. Template + # names must be unique within an organization. + # + # @param body [SalesforceIncidentsTemplateCreateRequest] Salesforce incident template payload. + # @param opts [Hash] the optional parameters + # @return [Array<(SalesforceIncidentsTemplateResponse, Integer, Hash)>] SalesforceIncidentsTemplateResponse data, response status code and response headers + def create_incident_template_with_http_info(body, opts = {}) + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: SalesforceIntegrationAPI.create_incident_template ...' + end + # verify the required parameter 'body' is set + if @api_client.config.client_side_validation && body.nil? + fail ArgumentError, "Missing the required parameter 'body' when calling SalesforceIntegrationAPI.create_incident_template" + end + # resource path + local_var_path = '/api/v2/integration/salesforce-incidents/incident-templates' + + # 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']) + # HTTP header 'Content-Type' + header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] || @api_client.object_to_http_body(body) + + # return_type + return_type = opts[:debug_return_type] || 'SalesforceIncidentsTemplateResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :create_incident_template, + :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::Post, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: SalesforceIntegrationAPI#create_incident_template\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + + # Delete a Salesforce incident template. + # + # @see #delete_incident_template_with_http_info + def delete_incident_template(incident_template_id, opts = {}) + delete_incident_template_with_http_info(incident_template_id, opts) + nil + end + + # Delete a Salesforce incident template. + # + # Delete a single Salesforce incident template from your organization. + # + # @param incident_template_id [String] The ID of the Salesforce incident template. + # @param opts [Hash] the optional parameters + # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers + def delete_incident_template_with_http_info(incident_template_id, opts = {}) + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: SalesforceIntegrationAPI.delete_incident_template ...' + end + # verify the required parameter 'incident_template_id' is set + if @api_client.config.client_side_validation && incident_template_id.nil? + fail ArgumentError, "Missing the required parameter 'incident_template_id' when calling SalesforceIntegrationAPI.delete_incident_template" + end + # resource path + local_var_path = '/api/v2/integration/salesforce-incidents/incident-templates/{incident_template_id}'.sub('{incident_template_id}', CGI.escape(incident_template_id.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(['*/*']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :delete_incident_template, + :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::Delete, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: SalesforceIntegrationAPI#delete_incident_template\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + + # Delete a connected Salesforce organization. + # + # @see #delete_salesforce_organization_with_http_info + def delete_salesforce_organization(salesforce_org_id, opts = {}) + delete_salesforce_organization_with_http_info(salesforce_org_id, opts) + nil + end + + # Delete a connected Salesforce organization. + # + # Disconnect a Salesforce organization from your Datadog organization. + # This also deletes any incident templates referencing the organization. + # + # @param salesforce_org_id [String] The Datadog-assigned ID of the connected Salesforce organization. + # @param opts [Hash] the optional parameters + # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers + def delete_salesforce_organization_with_http_info(salesforce_org_id, opts = {}) + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: SalesforceIntegrationAPI.delete_salesforce_organization ...' + end + # verify the required parameter 'salesforce_org_id' is set + if @api_client.config.client_side_validation && salesforce_org_id.nil? + fail ArgumentError, "Missing the required parameter 'salesforce_org_id' when calling SalesforceIntegrationAPI.delete_salesforce_organization" + end + # resource path + local_var_path = '/api/v2/integration/salesforce-incidents/organizations/{salesforce_org_id}'.sub('{salesforce_org_id}', CGI.escape(salesforce_org_id.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(['*/*']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :delete_salesforce_organization, + :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::Delete, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: SalesforceIntegrationAPI#delete_salesforce_organization\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + + # Get all Salesforce incident templates. + # + # @see #get_incident_templates_with_http_info + def get_incident_templates(opts = {}) + data, _status_code, _headers = get_incident_templates_with_http_info(opts) + data + end + + # Get all Salesforce incident templates. + # + # Get all Salesforce incident templates configured for your organization. + # + # @param opts [Hash] the optional parameters + # @return [Array<(SalesforceIncidentsTemplatesResponse, Integer, Hash)>] SalesforceIncidentsTemplatesResponse data, response status code and response headers + def get_incident_templates_with_http_info(opts = {}) + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: SalesforceIntegrationAPI.get_incident_templates ...' + end + # resource path + local_var_path = '/api/v2/integration/salesforce-incidents/incident-templates' + + # 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] || 'SalesforceIncidentsTemplatesResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :get_incident_templates, + :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: SalesforceIntegrationAPI#get_incident_templates\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + + # Get all connected Salesforce organizations. + # + # @see #get_salesforce_organizations_with_http_info + def get_salesforce_organizations(opts = {}) + data, _status_code, _headers = get_salesforce_organizations_with_http_info(opts) + data + end + + # Get all connected Salesforce organizations. + # + # Get all Salesforce organizations connected to your Datadog organization + # through the Salesforce integration. Salesforce organizations are connected + # through the OAuth setup flow in the Datadog Salesforce integration page. + # + # @param opts [Hash] the optional parameters + # @return [Array<(SalesforceIncidentsOrganizationsResponse, Integer, Hash)>] SalesforceIncidentsOrganizationsResponse data, response status code and response headers + def get_salesforce_organizations_with_http_info(opts = {}) + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: SalesforceIntegrationAPI.get_salesforce_organizations ...' + end + # resource path + local_var_path = '/api/v2/integration/salesforce-incidents/organizations' + + # 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] || 'SalesforceIncidentsOrganizationsResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :get_salesforce_organizations, + :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: SalesforceIntegrationAPI#get_salesforce_organizations\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + + # Update a Salesforce incident template. + # + # @see #update_incident_template_with_http_info + def update_incident_template(incident_template_id, body, opts = {}) + data, _status_code, _headers = update_incident_template_with_http_info(incident_template_id, body, opts) + data + end + + # Update a Salesforce incident template. + # + # Update a single Salesforce incident template in your organization. + # + # @param incident_template_id [String] The ID of the Salesforce incident template. + # @param body [SalesforceIncidentsTemplateUpdateRequest] Salesforce incident template payload. + # @param opts [Hash] the optional parameters + # @return [Array<(SalesforceIncidentsTemplateResponse, Integer, Hash)>] SalesforceIncidentsTemplateResponse data, response status code and response headers + def update_incident_template_with_http_info(incident_template_id, body, opts = {}) + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: SalesforceIntegrationAPI.update_incident_template ...' + end + # verify the required parameter 'incident_template_id' is set + if @api_client.config.client_side_validation && incident_template_id.nil? + fail ArgumentError, "Missing the required parameter 'incident_template_id' when calling SalesforceIntegrationAPI.update_incident_template" + end + # verify the required parameter 'body' is set + if @api_client.config.client_side_validation && body.nil? + fail ArgumentError, "Missing the required parameter 'body' when calling SalesforceIntegrationAPI.update_incident_template" + end + # resource path + local_var_path = '/api/v2/integration/salesforce-incidents/incident-templates/{incident_template_id}'.sub('{incident_template_id}', CGI.escape(incident_template_id.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']) + # HTTP header 'Content-Type' + header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] || @api_client.object_to_http_body(body) + + # return_type + return_type = opts[:debug_return_type] || 'SalesforceIncidentsTemplateResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :update_incident_template, + :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::Patch, local_var_path, new_options) + if @api_client.config.debugging + @api_client.config.logger.debug "API called: SalesforceIntegrationAPI#update_incident_template\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_high_frozen_frame_rate.rb b/lib/datadog_api_client/v2/models/aggregated_high_frozen_frame_rate.rb new file mode 100644 index 000000000000..2434fa1a18ab --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_high_frozen_frame_rate.rb @@ -0,0 +1,232 @@ +=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 + # Aggregated high frozen frame rate detection at view level. + class AggregatedHighFrozenFrameRate + include BaseGenericModel + + # Average frozen frame rate as a fraction of total frames. + attr_reader :avg_frozen_frame_rate + + # Average segment duration in nanoseconds. + attr_reader :avg_segment_duration + + # Average total frozen duration in nanoseconds. + attr_reader :avg_total_frozen_duration + + # Unique fingerprint identifying this detection group. + attr_reader :fingerprint + + # Impact score for this detection. + attr_reader :impact_score + + # Number of sampled views where this detection occurred. + attr_reader :view_occurrences + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'avg_frozen_frame_rate' => :'avg_frozen_frame_rate', + :'avg_segment_duration' => :'avg_segment_duration', + :'avg_total_frozen_duration' => :'avg_total_frozen_duration', + :'fingerprint' => :'fingerprint', + :'impact_score' => :'impact_score', + :'view_occurrences' => :'view_occurrences' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'avg_frozen_frame_rate' => :'Float', + :'avg_segment_duration' => :'Integer', + :'avg_total_frozen_duration' => :'Integer', + :'fingerprint' => :'String', + :'impact_score' => :'Float', + :'view_occurrences' => :'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::AggregatedHighFrozenFrameRate` 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?(:'avg_frozen_frame_rate') + self.avg_frozen_frame_rate = attributes[:'avg_frozen_frame_rate'] + end + + if attributes.key?(:'avg_segment_duration') + self.avg_segment_duration = attributes[:'avg_segment_duration'] + end + + if attributes.key?(:'avg_total_frozen_duration') + self.avg_total_frozen_duration = attributes[:'avg_total_frozen_duration'] + end + + if attributes.key?(:'fingerprint') + self.fingerprint = attributes[:'fingerprint'] + end + + if attributes.key?(:'impact_score') + self.impact_score = attributes[:'impact_score'] + end + + if attributes.key?(:'view_occurrences') + self.view_occurrences = attributes[:'view_occurrences'] + 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 @avg_frozen_frame_rate.nil? + return false if @avg_segment_duration.nil? + return false if @avg_total_frozen_duration.nil? + return false if @fingerprint.nil? + return false if @impact_score.nil? + return false if @view_occurrences.nil? + return false if @view_occurrences > 2147483647 + true + end + + # Custom attribute writer method with validation + # @param avg_frozen_frame_rate [Object] Object to be assigned + # @!visibility private + def avg_frozen_frame_rate=(avg_frozen_frame_rate) + if avg_frozen_frame_rate.nil? + fail ArgumentError, 'invalid value for "avg_frozen_frame_rate", avg_frozen_frame_rate cannot be nil.' + end + @avg_frozen_frame_rate = avg_frozen_frame_rate + end + + # Custom attribute writer method with validation + # @param avg_segment_duration [Object] Object to be assigned + # @!visibility private + def avg_segment_duration=(avg_segment_duration) + if avg_segment_duration.nil? + fail ArgumentError, 'invalid value for "avg_segment_duration", avg_segment_duration cannot be nil.' + end + @avg_segment_duration = avg_segment_duration + end + + # Custom attribute writer method with validation + # @param avg_total_frozen_duration [Object] Object to be assigned + # @!visibility private + def avg_total_frozen_duration=(avg_total_frozen_duration) + if avg_total_frozen_duration.nil? + fail ArgumentError, 'invalid value for "avg_total_frozen_duration", avg_total_frozen_duration cannot be nil.' + end + @avg_total_frozen_duration = avg_total_frozen_duration + end + + # Custom attribute writer method with validation + # @param fingerprint [Object] Object to be assigned + # @!visibility private + def fingerprint=(fingerprint) + if fingerprint.nil? + fail ArgumentError, 'invalid value for "fingerprint", fingerprint cannot be nil.' + end + @fingerprint = fingerprint + end + + # Custom attribute writer method with validation + # @param impact_score [Object] Object to be assigned + # @!visibility private + def impact_score=(impact_score) + if impact_score.nil? + fail ArgumentError, 'invalid value for "impact_score", impact_score cannot be nil.' + end + @impact_score = impact_score + end + + # Custom attribute writer method with validation + # @param view_occurrences [Object] Object to be assigned + # @!visibility private + def view_occurrences=(view_occurrences) + if view_occurrences.nil? + fail ArgumentError, 'invalid value for "view_occurrences", view_occurrences cannot be nil.' + end + if view_occurrences > 2147483647 + fail ArgumentError, 'invalid value for "view_occurrences", must be smaller than or equal to 2147483647.' + end + @view_occurrences = view_occurrences + 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 && + avg_frozen_frame_rate == o.avg_frozen_frame_rate && + avg_segment_duration == o.avg_segment_duration && + avg_total_frozen_duration == o.avg_total_frozen_duration && + fingerprint == o.fingerprint && + impact_score == o.impact_score && + view_occurrences == o.view_occurrences && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [avg_frozen_frame_rate, avg_segment_duration, avg_total_frozen_duration, fingerprint, impact_score, view_occurrences, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_high_script_eval.rb b/lib/datadog_api_client/v2/models/aggregated_high_script_eval.rb new file mode 100644 index 000000000000..d9a3cceb1b95 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_high_script_eval.rb @@ -0,0 +1,307 @@ +=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 + # Aggregated high script evaluation detection grouped by source. + class AggregatedHighScriptEval + include BaseGenericModel + + # Average script evaluation duration in nanoseconds. + attr_reader :avg_duration + + # Average forced style/layout duration in nanoseconds. + attr_reader :avg_forced_style_layout + + # Unique fingerprint identifying this detection group. + attr_reader :fingerprint + + # Impact score combining view frequency and duration severity. + attr_reader :impact_score + + # Total number of detection instances across sampled views. + attr_reader :instance_count + + # Type of invoker that triggered the script evaluation. + attr_reader :invoker_type + + # Category of the script source. + attr_accessor :source_category + + # Name of the function that triggered the high script evaluation. + attr_reader :source_function_name + + # URL of the script that triggered the high script evaluation. + attr_accessor :source_url + + # Number of sampled views where this detection occurred. + attr_reader :view_occurrences + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'avg_duration' => :'avg_duration', + :'avg_forced_style_layout' => :'avg_forced_style_layout', + :'fingerprint' => :'fingerprint', + :'impact_score' => :'impact_score', + :'instance_count' => :'instance_count', + :'invoker_type' => :'invoker_type', + :'source_category' => :'source_category', + :'source_function_name' => :'source_function_name', + :'source_url' => :'source_url', + :'view_occurrences' => :'view_occurrences' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'avg_duration' => :'Integer', + :'avg_forced_style_layout' => :'Integer', + :'fingerprint' => :'String', + :'impact_score' => :'Float', + :'instance_count' => :'Integer', + :'invoker_type' => :'String', + :'source_category' => :'String', + :'source_function_name' => :'String', + :'source_url' => :'String', + :'view_occurrences' => :'Integer' + } + end + + # List of attributes with nullable: true + # @!visibility private + def self.openapi_nullable + Set.new([ + :'source_category', + :'source_url', + ]) + 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::AggregatedHighScriptEval` 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?(:'avg_duration') + self.avg_duration = attributes[:'avg_duration'] + end + + if attributes.key?(:'avg_forced_style_layout') + self.avg_forced_style_layout = attributes[:'avg_forced_style_layout'] + end + + if attributes.key?(:'fingerprint') + self.fingerprint = attributes[:'fingerprint'] + end + + if attributes.key?(:'impact_score') + self.impact_score = attributes[:'impact_score'] + end + + if attributes.key?(:'instance_count') + self.instance_count = attributes[:'instance_count'] + end + + if attributes.key?(:'invoker_type') + self.invoker_type = attributes[:'invoker_type'] + end + + if attributes.key?(:'source_category') + self.source_category = attributes[:'source_category'] + end + + if attributes.key?(:'source_function_name') + self.source_function_name = attributes[:'source_function_name'] + end + + if attributes.key?(:'source_url') + self.source_url = attributes[:'source_url'] + end + + if attributes.key?(:'view_occurrences') + self.view_occurrences = attributes[:'view_occurrences'] + 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 @avg_duration.nil? + return false if @avg_forced_style_layout.nil? + return false if @fingerprint.nil? + return false if @impact_score.nil? + return false if @instance_count.nil? + return false if @instance_count > 2147483647 + return false if @invoker_type.nil? + return false if @source_function_name.nil? + return false if @view_occurrences.nil? + return false if @view_occurrences > 2147483647 + true + end + + # Custom attribute writer method with validation + # @param avg_duration [Object] Object to be assigned + # @!visibility private + def avg_duration=(avg_duration) + if avg_duration.nil? + fail ArgumentError, 'invalid value for "avg_duration", avg_duration cannot be nil.' + end + @avg_duration = avg_duration + end + + # Custom attribute writer method with validation + # @param avg_forced_style_layout [Object] Object to be assigned + # @!visibility private + def avg_forced_style_layout=(avg_forced_style_layout) + if avg_forced_style_layout.nil? + fail ArgumentError, 'invalid value for "avg_forced_style_layout", avg_forced_style_layout cannot be nil.' + end + @avg_forced_style_layout = avg_forced_style_layout + end + + # Custom attribute writer method with validation + # @param fingerprint [Object] Object to be assigned + # @!visibility private + def fingerprint=(fingerprint) + if fingerprint.nil? + fail ArgumentError, 'invalid value for "fingerprint", fingerprint cannot be nil.' + end + @fingerprint = fingerprint + end + + # Custom attribute writer method with validation + # @param impact_score [Object] Object to be assigned + # @!visibility private + def impact_score=(impact_score) + if impact_score.nil? + fail ArgumentError, 'invalid value for "impact_score", impact_score cannot be nil.' + end + @impact_score = impact_score + end + + # Custom attribute writer method with validation + # @param instance_count [Object] Object to be assigned + # @!visibility private + def instance_count=(instance_count) + if instance_count.nil? + fail ArgumentError, 'invalid value for "instance_count", instance_count cannot be nil.' + end + if instance_count > 2147483647 + fail ArgumentError, 'invalid value for "instance_count", must be smaller than or equal to 2147483647.' + end + @instance_count = instance_count + end + + # Custom attribute writer method with validation + # @param invoker_type [Object] Object to be assigned + # @!visibility private + def invoker_type=(invoker_type) + if invoker_type.nil? + fail ArgumentError, 'invalid value for "invoker_type", invoker_type cannot be nil.' + end + @invoker_type = invoker_type + end + + # Custom attribute writer method with validation + # @param source_function_name [Object] Object to be assigned + # @!visibility private + def source_function_name=(source_function_name) + if source_function_name.nil? + fail ArgumentError, 'invalid value for "source_function_name", source_function_name cannot be nil.' + end + @source_function_name = source_function_name + end + + # Custom attribute writer method with validation + # @param view_occurrences [Object] Object to be assigned + # @!visibility private + def view_occurrences=(view_occurrences) + if view_occurrences.nil? + fail ArgumentError, 'invalid value for "view_occurrences", view_occurrences cannot be nil.' + end + if view_occurrences > 2147483647 + fail ArgumentError, 'invalid value for "view_occurrences", must be smaller than or equal to 2147483647.' + end + @view_occurrences = view_occurrences + 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 && + avg_duration == o.avg_duration && + avg_forced_style_layout == o.avg_forced_style_layout && + fingerprint == o.fingerprint && + impact_score == o.impact_score && + instance_count == o.instance_count && + invoker_type == o.invoker_type && + source_category == o.source_category && + source_function_name == o.source_function_name && + source_url == o.source_url && + view_occurrences == o.view_occurrences && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [avg_duration, avg_forced_style_layout, fingerprint, impact_score, instance_count, invoker_type, source_category, source_function_name, source_url, view_occurrences, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_long_tasks_by_invoker_type.rb b/lib/datadog_api_client/v2/models/aggregated_long_tasks_by_invoker_type.rb new file mode 100644 index 000000000000..768b6a44605f --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_long_tasks_by_invoker_type.rb @@ -0,0 +1,223 @@ +=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 + # Aggregated long task statistics for a single invoker type. + class AggregatedLongTasksByInvokerType + include BaseGenericModel + + # Number of sampled views where this invoker type had long tasks contributing to the criteria metric. + attr_reader :criteria_view_occurrences + + # Rank-product impact score combining view frequency and blocking time severity. + attr_accessor :impact_score + + # Category of the long task invoker (for example, resolve-promise, user-callback). + attr_reader :invoker_type + + # Statistical distributions of long task metrics computed per view across sampled views. + attr_reader :stats_per_view + + # Top invokers within this invoker type, sorted by impact score descending. + attr_reader :top_invokers + + # Number of sampled views where this invoker type had any long tasks. + attr_reader :view_occurrences + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'criteria_view_occurrences' => :'criteria_view_occurrences', + :'impact_score' => :'impact_score', + :'invoker_type' => :'invoker_type', + :'stats_per_view' => :'stats_per_view', + :'top_invokers' => :'top_invokers', + :'view_occurrences' => :'view_occurrences' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'criteria_view_occurrences' => :'Integer', + :'impact_score' => :'Float', + :'invoker_type' => :'String', + :'stats_per_view' => :'LongTaskStatsPerView', + :'top_invokers' => :'Array', + :'view_occurrences' => :'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::AggregatedLongTasksByInvokerType` 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?(:'criteria_view_occurrences') + self.criteria_view_occurrences = attributes[:'criteria_view_occurrences'] + end + + if attributes.key?(:'impact_score') + self.impact_score = attributes[:'impact_score'] + end + + if attributes.key?(:'invoker_type') + self.invoker_type = attributes[:'invoker_type'] + end + + if attributes.key?(:'stats_per_view') + self.stats_per_view = attributes[:'stats_per_view'] + end + + if attributes.key?(:'top_invokers') + if (value = attributes[:'top_invokers']).is_a?(Array) + self.top_invokers = value + end + end + + if attributes.key?(:'view_occurrences') + self.view_occurrences = attributes[:'view_occurrences'] + 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 !@criteria_view_occurrences.nil? && @criteria_view_occurrences > 2147483647 + return false if @invoker_type.nil? + return false if @stats_per_view.nil? + return false if @top_invokers.nil? + return false if @view_occurrences.nil? + return false if @view_occurrences > 2147483647 + true + end + + # Custom attribute writer method with validation + # @param criteria_view_occurrences [Object] Object to be assigned + # @!visibility private + def criteria_view_occurrences=(criteria_view_occurrences) + if !criteria_view_occurrences.nil? && criteria_view_occurrences > 2147483647 + fail ArgumentError, 'invalid value for "criteria_view_occurrences", must be smaller than or equal to 2147483647.' + end + @criteria_view_occurrences = criteria_view_occurrences + end + + # Custom attribute writer method with validation + # @param invoker_type [Object] Object to be assigned + # @!visibility private + def invoker_type=(invoker_type) + if invoker_type.nil? + fail ArgumentError, 'invalid value for "invoker_type", invoker_type cannot be nil.' + end + @invoker_type = invoker_type + end + + # Custom attribute writer method with validation + # @param stats_per_view [Object] Object to be assigned + # @!visibility private + def stats_per_view=(stats_per_view) + if stats_per_view.nil? + fail ArgumentError, 'invalid value for "stats_per_view", stats_per_view cannot be nil.' + end + @stats_per_view = stats_per_view + end + + # Custom attribute writer method with validation + # @param top_invokers [Object] Object to be assigned + # @!visibility private + def top_invokers=(top_invokers) + if top_invokers.nil? + fail ArgumentError, 'invalid value for "top_invokers", top_invokers cannot be nil.' + end + @top_invokers = top_invokers + end + + # Custom attribute writer method with validation + # @param view_occurrences [Object] Object to be assigned + # @!visibility private + def view_occurrences=(view_occurrences) + if view_occurrences.nil? + fail ArgumentError, 'invalid value for "view_occurrences", view_occurrences cannot be nil.' + end + if view_occurrences > 2147483647 + fail ArgumentError, 'invalid value for "view_occurrences", must be smaller than or equal to 2147483647.' + end + @view_occurrences = view_occurrences + 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 && + criteria_view_occurrences == o.criteria_view_occurrences && + impact_score == o.impact_score && + invoker_type == o.invoker_type && + stats_per_view == o.stats_per_view && + top_invokers == o.top_invokers && + view_occurrences == o.view_occurrences && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [criteria_view_occurrences, impact_score, invoker_type, stats_per_view, top_invokers, view_occurrences, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_long_tasks_request.rb b/lib/datadog_api_client/v2/models/aggregated_long_tasks_request.rb new file mode 100644 index 000000000000..28fc316f7f81 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_long_tasks_request.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 + # Request body for the aggregated long tasks endpoint. + class AggregatedLongTasksRequest + include BaseGenericModel + + # Data envelope for an aggregated long tasks request. + attr_reader :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'AggregatedLongTasksRequestData' + } + 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::AggregatedLongTasksRequest` 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') + self.data = attributes[:'data'] + 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? + 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 + + # 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 && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_long_tasks_request_attributes.rb b/lib/datadog_api_client/v2/models/aggregated_long_tasks_request_attributes.rb new file mode 100644 index 000000000000..75d1ec199ccb --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_long_tasks_request_attributes.rb @@ -0,0 +1,235 @@ +=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 for an aggregated long tasks query. + class AggregatedLongTasksRequestAttributes + include BaseGenericModel + + # The RUM application ID to analyze. + attr_reader :application_id + + # Performance criteria to filter view instances by a metric threshold. + attr_accessor :criteria + + # RUM query string to filter events (for example, @session.type:user @geo.country:US). + attr_accessor :filter + + # Start of the time range as a Unix timestamp in seconds. + attr_reader :from + + # Number of view instances to sample, between 1 and 500. + attr_reader :sample_size + + # End of the time range as a Unix timestamp in seconds. + attr_reader :to + + # The RUM view name to analyze (for example, /account/login). + attr_reader :view_name + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'application_id' => :'application_id', + :'criteria' => :'criteria', + :'filter' => :'filter', + :'from' => :'from', + :'sample_size' => :'sample_size', + :'to' => :'to', + :'view_name' => :'view_name' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'application_id' => :'String', + :'criteria' => :'AggregatedWaterfallPerformanceCriteria', + :'filter' => :'String', + :'from' => :'Integer', + :'sample_size' => :'Integer', + :'to' => :'Integer', + :'view_name' => :'String' + } + 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::AggregatedLongTasksRequestAttributes` 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?(:'application_id') + self.application_id = attributes[:'application_id'] + end + + if attributes.key?(:'criteria') + self.criteria = attributes[:'criteria'] + end + + if attributes.key?(:'filter') + self.filter = attributes[:'filter'] + end + + if attributes.key?(:'from') + self.from = attributes[:'from'] + end + + if attributes.key?(:'sample_size') + self.sample_size = attributes[:'sample_size'] + end + + if attributes.key?(:'to') + self.to = attributes[:'to'] + end + + if attributes.key?(:'view_name') + self.view_name = attributes[:'view_name'] + 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 @application_id.nil? + return false if @from.nil? + return false if @sample_size.nil? + return false if @sample_size > 500 + return false if @sample_size < 1 + return false if @to.nil? + return false if @view_name.nil? + true + end + + # Custom attribute writer method with validation + # @param application_id [Object] Object to be assigned + # @!visibility private + def application_id=(application_id) + if application_id.nil? + fail ArgumentError, 'invalid value for "application_id", application_id cannot be nil.' + end + @application_id = application_id + end + + # Custom attribute writer method with validation + # @param from [Object] Object to be assigned + # @!visibility private + def from=(from) + if from.nil? + fail ArgumentError, 'invalid value for "from", from cannot be nil.' + end + @from = from + end + + # Custom attribute writer method with validation + # @param sample_size [Object] Object to be assigned + # @!visibility private + def sample_size=(sample_size) + if sample_size.nil? + fail ArgumentError, 'invalid value for "sample_size", sample_size cannot be nil.' + end + if sample_size > 500 + fail ArgumentError, 'invalid value for "sample_size", must be smaller than or equal to 500.' + end + if sample_size < 1 + fail ArgumentError, 'invalid value for "sample_size", must be greater than or equal to 1.' + end + @sample_size = sample_size + end + + # Custom attribute writer method with validation + # @param to [Object] Object to be assigned + # @!visibility private + def to=(to) + if to.nil? + fail ArgumentError, 'invalid value for "to", to cannot be nil.' + end + @to = to + end + + # Custom attribute writer method with validation + # @param view_name [Object] Object to be assigned + # @!visibility private + def view_name=(view_name) + if view_name.nil? + fail ArgumentError, 'invalid value for "view_name", view_name cannot be nil.' + end + @view_name = view_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 && + application_id == o.application_id && + criteria == o.criteria && + filter == o.filter && + from == o.from && + sample_size == o.sample_size && + to == o.to && + view_name == o.view_name && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [application_id, criteria, filter, from, sample_size, to, view_name, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_long_tasks_request_data.rb b/lib/datadog_api_client/v2/models/aggregated_long_tasks_request_data.rb new file mode 100644 index 000000000000..2994e56cc1d1 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_long_tasks_request_data.rb @@ -0,0 +1,144 @@ +=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 + # Data envelope for an aggregated long tasks request. + class AggregatedLongTasksRequestData + include BaseGenericModel + + # Attributes for an aggregated long tasks query. + attr_reader :attributes + + # The JSON:API type for aggregated long tasks requests. + 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', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'attributes' => :'AggregatedLongTasksRequestAttributes', + :'type' => :'AggregatedLongTasksRequestType' + } + 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::AggregatedLongTasksRequestData` 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?(:'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 && + 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, type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_long_tasks_request_type.rb b/lib/datadog_api_client/v2/models/aggregated_long_tasks_request_type.rb new file mode 100644 index 000000000000..41f4dcb403d7 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_long_tasks_request_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 JSON:API type for aggregated long tasks requests. + class AggregatedLongTasksRequestType + include BaseEnumModel + + AGGREGATED_LONG_TASKS = "aggregated_long_tasks".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_long_tasks_response.rb b/lib/datadog_api_client/v2/models/aggregated_long_tasks_response.rb new file mode 100644 index 000000000000..5836d1cdbf89 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_long_tasks_response.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 + # Response body for the aggregated long tasks endpoint. + class AggregatedLongTasksResponse + include BaseGenericModel + + # Data envelope for an aggregated long tasks response. + attr_reader :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'AggregatedLongTasksResponseData' + } + 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::AggregatedLongTasksResponse` 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') + self.data = attributes[:'data'] + 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? + 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 + + # 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 && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_long_tasks_response_attributes.rb b/lib/datadog_api_client/v2/models/aggregated_long_tasks_response_attributes.rb new file mode 100644 index 000000000000..c703be19c19f --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_long_tasks_response_attributes.rb @@ -0,0 +1,267 @@ +=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 an aggregated long tasks response. + class AggregatedLongTasksResponseAttributes + include BaseGenericModel + + # The RUM application ID that was analyzed. + attr_reader :application_id + + # Performance criteria to filter view instances by a metric threshold. + attr_accessor :criteria + + # Start of the analyzed time range as a Unix timestamp in seconds. + attr_reader :from + + # Long task statistics grouped by invoker type, sorted by impact score descending. + attr_reader :long_tasks_by_invoker_type + + # List of RUM view IDs sampled for this aggregation, capped at 50. + attr_reader :sampled_view_ids + + # End of the analyzed time range as a Unix timestamp in seconds. + attr_reader :to + + # Number of view instances included in the analysis. + attr_reader :view_count + + # The RUM view name that was analyzed. + attr_reader :view_name + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'application_id' => :'application_id', + :'criteria' => :'criteria', + :'from' => :'from', + :'long_tasks_by_invoker_type' => :'long_tasks_by_invoker_type', + :'sampled_view_ids' => :'sampled_view_ids', + :'to' => :'to', + :'view_count' => :'view_count', + :'view_name' => :'view_name' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'application_id' => :'String', + :'criteria' => :'AggregatedWaterfallPerformanceCriteria', + :'from' => :'Integer', + :'long_tasks_by_invoker_type' => :'Array', + :'sampled_view_ids' => :'Array', + :'to' => :'Integer', + :'view_count' => :'Integer', + :'view_name' => :'String' + } + 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::AggregatedLongTasksResponseAttributes` 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?(:'application_id') + self.application_id = attributes[:'application_id'] + end + + if attributes.key?(:'criteria') + self.criteria = attributes[:'criteria'] + end + + if attributes.key?(:'from') + self.from = attributes[:'from'] + end + + if attributes.key?(:'long_tasks_by_invoker_type') + if (value = attributes[:'long_tasks_by_invoker_type']).is_a?(Array) + self.long_tasks_by_invoker_type = value + end + end + + if attributes.key?(:'sampled_view_ids') + if (value = attributes[:'sampled_view_ids']).is_a?(Array) + self.sampled_view_ids = value + end + end + + if attributes.key?(:'to') + self.to = attributes[:'to'] + end + + if attributes.key?(:'view_count') + self.view_count = attributes[:'view_count'] + end + + if attributes.key?(:'view_name') + self.view_name = attributes[:'view_name'] + 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 @application_id.nil? + return false if @from.nil? + return false if @long_tasks_by_invoker_type.nil? + return false if @sampled_view_ids.nil? + return false if @to.nil? + return false if @view_count.nil? + return false if @view_count > 2147483647 + return false if @view_name.nil? + true + end + + # Custom attribute writer method with validation + # @param application_id [Object] Object to be assigned + # @!visibility private + def application_id=(application_id) + if application_id.nil? + fail ArgumentError, 'invalid value for "application_id", application_id cannot be nil.' + end + @application_id = application_id + end + + # Custom attribute writer method with validation + # @param from [Object] Object to be assigned + # @!visibility private + def from=(from) + if from.nil? + fail ArgumentError, 'invalid value for "from", from cannot be nil.' + end + @from = from + end + + # Custom attribute writer method with validation + # @param long_tasks_by_invoker_type [Object] Object to be assigned + # @!visibility private + def long_tasks_by_invoker_type=(long_tasks_by_invoker_type) + if long_tasks_by_invoker_type.nil? + fail ArgumentError, 'invalid value for "long_tasks_by_invoker_type", long_tasks_by_invoker_type cannot be nil.' + end + @long_tasks_by_invoker_type = long_tasks_by_invoker_type + end + + # Custom attribute writer method with validation + # @param sampled_view_ids [Object] Object to be assigned + # @!visibility private + def sampled_view_ids=(sampled_view_ids) + if sampled_view_ids.nil? + fail ArgumentError, 'invalid value for "sampled_view_ids", sampled_view_ids cannot be nil.' + end + @sampled_view_ids = sampled_view_ids + end + + # Custom attribute writer method with validation + # @param to [Object] Object to be assigned + # @!visibility private + def to=(to) + if to.nil? + fail ArgumentError, 'invalid value for "to", to cannot be nil.' + end + @to = to + end + + # Custom attribute writer method with validation + # @param view_count [Object] Object to be assigned + # @!visibility private + def view_count=(view_count) + if view_count.nil? + fail ArgumentError, 'invalid value for "view_count", view_count cannot be nil.' + end + if view_count > 2147483647 + fail ArgumentError, 'invalid value for "view_count", must be smaller than or equal to 2147483647.' + end + @view_count = view_count + end + + # Custom attribute writer method with validation + # @param view_name [Object] Object to be assigned + # @!visibility private + def view_name=(view_name) + if view_name.nil? + fail ArgumentError, 'invalid value for "view_name", view_name cannot be nil.' + end + @view_name = view_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 && + application_id == o.application_id && + criteria == o.criteria && + from == o.from && + long_tasks_by_invoker_type == o.long_tasks_by_invoker_type && + sampled_view_ids == o.sampled_view_ids && + to == o.to && + view_count == o.view_count && + view_name == o.view_name && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [application_id, criteria, from, long_tasks_by_invoker_type, sampled_view_ids, to, view_count, view_name, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_long_tasks_response_data.rb b/lib/datadog_api_client/v2/models/aggregated_long_tasks_response_data.rb new file mode 100644 index 000000000000..4b6e52d31ae1 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_long_tasks_response_data.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 + # Data envelope for an aggregated long tasks response. + class AggregatedLongTasksResponseData + include BaseGenericModel + + # Attributes of an aggregated long tasks response. + attr_reader :attributes + + # Hash-based unique identifier for this aggregation. + attr_reader :id + + # The JSON:API type for aggregated long tasks requests. + 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' => :'AggregatedLongTasksResponseAttributes', + :'id' => :'String', + :'type' => :'AggregatedLongTasksRequestType' + } + 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::AggregatedLongTasksResponseData` 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/aggregated_low_cache_hit_rate.rb b/lib/datadog_api_client/v2/models/aggregated_low_cache_hit_rate.rb new file mode 100644 index 000000000000..9d9bddd1cd22 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_low_cache_hit_rate.rb @@ -0,0 +1,211 @@ +=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 + # Aggregated low cache hit rate detection at view level. + class AggregatedLowCacheHitRate + include BaseGenericModel + + # Average cache hit rate across affected views. + attr_reader :avg_cache_hit_rate + + # Average total download size of uncached resources in bytes. + attr_reader :avg_resource_download_size_bytes + + # Unique fingerprint identifying this detection group. + attr_reader :fingerprint + + # Impact score for this detection. + attr_reader :impact_score + + # Number of sampled views where this detection occurred. + attr_reader :view_occurrences + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'avg_cache_hit_rate' => :'avg_cache_hit_rate', + :'avg_resource_download_size_bytes' => :'avg_resource_download_size_bytes', + :'fingerprint' => :'fingerprint', + :'impact_score' => :'impact_score', + :'view_occurrences' => :'view_occurrences' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'avg_cache_hit_rate' => :'Float', + :'avg_resource_download_size_bytes' => :'Integer', + :'fingerprint' => :'String', + :'impact_score' => :'Float', + :'view_occurrences' => :'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::AggregatedLowCacheHitRate` 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?(:'avg_cache_hit_rate') + self.avg_cache_hit_rate = attributes[:'avg_cache_hit_rate'] + end + + if attributes.key?(:'avg_resource_download_size_bytes') + self.avg_resource_download_size_bytes = attributes[:'avg_resource_download_size_bytes'] + end + + if attributes.key?(:'fingerprint') + self.fingerprint = attributes[:'fingerprint'] + end + + if attributes.key?(:'impact_score') + self.impact_score = attributes[:'impact_score'] + end + + if attributes.key?(:'view_occurrences') + self.view_occurrences = attributes[:'view_occurrences'] + 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 @avg_cache_hit_rate.nil? + return false if @avg_resource_download_size_bytes.nil? + return false if @fingerprint.nil? + return false if @impact_score.nil? + return false if @view_occurrences.nil? + return false if @view_occurrences > 2147483647 + true + end + + # Custom attribute writer method with validation + # @param avg_cache_hit_rate [Object] Object to be assigned + # @!visibility private + def avg_cache_hit_rate=(avg_cache_hit_rate) + if avg_cache_hit_rate.nil? + fail ArgumentError, 'invalid value for "avg_cache_hit_rate", avg_cache_hit_rate cannot be nil.' + end + @avg_cache_hit_rate = avg_cache_hit_rate + end + + # Custom attribute writer method with validation + # @param avg_resource_download_size_bytes [Object] Object to be assigned + # @!visibility private + def avg_resource_download_size_bytes=(avg_resource_download_size_bytes) + if avg_resource_download_size_bytes.nil? + fail ArgumentError, 'invalid value for "avg_resource_download_size_bytes", avg_resource_download_size_bytes cannot be nil.' + end + @avg_resource_download_size_bytes = avg_resource_download_size_bytes + end + + # Custom attribute writer method with validation + # @param fingerprint [Object] Object to be assigned + # @!visibility private + def fingerprint=(fingerprint) + if fingerprint.nil? + fail ArgumentError, 'invalid value for "fingerprint", fingerprint cannot be nil.' + end + @fingerprint = fingerprint + end + + # Custom attribute writer method with validation + # @param impact_score [Object] Object to be assigned + # @!visibility private + def impact_score=(impact_score) + if impact_score.nil? + fail ArgumentError, 'invalid value for "impact_score", impact_score cannot be nil.' + end + @impact_score = impact_score + end + + # Custom attribute writer method with validation + # @param view_occurrences [Object] Object to be assigned + # @!visibility private + def view_occurrences=(view_occurrences) + if view_occurrences.nil? + fail ArgumentError, 'invalid value for "view_occurrences", view_occurrences cannot be nil.' + end + if view_occurrences > 2147483647 + fail ArgumentError, 'invalid value for "view_occurrences", must be smaller than or equal to 2147483647.' + end + @view_occurrences = view_occurrences + 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 && + avg_cache_hit_rate == o.avg_cache_hit_rate && + avg_resource_download_size_bytes == o.avg_resource_download_size_bytes && + fingerprint == o.fingerprint && + impact_score == o.impact_score && + view_occurrences == o.view_occurrences && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [avg_cache_hit_rate, avg_resource_download_size_bytes, fingerprint, impact_score, view_occurrences, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_mobile_scroll_friction.rb b/lib/datadog_api_client/v2/models/aggregated_mobile_scroll_friction.rb new file mode 100644 index 000000000000..31b9c69848b1 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_mobile_scroll_friction.rb @@ -0,0 +1,194 @@ +=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 + # Aggregated mobile scroll friction detection at view level. + class AggregatedMobileScrollFriction + include BaseGenericModel + + # Average number of frozen frames during scroll interactions. + attr_reader :avg_scroll_frozen_frame_count + + # Unique fingerprint identifying this detection group. + attr_reader :fingerprint + + # Impact score for this detection. + attr_reader :impact_score + + # Number of sampled views where this detection occurred. + attr_reader :view_occurrences + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'avg_scroll_frozen_frame_count' => :'avg_scroll_frozen_frame_count', + :'fingerprint' => :'fingerprint', + :'impact_score' => :'impact_score', + :'view_occurrences' => :'view_occurrences' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'avg_scroll_frozen_frame_count' => :'Integer', + :'fingerprint' => :'String', + :'impact_score' => :'Float', + :'view_occurrences' => :'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::AggregatedMobileScrollFriction` 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?(:'avg_scroll_frozen_frame_count') + self.avg_scroll_frozen_frame_count = attributes[:'avg_scroll_frozen_frame_count'] + end + + if attributes.key?(:'fingerprint') + self.fingerprint = attributes[:'fingerprint'] + end + + if attributes.key?(:'impact_score') + self.impact_score = attributes[:'impact_score'] + end + + if attributes.key?(:'view_occurrences') + self.view_occurrences = attributes[:'view_occurrences'] + 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 @avg_scroll_frozen_frame_count.nil? + return false if @avg_scroll_frozen_frame_count > 2147483647 + return false if @fingerprint.nil? + return false if @impact_score.nil? + return false if @view_occurrences.nil? + return false if @view_occurrences > 2147483647 + true + end + + # Custom attribute writer method with validation + # @param avg_scroll_frozen_frame_count [Object] Object to be assigned + # @!visibility private + def avg_scroll_frozen_frame_count=(avg_scroll_frozen_frame_count) + if avg_scroll_frozen_frame_count.nil? + fail ArgumentError, 'invalid value for "avg_scroll_frozen_frame_count", avg_scroll_frozen_frame_count cannot be nil.' + end + if avg_scroll_frozen_frame_count > 2147483647 + fail ArgumentError, 'invalid value for "avg_scroll_frozen_frame_count", must be smaller than or equal to 2147483647.' + end + @avg_scroll_frozen_frame_count = avg_scroll_frozen_frame_count + end + + # Custom attribute writer method with validation + # @param fingerprint [Object] Object to be assigned + # @!visibility private + def fingerprint=(fingerprint) + if fingerprint.nil? + fail ArgumentError, 'invalid value for "fingerprint", fingerprint cannot be nil.' + end + @fingerprint = fingerprint + end + + # Custom attribute writer method with validation + # @param impact_score [Object] Object to be assigned + # @!visibility private + def impact_score=(impact_score) + if impact_score.nil? + fail ArgumentError, 'invalid value for "impact_score", impact_score cannot be nil.' + end + @impact_score = impact_score + end + + # Custom attribute writer method with validation + # @param view_occurrences [Object] Object to be assigned + # @!visibility private + def view_occurrences=(view_occurrences) + if view_occurrences.nil? + fail ArgumentError, 'invalid value for "view_occurrences", view_occurrences cannot be nil.' + end + if view_occurrences > 2147483647 + fail ArgumentError, 'invalid value for "view_occurrences", must be smaller than or equal to 2147483647.' + end + @view_occurrences = view_occurrences + 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 && + avg_scroll_frozen_frame_count == o.avg_scroll_frozen_frame_count && + fingerprint == o.fingerprint && + impact_score == o.impact_score && + view_occurrences == o.view_occurrences && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [avg_scroll_frozen_frame_count, fingerprint, impact_score, view_occurrences, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_resource.rb b/lib/datadog_api_client/v2/models/aggregated_resource.rb new file mode 100644 index 000000000000..2543e45318c7 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_resource.rb @@ -0,0 +1,503 @@ +=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 + # Aggregated performance statistics for a single network resource across sampled view instances. + class AggregatedResource + include BaseGenericModel + + # Average total duration in milliseconds. + attr_reader :avg_duration_ms + + # Average start time relative to view start in milliseconds. + attr_reader :avg_start_time_ms + + # Cache hit rate as a percentage. + attr_reader :cache_hit_rate_pct + + # Number of requests served from cache. + attr_reader :cached_count + + # Number of requests downloaded from the network. + attr_reader :downloaded_count + + # 75th percentile duration across all view names in the application, present when include_global_appearance is true. + attr_accessor :global_p75_duration_ms + + # Number of distinct view names in the application that load this resource, present when include_global_appearance is true. + attr_reader :global_view_name_count + + # Percentage of distinct view names in the application that load this resource, present when include_global_appearance is true. + attr_accessor :global_view_name_pct + + # HTTP method for the resource request. + attr_accessor :http_method + + # Percentage of sampled view instances that loaded this resource. + attr_reader :load_frequency_pct + + # Maximum duration in milliseconds. + attr_reader :max_duration_ms + + # Median duration in milliseconds. + attr_reader :median_duration_ms + + # Minimum duration in milliseconds. + attr_reader :min_duration_ms + + # 75th percentile duration in milliseconds. + attr_reader :p75_duration_ms + + # 95th percentile duration in milliseconds. + attr_reader :p95_duration_ms + + # Resource type (JS, CSS, image, fetch, XHR, document, and so on). + attr_accessor :resource_type + + # URL path group used to aggregate similar resources. + attr_reader :resource_url_path_group + + # Average timing breakdown per network phase for a resource. + attr_reader :timing_breakdown + + # Total number of requests for this resource across all sampled views. + attr_reader :total_requests + + # Number of sampled view instances that loaded this resource. + attr_reader :views_with_resource + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'avg_duration_ms' => :'avg_duration_ms', + :'avg_start_time_ms' => :'avg_start_time_ms', + :'cache_hit_rate_pct' => :'cache_hit_rate_pct', + :'cached_count' => :'cached_count', + :'downloaded_count' => :'downloaded_count', + :'global_p75_duration_ms' => :'global_p75_duration_ms', + :'global_view_name_count' => :'global_view_name_count', + :'global_view_name_pct' => :'global_view_name_pct', + :'http_method' => :'http_method', + :'load_frequency_pct' => :'load_frequency_pct', + :'max_duration_ms' => :'max_duration_ms', + :'median_duration_ms' => :'median_duration_ms', + :'min_duration_ms' => :'min_duration_ms', + :'p75_duration_ms' => :'p75_duration_ms', + :'p95_duration_ms' => :'p95_duration_ms', + :'resource_type' => :'resource_type', + :'resource_url_path_group' => :'resource_url_path_group', + :'timing_breakdown' => :'timing_breakdown', + :'total_requests' => :'total_requests', + :'views_with_resource' => :'views_with_resource' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'avg_duration_ms' => :'Float', + :'avg_start_time_ms' => :'Float', + :'cache_hit_rate_pct' => :'Float', + :'cached_count' => :'Integer', + :'downloaded_count' => :'Integer', + :'global_p75_duration_ms' => :'Float', + :'global_view_name_count' => :'Integer', + :'global_view_name_pct' => :'Float', + :'http_method' => :'String', + :'load_frequency_pct' => :'Float', + :'max_duration_ms' => :'Float', + :'median_duration_ms' => :'Float', + :'min_duration_ms' => :'Float', + :'p75_duration_ms' => :'Float', + :'p95_duration_ms' => :'Float', + :'resource_type' => :'String', + :'resource_url_path_group' => :'String', + :'timing_breakdown' => :'AggregatedResourceTimingBreakdown', + :'total_requests' => :'Integer', + :'views_with_resource' => :'Integer' + } + end + + # List of attributes with nullable: true + # @!visibility private + def self.openapi_nullable + Set.new([ + :'http_method', + :'resource_type', + ]) + 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::AggregatedResource` 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?(:'avg_duration_ms') + self.avg_duration_ms = attributes[:'avg_duration_ms'] + end + + if attributes.key?(:'avg_start_time_ms') + self.avg_start_time_ms = attributes[:'avg_start_time_ms'] + end + + if attributes.key?(:'cache_hit_rate_pct') + self.cache_hit_rate_pct = attributes[:'cache_hit_rate_pct'] + end + + if attributes.key?(:'cached_count') + self.cached_count = attributes[:'cached_count'] + end + + if attributes.key?(:'downloaded_count') + self.downloaded_count = attributes[:'downloaded_count'] + end + + if attributes.key?(:'global_p75_duration_ms') + self.global_p75_duration_ms = attributes[:'global_p75_duration_ms'] + end + + if attributes.key?(:'global_view_name_count') + self.global_view_name_count = attributes[:'global_view_name_count'] + end + + if attributes.key?(:'global_view_name_pct') + self.global_view_name_pct = attributes[:'global_view_name_pct'] + end + + if attributes.key?(:'http_method') + self.http_method = attributes[:'http_method'] + end + + if attributes.key?(:'load_frequency_pct') + self.load_frequency_pct = attributes[:'load_frequency_pct'] + end + + if attributes.key?(:'max_duration_ms') + self.max_duration_ms = attributes[:'max_duration_ms'] + end + + if attributes.key?(:'median_duration_ms') + self.median_duration_ms = attributes[:'median_duration_ms'] + end + + if attributes.key?(:'min_duration_ms') + self.min_duration_ms = attributes[:'min_duration_ms'] + end + + if attributes.key?(:'p75_duration_ms') + self.p75_duration_ms = attributes[:'p75_duration_ms'] + end + + if attributes.key?(:'p95_duration_ms') + self.p95_duration_ms = attributes[:'p95_duration_ms'] + end + + if attributes.key?(:'resource_type') + self.resource_type = attributes[:'resource_type'] + end + + if attributes.key?(:'resource_url_path_group') + self.resource_url_path_group = attributes[:'resource_url_path_group'] + end + + if attributes.key?(:'timing_breakdown') + self.timing_breakdown = attributes[:'timing_breakdown'] + end + + if attributes.key?(:'total_requests') + self.total_requests = attributes[:'total_requests'] + end + + if attributes.key?(:'views_with_resource') + self.views_with_resource = attributes[:'views_with_resource'] + 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 @avg_duration_ms.nil? + return false if @avg_start_time_ms.nil? + return false if @cache_hit_rate_pct.nil? + return false if @cached_count.nil? + return false if @cached_count > 2147483647 + return false if @downloaded_count.nil? + return false if @downloaded_count > 2147483647 + return false if !@global_view_name_count.nil? && @global_view_name_count > 2147483647 + return false if @load_frequency_pct.nil? + return false if @max_duration_ms.nil? + return false if @median_duration_ms.nil? + return false if @min_duration_ms.nil? + return false if @p75_duration_ms.nil? + return false if @p95_duration_ms.nil? + return false if @resource_url_path_group.nil? + return false if @timing_breakdown.nil? + return false if @total_requests.nil? + return false if @total_requests > 2147483647 + return false if @views_with_resource.nil? + return false if @views_with_resource > 2147483647 + true + end + + # Custom attribute writer method with validation + # @param avg_duration_ms [Object] Object to be assigned + # @!visibility private + def avg_duration_ms=(avg_duration_ms) + if avg_duration_ms.nil? + fail ArgumentError, 'invalid value for "avg_duration_ms", avg_duration_ms cannot be nil.' + end + @avg_duration_ms = avg_duration_ms + end + + # Custom attribute writer method with validation + # @param avg_start_time_ms [Object] Object to be assigned + # @!visibility private + def avg_start_time_ms=(avg_start_time_ms) + if avg_start_time_ms.nil? + fail ArgumentError, 'invalid value for "avg_start_time_ms", avg_start_time_ms cannot be nil.' + end + @avg_start_time_ms = avg_start_time_ms + end + + # Custom attribute writer method with validation + # @param cache_hit_rate_pct [Object] Object to be assigned + # @!visibility private + def cache_hit_rate_pct=(cache_hit_rate_pct) + if cache_hit_rate_pct.nil? + fail ArgumentError, 'invalid value for "cache_hit_rate_pct", cache_hit_rate_pct cannot be nil.' + end + @cache_hit_rate_pct = cache_hit_rate_pct + end + + # Custom attribute writer method with validation + # @param cached_count [Object] Object to be assigned + # @!visibility private + def cached_count=(cached_count) + if cached_count.nil? + fail ArgumentError, 'invalid value for "cached_count", cached_count cannot be nil.' + end + if cached_count > 2147483647 + fail ArgumentError, 'invalid value for "cached_count", must be smaller than or equal to 2147483647.' + end + @cached_count = cached_count + end + + # Custom attribute writer method with validation + # @param downloaded_count [Object] Object to be assigned + # @!visibility private + def downloaded_count=(downloaded_count) + if downloaded_count.nil? + fail ArgumentError, 'invalid value for "downloaded_count", downloaded_count cannot be nil.' + end + if downloaded_count > 2147483647 + fail ArgumentError, 'invalid value for "downloaded_count", must be smaller than or equal to 2147483647.' + end + @downloaded_count = downloaded_count + end + + # Custom attribute writer method with validation + # @param global_view_name_count [Object] Object to be assigned + # @!visibility private + def global_view_name_count=(global_view_name_count) + if !global_view_name_count.nil? && global_view_name_count > 2147483647 + fail ArgumentError, 'invalid value for "global_view_name_count", must be smaller than or equal to 2147483647.' + end + @global_view_name_count = global_view_name_count + end + + # Custom attribute writer method with validation + # @param load_frequency_pct [Object] Object to be assigned + # @!visibility private + def load_frequency_pct=(load_frequency_pct) + if load_frequency_pct.nil? + fail ArgumentError, 'invalid value for "load_frequency_pct", load_frequency_pct cannot be nil.' + end + @load_frequency_pct = load_frequency_pct + end + + # Custom attribute writer method with validation + # @param max_duration_ms [Object] Object to be assigned + # @!visibility private + def max_duration_ms=(max_duration_ms) + if max_duration_ms.nil? + fail ArgumentError, 'invalid value for "max_duration_ms", max_duration_ms cannot be nil.' + end + @max_duration_ms = max_duration_ms + end + + # Custom attribute writer method with validation + # @param median_duration_ms [Object] Object to be assigned + # @!visibility private + def median_duration_ms=(median_duration_ms) + if median_duration_ms.nil? + fail ArgumentError, 'invalid value for "median_duration_ms", median_duration_ms cannot be nil.' + end + @median_duration_ms = median_duration_ms + end + + # Custom attribute writer method with validation + # @param min_duration_ms [Object] Object to be assigned + # @!visibility private + def min_duration_ms=(min_duration_ms) + if min_duration_ms.nil? + fail ArgumentError, 'invalid value for "min_duration_ms", min_duration_ms cannot be nil.' + end + @min_duration_ms = min_duration_ms + end + + # Custom attribute writer method with validation + # @param p75_duration_ms [Object] Object to be assigned + # @!visibility private + def p75_duration_ms=(p75_duration_ms) + if p75_duration_ms.nil? + fail ArgumentError, 'invalid value for "p75_duration_ms", p75_duration_ms cannot be nil.' + end + @p75_duration_ms = p75_duration_ms + end + + # Custom attribute writer method with validation + # @param p95_duration_ms [Object] Object to be assigned + # @!visibility private + def p95_duration_ms=(p95_duration_ms) + if p95_duration_ms.nil? + fail ArgumentError, 'invalid value for "p95_duration_ms", p95_duration_ms cannot be nil.' + end + @p95_duration_ms = p95_duration_ms + end + + # Custom attribute writer method with validation + # @param resource_url_path_group [Object] Object to be assigned + # @!visibility private + def resource_url_path_group=(resource_url_path_group) + if resource_url_path_group.nil? + fail ArgumentError, 'invalid value for "resource_url_path_group", resource_url_path_group cannot be nil.' + end + @resource_url_path_group = resource_url_path_group + end + + # Custom attribute writer method with validation + # @param timing_breakdown [Object] Object to be assigned + # @!visibility private + def timing_breakdown=(timing_breakdown) + if timing_breakdown.nil? + fail ArgumentError, 'invalid value for "timing_breakdown", timing_breakdown cannot be nil.' + end + @timing_breakdown = timing_breakdown + end + + # Custom attribute writer method with validation + # @param total_requests [Object] Object to be assigned + # @!visibility private + def total_requests=(total_requests) + if total_requests.nil? + fail ArgumentError, 'invalid value for "total_requests", total_requests cannot be nil.' + end + if total_requests > 2147483647 + fail ArgumentError, 'invalid value for "total_requests", must be smaller than or equal to 2147483647.' + end + @total_requests = total_requests + end + + # Custom attribute writer method with validation + # @param views_with_resource [Object] Object to be assigned + # @!visibility private + def views_with_resource=(views_with_resource) + if views_with_resource.nil? + fail ArgumentError, 'invalid value for "views_with_resource", views_with_resource cannot be nil.' + end + if views_with_resource > 2147483647 + fail ArgumentError, 'invalid value for "views_with_resource", must be smaller than or equal to 2147483647.' + end + @views_with_resource = views_with_resource + 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 && + avg_duration_ms == o.avg_duration_ms && + avg_start_time_ms == o.avg_start_time_ms && + cache_hit_rate_pct == o.cache_hit_rate_pct && + cached_count == o.cached_count && + downloaded_count == o.downloaded_count && + global_p75_duration_ms == o.global_p75_duration_ms && + global_view_name_count == o.global_view_name_count && + global_view_name_pct == o.global_view_name_pct && + http_method == o.http_method && + load_frequency_pct == o.load_frequency_pct && + max_duration_ms == o.max_duration_ms && + median_duration_ms == o.median_duration_ms && + min_duration_ms == o.min_duration_ms && + p75_duration_ms == o.p75_duration_ms && + p95_duration_ms == o.p95_duration_ms && + resource_type == o.resource_type && + resource_url_path_group == o.resource_url_path_group && + timing_breakdown == o.timing_breakdown && + total_requests == o.total_requests && + views_with_resource == o.views_with_resource && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [avg_duration_ms, avg_start_time_ms, cache_hit_rate_pct, cached_count, downloaded_count, global_p75_duration_ms, global_view_name_count, global_view_name_pct, http_method, load_frequency_pct, max_duration_ms, median_duration_ms, min_duration_ms, p75_duration_ms, p95_duration_ms, resource_type, resource_url_path_group, timing_breakdown, total_requests, views_with_resource, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_resource_timing_breakdown.rb b/lib/datadog_api_client/v2/models/aggregated_resource_timing_breakdown.rb new file mode 100644 index 000000000000..de0872d4a399 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_resource_timing_breakdown.rb @@ -0,0 +1,228 @@ +=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 + # Average timing breakdown per network phase for a resource. + class AggregatedResourceTimingBreakdown + include BaseGenericModel + + # Average TCP connect duration in milliseconds. + attr_reader :avg_connect_ms + + # Average DNS resolution duration in milliseconds. + attr_reader :avg_dns_ms + + # Average download phase duration in milliseconds. + attr_reader :avg_download_ms + + # Average time to first byte in milliseconds. + attr_reader :avg_first_byte_ms + + # Average redirect phase duration in milliseconds. + attr_reader :avg_redirect_ms + + # Average SSL handshake duration in milliseconds. + attr_reader :avg_ssl_ms + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'avg_connect_ms' => :'avg_connect_ms', + :'avg_dns_ms' => :'avg_dns_ms', + :'avg_download_ms' => :'avg_download_ms', + :'avg_first_byte_ms' => :'avg_first_byte_ms', + :'avg_redirect_ms' => :'avg_redirect_ms', + :'avg_ssl_ms' => :'avg_ssl_ms' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'avg_connect_ms' => :'Float', + :'avg_dns_ms' => :'Float', + :'avg_download_ms' => :'Float', + :'avg_first_byte_ms' => :'Float', + :'avg_redirect_ms' => :'Float', + :'avg_ssl_ms' => :'Float' + } + 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::AggregatedResourceTimingBreakdown` 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?(:'avg_connect_ms') + self.avg_connect_ms = attributes[:'avg_connect_ms'] + end + + if attributes.key?(:'avg_dns_ms') + self.avg_dns_ms = attributes[:'avg_dns_ms'] + end + + if attributes.key?(:'avg_download_ms') + self.avg_download_ms = attributes[:'avg_download_ms'] + end + + if attributes.key?(:'avg_first_byte_ms') + self.avg_first_byte_ms = attributes[:'avg_first_byte_ms'] + end + + if attributes.key?(:'avg_redirect_ms') + self.avg_redirect_ms = attributes[:'avg_redirect_ms'] + end + + if attributes.key?(:'avg_ssl_ms') + self.avg_ssl_ms = attributes[:'avg_ssl_ms'] + 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 @avg_connect_ms.nil? + return false if @avg_dns_ms.nil? + return false if @avg_download_ms.nil? + return false if @avg_first_byte_ms.nil? + return false if @avg_redirect_ms.nil? + return false if @avg_ssl_ms.nil? + true + end + + # Custom attribute writer method with validation + # @param avg_connect_ms [Object] Object to be assigned + # @!visibility private + def avg_connect_ms=(avg_connect_ms) + if avg_connect_ms.nil? + fail ArgumentError, 'invalid value for "avg_connect_ms", avg_connect_ms cannot be nil.' + end + @avg_connect_ms = avg_connect_ms + end + + # Custom attribute writer method with validation + # @param avg_dns_ms [Object] Object to be assigned + # @!visibility private + def avg_dns_ms=(avg_dns_ms) + if avg_dns_ms.nil? + fail ArgumentError, 'invalid value for "avg_dns_ms", avg_dns_ms cannot be nil.' + end + @avg_dns_ms = avg_dns_ms + end + + # Custom attribute writer method with validation + # @param avg_download_ms [Object] Object to be assigned + # @!visibility private + def avg_download_ms=(avg_download_ms) + if avg_download_ms.nil? + fail ArgumentError, 'invalid value for "avg_download_ms", avg_download_ms cannot be nil.' + end + @avg_download_ms = avg_download_ms + end + + # Custom attribute writer method with validation + # @param avg_first_byte_ms [Object] Object to be assigned + # @!visibility private + def avg_first_byte_ms=(avg_first_byte_ms) + if avg_first_byte_ms.nil? + fail ArgumentError, 'invalid value for "avg_first_byte_ms", avg_first_byte_ms cannot be nil.' + end + @avg_first_byte_ms = avg_first_byte_ms + end + + # Custom attribute writer method with validation + # @param avg_redirect_ms [Object] Object to be assigned + # @!visibility private + def avg_redirect_ms=(avg_redirect_ms) + if avg_redirect_ms.nil? + fail ArgumentError, 'invalid value for "avg_redirect_ms", avg_redirect_ms cannot be nil.' + end + @avg_redirect_ms = avg_redirect_ms + end + + # Custom attribute writer method with validation + # @param avg_ssl_ms [Object] Object to be assigned + # @!visibility private + def avg_ssl_ms=(avg_ssl_ms) + if avg_ssl_ms.nil? + fail ArgumentError, 'invalid value for "avg_ssl_ms", avg_ssl_ms cannot be nil.' + end + @avg_ssl_ms = avg_ssl_ms + 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 && + avg_connect_ms == o.avg_connect_ms && + avg_dns_ms == o.avg_dns_ms && + avg_download_ms == o.avg_download_ms && + avg_first_byte_ms == o.avg_first_byte_ms && + avg_redirect_ms == o.avg_redirect_ms && + avg_ssl_ms == o.avg_ssl_ms && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [avg_connect_ms, avg_dns_ms, avg_download_ms, avg_first_byte_ms, avg_redirect_ms, avg_ssl_ms, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_signals_problems_request.rb b/lib/datadog_api_client/v2/models/aggregated_signals_problems_request.rb new file mode 100644 index 000000000000..073e46ba9555 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_signals_problems_request.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 + # Request body for the aggregated signals and problems endpoint. + class AggregatedSignalsProblemsRequest + include BaseGenericModel + + # Data envelope for an aggregated signals and problems request. + attr_reader :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'AggregatedSignalsProblemsRequestData' + } + 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::AggregatedSignalsProblemsRequest` 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') + self.data = attributes[:'data'] + 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? + 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 + + # 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 && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_signals_problems_request_attributes.rb b/lib/datadog_api_client/v2/models/aggregated_signals_problems_request_attributes.rb new file mode 100644 index 000000000000..60122d518c8e --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_signals_problems_request_attributes.rb @@ -0,0 +1,247 @@ +=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 for an aggregated signals and problems query. + class AggregatedSignalsProblemsRequestAttributes + include BaseGenericModel + + # The RUM application ID to analyze. + attr_reader :application_id + + # Performance criteria to filter view instances by a metric threshold. + attr_accessor :criteria + + # List of detection types to include in the response. When omitted, all types are returned. + attr_accessor :detection_types + + # RUM query string to filter events (for example, @session.type:user @geo.country:US). + attr_accessor :filter + + # Start of the time range as a Unix timestamp in seconds. + attr_reader :from + + # Number of view instances to sample, between 1 and 50. + attr_reader :sample_size + + # End of the time range as a Unix timestamp in seconds. + attr_reader :to + + # The RUM view name to analyze (for example, /account/login). + attr_reader :view_name + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'application_id' => :'application_id', + :'criteria' => :'criteria', + :'detection_types' => :'detection_types', + :'filter' => :'filter', + :'from' => :'from', + :'sample_size' => :'sample_size', + :'to' => :'to', + :'view_name' => :'view_name' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'application_id' => :'String', + :'criteria' => :'AggregatedWaterfallPerformanceCriteria', + :'detection_types' => :'Array', + :'filter' => :'String', + :'from' => :'Integer', + :'sample_size' => :'Integer', + :'to' => :'Integer', + :'view_name' => :'String' + } + 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::AggregatedSignalsProblemsRequestAttributes` 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?(:'application_id') + self.application_id = attributes[:'application_id'] + end + + if attributes.key?(:'criteria') + self.criteria = attributes[:'criteria'] + end + + if attributes.key?(:'detection_types') + if (value = attributes[:'detection_types']).is_a?(Array) + self.detection_types = value + end + end + + if attributes.key?(:'filter') + self.filter = attributes[:'filter'] + end + + if attributes.key?(:'from') + self.from = attributes[:'from'] + end + + if attributes.key?(:'sample_size') + self.sample_size = attributes[:'sample_size'] + end + + if attributes.key?(:'to') + self.to = attributes[:'to'] + end + + if attributes.key?(:'view_name') + self.view_name = attributes[:'view_name'] + 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 @application_id.nil? + return false if @from.nil? + return false if @sample_size.nil? + return false if @sample_size > 50 + return false if @sample_size < 1 + return false if @to.nil? + return false if @view_name.nil? + true + end + + # Custom attribute writer method with validation + # @param application_id [Object] Object to be assigned + # @!visibility private + def application_id=(application_id) + if application_id.nil? + fail ArgumentError, 'invalid value for "application_id", application_id cannot be nil.' + end + @application_id = application_id + end + + # Custom attribute writer method with validation + # @param from [Object] Object to be assigned + # @!visibility private + def from=(from) + if from.nil? + fail ArgumentError, 'invalid value for "from", from cannot be nil.' + end + @from = from + end + + # Custom attribute writer method with validation + # @param sample_size [Object] Object to be assigned + # @!visibility private + def sample_size=(sample_size) + if sample_size.nil? + fail ArgumentError, 'invalid value for "sample_size", sample_size cannot be nil.' + end + if sample_size > 50 + fail ArgumentError, 'invalid value for "sample_size", must be smaller than or equal to 50.' + end + if sample_size < 1 + fail ArgumentError, 'invalid value for "sample_size", must be greater than or equal to 1.' + end + @sample_size = sample_size + end + + # Custom attribute writer method with validation + # @param to [Object] Object to be assigned + # @!visibility private + def to=(to) + if to.nil? + fail ArgumentError, 'invalid value for "to", to cannot be nil.' + end + @to = to + end + + # Custom attribute writer method with validation + # @param view_name [Object] Object to be assigned + # @!visibility private + def view_name=(view_name) + if view_name.nil? + fail ArgumentError, 'invalid value for "view_name", view_name cannot be nil.' + end + @view_name = view_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 && + application_id == o.application_id && + criteria == o.criteria && + detection_types == o.detection_types && + filter == o.filter && + from == o.from && + sample_size == o.sample_size && + to == o.to && + view_name == o.view_name && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [application_id, criteria, detection_types, filter, from, sample_size, to, view_name, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_signals_problems_request_data.rb b/lib/datadog_api_client/v2/models/aggregated_signals_problems_request_data.rb new file mode 100644 index 000000000000..e40dd2c97391 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_signals_problems_request_data.rb @@ -0,0 +1,144 @@ +=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 + # Data envelope for an aggregated signals and problems request. + class AggregatedSignalsProblemsRequestData + include BaseGenericModel + + # Attributes for an aggregated signals and problems query. + attr_reader :attributes + + # The JSON:API type for aggregated signals and problems requests. + 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', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'attributes' => :'AggregatedSignalsProblemsRequestAttributes', + :'type' => :'AggregatedSignalsProblemsRequestType' + } + 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::AggregatedSignalsProblemsRequestData` 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?(:'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 && + 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, type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_signals_problems_request_type.rb b/lib/datadog_api_client/v2/models/aggregated_signals_problems_request_type.rb new file mode 100644 index 000000000000..50aba1876773 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_signals_problems_request_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 JSON:API type for aggregated signals and problems requests. + class AggregatedSignalsProblemsRequestType + include BaseEnumModel + + AGGREGATED_SIGNALS_PROBLEMS = "aggregated_signals_problems".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_signals_problems_response.rb b/lib/datadog_api_client/v2/models/aggregated_signals_problems_response.rb new file mode 100644 index 000000000000..2239471969a5 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_signals_problems_response.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 + # Response body for the aggregated signals and problems endpoint. + class AggregatedSignalsProblemsResponse + include BaseGenericModel + + # Data envelope for an aggregated signals and problems response. + attr_reader :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'AggregatedSignalsProblemsResponseData' + } + 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::AggregatedSignalsProblemsResponse` 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') + self.data = attributes[:'data'] + 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? + 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 + + # 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 && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_signals_problems_response_attributes.rb b/lib/datadog_api_client/v2/models/aggregated_signals_problems_response_attributes.rb new file mode 100644 index 000000000000..c5b8f5a10346 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_signals_problems_response_attributes.rb @@ -0,0 +1,238 @@ +=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 an aggregated signals and problems response. + class AggregatedSignalsProblemsResponseAttributes + include BaseGenericModel + + # The RUM application ID that was analyzed. + attr_reader :application_id + + # Performance criteria to filter view instances by a metric threshold. + attr_accessor :criteria + + # Start of the analyzed time range as a Unix timestamp in seconds. + attr_reader :from + + # Grouped detection results by detection type. + attr_reader :problem_detections + + # Metadata about the sampling quality for a signals and problems query. + attr_reader :sample_metadata + + # End of the analyzed time range as a Unix timestamp in seconds. + attr_reader :to + + # The RUM view name that was analyzed. + attr_reader :view_name + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'application_id' => :'application_id', + :'criteria' => :'criteria', + :'from' => :'from', + :'problem_detections' => :'problem_detections', + :'sample_metadata' => :'sample_metadata', + :'to' => :'to', + :'view_name' => :'view_name' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'application_id' => :'String', + :'criteria' => :'AggregatedWaterfallPerformanceCriteria', + :'from' => :'Integer', + :'problem_detections' => :'SignalsProblemsDetections', + :'sample_metadata' => :'SignalsProblemsSampleMetadata', + :'to' => :'Integer', + :'view_name' => :'String' + } + 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::AggregatedSignalsProblemsResponseAttributes` 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?(:'application_id') + self.application_id = attributes[:'application_id'] + end + + if attributes.key?(:'criteria') + self.criteria = attributes[:'criteria'] + end + + if attributes.key?(:'from') + self.from = attributes[:'from'] + end + + if attributes.key?(:'problem_detections') + self.problem_detections = attributes[:'problem_detections'] + end + + if attributes.key?(:'sample_metadata') + self.sample_metadata = attributes[:'sample_metadata'] + end + + if attributes.key?(:'to') + self.to = attributes[:'to'] + end + + if attributes.key?(:'view_name') + self.view_name = attributes[:'view_name'] + 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 @application_id.nil? + return false if @from.nil? + return false if @problem_detections.nil? + return false if @sample_metadata.nil? + return false if @to.nil? + return false if @view_name.nil? + true + end + + # Custom attribute writer method with validation + # @param application_id [Object] Object to be assigned + # @!visibility private + def application_id=(application_id) + if application_id.nil? + fail ArgumentError, 'invalid value for "application_id", application_id cannot be nil.' + end + @application_id = application_id + end + + # Custom attribute writer method with validation + # @param from [Object] Object to be assigned + # @!visibility private + def from=(from) + if from.nil? + fail ArgumentError, 'invalid value for "from", from cannot be nil.' + end + @from = from + end + + # Custom attribute writer method with validation + # @param problem_detections [Object] Object to be assigned + # @!visibility private + def problem_detections=(problem_detections) + if problem_detections.nil? + fail ArgumentError, 'invalid value for "problem_detections", problem_detections cannot be nil.' + end + @problem_detections = problem_detections + end + + # Custom attribute writer method with validation + # @param sample_metadata [Object] Object to be assigned + # @!visibility private + def sample_metadata=(sample_metadata) + if sample_metadata.nil? + fail ArgumentError, 'invalid value for "sample_metadata", sample_metadata cannot be nil.' + end + @sample_metadata = sample_metadata + end + + # Custom attribute writer method with validation + # @param to [Object] Object to be assigned + # @!visibility private + def to=(to) + if to.nil? + fail ArgumentError, 'invalid value for "to", to cannot be nil.' + end + @to = to + end + + # Custom attribute writer method with validation + # @param view_name [Object] Object to be assigned + # @!visibility private + def view_name=(view_name) + if view_name.nil? + fail ArgumentError, 'invalid value for "view_name", view_name cannot be nil.' + end + @view_name = view_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 && + application_id == o.application_id && + criteria == o.criteria && + from == o.from && + problem_detections == o.problem_detections && + sample_metadata == o.sample_metadata && + to == o.to && + view_name == o.view_name && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [application_id, criteria, from, problem_detections, sample_metadata, to, view_name, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_signals_problems_response_data.rb b/lib/datadog_api_client/v2/models/aggregated_signals_problems_response_data.rb new file mode 100644 index 000000000000..4c1ae8e8c8ee --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_signals_problems_response_data.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 + # Data envelope for an aggregated signals and problems response. + class AggregatedSignalsProblemsResponseData + include BaseGenericModel + + # Attributes of an aggregated signals and problems response. + attr_reader :attributes + + # Hash-based unique identifier for this aggregation. + attr_reader :id + + # The JSON:API type for aggregated signals and problems requests. + 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' => :'AggregatedSignalsProblemsResponseAttributes', + :'id' => :'String', + :'type' => :'AggregatedSignalsProblemsRequestType' + } + 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::AggregatedSignalsProblemsResponseData` 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/aggregated_slow_fcp_high_bytes.rb b/lib/datadog_api_client/v2/models/aggregated_slow_fcp_high_bytes.rb new file mode 100644 index 000000000000..8dba0c7c7bbe --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_slow_fcp_high_bytes.rb @@ -0,0 +1,253 @@ +=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 + # Aggregated slow first contentful paint with high byte count detection. + class AggregatedSlowFCPHighBytes + include BaseGenericModel + + # Average total bytes loaded before first contentful paint. + attr_reader :avg_bytes_before_fcp_bytes + + # Average first contentful paint time in milliseconds. + attr_reader :avg_first_contentful_paint_ms + + # Average number of resources loaded before first contentful paint. + attr_reader :avg_resource_count_before_fcp + + # Unique fingerprint identifying this detection group. + attr_reader :fingerprint + + # Impact score for this detection. + attr_reader :impact_score + + # Platform identifier for the affected views. + attr_reader :platform + + # Number of sampled views where this detection occurred. + attr_reader :view_occurrences + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'avg_bytes_before_fcp_bytes' => :'avg_bytes_before_fcp_bytes', + :'avg_first_contentful_paint_ms' => :'avg_first_contentful_paint_ms', + :'avg_resource_count_before_fcp' => :'avg_resource_count_before_fcp', + :'fingerprint' => :'fingerprint', + :'impact_score' => :'impact_score', + :'platform' => :'platform', + :'view_occurrences' => :'view_occurrences' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'avg_bytes_before_fcp_bytes' => :'Integer', + :'avg_first_contentful_paint_ms' => :'Integer', + :'avg_resource_count_before_fcp' => :'Integer', + :'fingerprint' => :'String', + :'impact_score' => :'Float', + :'platform' => :'String', + :'view_occurrences' => :'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::AggregatedSlowFCPHighBytes` 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?(:'avg_bytes_before_fcp_bytes') + self.avg_bytes_before_fcp_bytes = attributes[:'avg_bytes_before_fcp_bytes'] + end + + if attributes.key?(:'avg_first_contentful_paint_ms') + self.avg_first_contentful_paint_ms = attributes[:'avg_first_contentful_paint_ms'] + end + + if attributes.key?(:'avg_resource_count_before_fcp') + self.avg_resource_count_before_fcp = attributes[:'avg_resource_count_before_fcp'] + end + + if attributes.key?(:'fingerprint') + self.fingerprint = attributes[:'fingerprint'] + end + + if attributes.key?(:'impact_score') + self.impact_score = attributes[:'impact_score'] + end + + if attributes.key?(:'platform') + self.platform = attributes[:'platform'] + end + + if attributes.key?(:'view_occurrences') + self.view_occurrences = attributes[:'view_occurrences'] + 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 @avg_bytes_before_fcp_bytes.nil? + return false if @avg_first_contentful_paint_ms.nil? + return false if @avg_resource_count_before_fcp.nil? + return false if @fingerprint.nil? + return false if @impact_score.nil? + return false if @platform.nil? + return false if @view_occurrences.nil? + return false if @view_occurrences > 2147483647 + true + end + + # Custom attribute writer method with validation + # @param avg_bytes_before_fcp_bytes [Object] Object to be assigned + # @!visibility private + def avg_bytes_before_fcp_bytes=(avg_bytes_before_fcp_bytes) + if avg_bytes_before_fcp_bytes.nil? + fail ArgumentError, 'invalid value for "avg_bytes_before_fcp_bytes", avg_bytes_before_fcp_bytes cannot be nil.' + end + @avg_bytes_before_fcp_bytes = avg_bytes_before_fcp_bytes + end + + # Custom attribute writer method with validation + # @param avg_first_contentful_paint_ms [Object] Object to be assigned + # @!visibility private + def avg_first_contentful_paint_ms=(avg_first_contentful_paint_ms) + if avg_first_contentful_paint_ms.nil? + fail ArgumentError, 'invalid value for "avg_first_contentful_paint_ms", avg_first_contentful_paint_ms cannot be nil.' + end + @avg_first_contentful_paint_ms = avg_first_contentful_paint_ms + end + + # Custom attribute writer method with validation + # @param avg_resource_count_before_fcp [Object] Object to be assigned + # @!visibility private + def avg_resource_count_before_fcp=(avg_resource_count_before_fcp) + if avg_resource_count_before_fcp.nil? + fail ArgumentError, 'invalid value for "avg_resource_count_before_fcp", avg_resource_count_before_fcp cannot be nil.' + end + @avg_resource_count_before_fcp = avg_resource_count_before_fcp + end + + # Custom attribute writer method with validation + # @param fingerprint [Object] Object to be assigned + # @!visibility private + def fingerprint=(fingerprint) + if fingerprint.nil? + fail ArgumentError, 'invalid value for "fingerprint", fingerprint cannot be nil.' + end + @fingerprint = fingerprint + end + + # Custom attribute writer method with validation + # @param impact_score [Object] Object to be assigned + # @!visibility private + def impact_score=(impact_score) + if impact_score.nil? + fail ArgumentError, 'invalid value for "impact_score", impact_score cannot be nil.' + end + @impact_score = impact_score + end + + # Custom attribute writer method with validation + # @param platform [Object] Object to be assigned + # @!visibility private + def platform=(platform) + if platform.nil? + fail ArgumentError, 'invalid value for "platform", platform cannot be nil.' + end + @platform = platform + end + + # Custom attribute writer method with validation + # @param view_occurrences [Object] Object to be assigned + # @!visibility private + def view_occurrences=(view_occurrences) + if view_occurrences.nil? + fail ArgumentError, 'invalid value for "view_occurrences", view_occurrences cannot be nil.' + end + if view_occurrences > 2147483647 + fail ArgumentError, 'invalid value for "view_occurrences", must be smaller than or equal to 2147483647.' + end + @view_occurrences = view_occurrences + 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 && + avg_bytes_before_fcp_bytes == o.avg_bytes_before_fcp_bytes && + avg_first_contentful_paint_ms == o.avg_first_contentful_paint_ms && + avg_resource_count_before_fcp == o.avg_resource_count_before_fcp && + fingerprint == o.fingerprint && + impact_score == o.impact_score && + platform == o.platform && + view_occurrences == o.view_occurrences && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [avg_bytes_before_fcp_bytes, avg_first_contentful_paint_ms, avg_resource_count_before_fcp, fingerprint, impact_score, platform, view_occurrences, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_slow_interaction_long_task.rb b/lib/datadog_api_client/v2/models/aggregated_slow_interaction_long_task.rb new file mode 100644 index 000000000000..354a05fcfa21 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_slow_interaction_long_task.rb @@ -0,0 +1,286 @@ +=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 + # Aggregated slow interaction with long task detection grouped by action and selector. + class AggregatedSlowInteractionLongTask + include BaseGenericModel + + # Type of user interaction that triggered the slow response. + attr_reader :action_type + + # Average long task blocking duration in nanoseconds. + attr_reader :avg_blocking_duration + + # Average total interaction duration in nanoseconds. + attr_reader :avg_duration + + # Unique fingerprint identifying this detection group. + attr_reader :fingerprint + + # Impact score combining view frequency and blocking severity. + attr_reader :impact_score + + # Total number of detection instances across sampled views. + attr_reader :instance_count + + # CSS selector of the element that was interacted with. + attr_accessor :selector + + # Normalized CSS selector with dynamic parts replaced. + attr_accessor :selector_normalized + + # Number of sampled views where this detection occurred. + attr_reader :view_occurrences + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'action_type' => :'action_type', + :'avg_blocking_duration' => :'avg_blocking_duration', + :'avg_duration' => :'avg_duration', + :'fingerprint' => :'fingerprint', + :'impact_score' => :'impact_score', + :'instance_count' => :'instance_count', + :'selector' => :'selector', + :'selector_normalized' => :'selector_normalized', + :'view_occurrences' => :'view_occurrences' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'action_type' => :'String', + :'avg_blocking_duration' => :'Integer', + :'avg_duration' => :'Integer', + :'fingerprint' => :'String', + :'impact_score' => :'Float', + :'instance_count' => :'Integer', + :'selector' => :'String', + :'selector_normalized' => :'String', + :'view_occurrences' => :'Integer' + } + end + + # List of attributes with nullable: true + # @!visibility private + def self.openapi_nullable + Set.new([ + :'selector', + :'selector_normalized', + ]) + 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::AggregatedSlowInteractionLongTask` 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?(:'action_type') + self.action_type = attributes[:'action_type'] + end + + if attributes.key?(:'avg_blocking_duration') + self.avg_blocking_duration = attributes[:'avg_blocking_duration'] + end + + if attributes.key?(:'avg_duration') + self.avg_duration = attributes[:'avg_duration'] + end + + if attributes.key?(:'fingerprint') + self.fingerprint = attributes[:'fingerprint'] + end + + if attributes.key?(:'impact_score') + self.impact_score = attributes[:'impact_score'] + end + + if attributes.key?(:'instance_count') + self.instance_count = attributes[:'instance_count'] + end + + if attributes.key?(:'selector') + self.selector = attributes[:'selector'] + end + + if attributes.key?(:'selector_normalized') + self.selector_normalized = attributes[:'selector_normalized'] + end + + if attributes.key?(:'view_occurrences') + self.view_occurrences = attributes[:'view_occurrences'] + 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 @action_type.nil? + return false if @avg_blocking_duration.nil? + return false if @avg_duration.nil? + return false if @fingerprint.nil? + return false if @impact_score.nil? + return false if @instance_count.nil? + return false if @instance_count > 2147483647 + return false if @view_occurrences.nil? + return false if @view_occurrences > 2147483647 + true + end + + # Custom attribute writer method with validation + # @param action_type [Object] Object to be assigned + # @!visibility private + def action_type=(action_type) + if action_type.nil? + fail ArgumentError, 'invalid value for "action_type", action_type cannot be nil.' + end + @action_type = action_type + end + + # Custom attribute writer method with validation + # @param avg_blocking_duration [Object] Object to be assigned + # @!visibility private + def avg_blocking_duration=(avg_blocking_duration) + if avg_blocking_duration.nil? + fail ArgumentError, 'invalid value for "avg_blocking_duration", avg_blocking_duration cannot be nil.' + end + @avg_blocking_duration = avg_blocking_duration + end + + # Custom attribute writer method with validation + # @param avg_duration [Object] Object to be assigned + # @!visibility private + def avg_duration=(avg_duration) + if avg_duration.nil? + fail ArgumentError, 'invalid value for "avg_duration", avg_duration cannot be nil.' + end + @avg_duration = avg_duration + end + + # Custom attribute writer method with validation + # @param fingerprint [Object] Object to be assigned + # @!visibility private + def fingerprint=(fingerprint) + if fingerprint.nil? + fail ArgumentError, 'invalid value for "fingerprint", fingerprint cannot be nil.' + end + @fingerprint = fingerprint + end + + # Custom attribute writer method with validation + # @param impact_score [Object] Object to be assigned + # @!visibility private + def impact_score=(impact_score) + if impact_score.nil? + fail ArgumentError, 'invalid value for "impact_score", impact_score cannot be nil.' + end + @impact_score = impact_score + end + + # Custom attribute writer method with validation + # @param instance_count [Object] Object to be assigned + # @!visibility private + def instance_count=(instance_count) + if instance_count.nil? + fail ArgumentError, 'invalid value for "instance_count", instance_count cannot be nil.' + end + if instance_count > 2147483647 + fail ArgumentError, 'invalid value for "instance_count", must be smaller than or equal to 2147483647.' + end + @instance_count = instance_count + end + + # Custom attribute writer method with validation + # @param view_occurrences [Object] Object to be assigned + # @!visibility private + def view_occurrences=(view_occurrences) + if view_occurrences.nil? + fail ArgumentError, 'invalid value for "view_occurrences", view_occurrences cannot be nil.' + end + if view_occurrences > 2147483647 + fail ArgumentError, 'invalid value for "view_occurrences", must be smaller than or equal to 2147483647.' + end + @view_occurrences = view_occurrences + 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 && + action_type == o.action_type && + avg_blocking_duration == o.avg_blocking_duration && + avg_duration == o.avg_duration && + fingerprint == o.fingerprint && + impact_score == o.impact_score && + instance_count == o.instance_count && + selector == o.selector && + selector_normalized == o.selector_normalized && + view_occurrences == o.view_occurrences && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [action_type, avg_blocking_duration, avg_duration, fingerprint, impact_score, instance_count, selector, selector_normalized, view_occurrences, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_uncompressed_resource.rb b/lib/datadog_api_client/v2/models/aggregated_uncompressed_resource.rb new file mode 100644 index 000000000000..467311527b84 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_uncompressed_resource.rb @@ -0,0 +1,307 @@ +=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 + # Aggregated uncompressed resource detection grouped by URL path. + class AggregatedUncompressedResource + include BaseGenericModel + + # Average uncompressed body size in bytes. + attr_reader :avg_body_size + + # Average resource loading duration in nanoseconds. + attr_reader :avg_duration + + # Unique fingerprint identifying this detection group. + attr_reader :fingerprint + + # Impact score combining view frequency and resource size. + attr_reader :impact_score + + # Total number of detection instances across sampled views. + attr_reader :instance_count + + # CDN or hosting provider type for the resource. + attr_accessor :provider_type + + # Whether the resource is render-blocking. + attr_accessor :render_blocking + + # Type of the resource (JS, CSS, image, fetch, and so on). + attr_reader :resource_type + + # Normalized URL path pattern for the uncompressed resource. + attr_reader :url_path_group + + # Number of sampled views where this detection occurred. + attr_reader :view_occurrences + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'avg_body_size' => :'avg_body_size', + :'avg_duration' => :'avg_duration', + :'fingerprint' => :'fingerprint', + :'impact_score' => :'impact_score', + :'instance_count' => :'instance_count', + :'provider_type' => :'provider_type', + :'render_blocking' => :'render_blocking', + :'resource_type' => :'resource_type', + :'url_path_group' => :'url_path_group', + :'view_occurrences' => :'view_occurrences' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'avg_body_size' => :'Integer', + :'avg_duration' => :'Integer', + :'fingerprint' => :'String', + :'impact_score' => :'Float', + :'instance_count' => :'Integer', + :'provider_type' => :'String', + :'render_blocking' => :'String', + :'resource_type' => :'String', + :'url_path_group' => :'String', + :'view_occurrences' => :'Integer' + } + end + + # List of attributes with nullable: true + # @!visibility private + def self.openapi_nullable + Set.new([ + :'provider_type', + :'render_blocking', + ]) + 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::AggregatedUncompressedResource` 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?(:'avg_body_size') + self.avg_body_size = attributes[:'avg_body_size'] + end + + if attributes.key?(:'avg_duration') + self.avg_duration = attributes[:'avg_duration'] + end + + if attributes.key?(:'fingerprint') + self.fingerprint = attributes[:'fingerprint'] + end + + if attributes.key?(:'impact_score') + self.impact_score = attributes[:'impact_score'] + end + + if attributes.key?(:'instance_count') + self.instance_count = attributes[:'instance_count'] + end + + if attributes.key?(:'provider_type') + self.provider_type = attributes[:'provider_type'] + end + + if attributes.key?(:'render_blocking') + self.render_blocking = attributes[:'render_blocking'] + end + + if attributes.key?(:'resource_type') + self.resource_type = attributes[:'resource_type'] + end + + if attributes.key?(:'url_path_group') + self.url_path_group = attributes[:'url_path_group'] + end + + if attributes.key?(:'view_occurrences') + self.view_occurrences = attributes[:'view_occurrences'] + 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 @avg_body_size.nil? + return false if @avg_duration.nil? + return false if @fingerprint.nil? + return false if @impact_score.nil? + return false if @instance_count.nil? + return false if @instance_count > 2147483647 + return false if @resource_type.nil? + return false if @url_path_group.nil? + return false if @view_occurrences.nil? + return false if @view_occurrences > 2147483647 + true + end + + # Custom attribute writer method with validation + # @param avg_body_size [Object] Object to be assigned + # @!visibility private + def avg_body_size=(avg_body_size) + if avg_body_size.nil? + fail ArgumentError, 'invalid value for "avg_body_size", avg_body_size cannot be nil.' + end + @avg_body_size = avg_body_size + end + + # Custom attribute writer method with validation + # @param avg_duration [Object] Object to be assigned + # @!visibility private + def avg_duration=(avg_duration) + if avg_duration.nil? + fail ArgumentError, 'invalid value for "avg_duration", avg_duration cannot be nil.' + end + @avg_duration = avg_duration + end + + # Custom attribute writer method with validation + # @param fingerprint [Object] Object to be assigned + # @!visibility private + def fingerprint=(fingerprint) + if fingerprint.nil? + fail ArgumentError, 'invalid value for "fingerprint", fingerprint cannot be nil.' + end + @fingerprint = fingerprint + end + + # Custom attribute writer method with validation + # @param impact_score [Object] Object to be assigned + # @!visibility private + def impact_score=(impact_score) + if impact_score.nil? + fail ArgumentError, 'invalid value for "impact_score", impact_score cannot be nil.' + end + @impact_score = impact_score + end + + # Custom attribute writer method with validation + # @param instance_count [Object] Object to be assigned + # @!visibility private + def instance_count=(instance_count) + if instance_count.nil? + fail ArgumentError, 'invalid value for "instance_count", instance_count cannot be nil.' + end + if instance_count > 2147483647 + fail ArgumentError, 'invalid value for "instance_count", must be smaller than or equal to 2147483647.' + end + @instance_count = instance_count + end + + # Custom attribute writer method with validation + # @param resource_type [Object] Object to be assigned + # @!visibility private + def resource_type=(resource_type) + if resource_type.nil? + fail ArgumentError, 'invalid value for "resource_type", resource_type cannot be nil.' + end + @resource_type = resource_type + end + + # Custom attribute writer method with validation + # @param url_path_group [Object] Object to be assigned + # @!visibility private + def url_path_group=(url_path_group) + if url_path_group.nil? + fail ArgumentError, 'invalid value for "url_path_group", url_path_group cannot be nil.' + end + @url_path_group = url_path_group + end + + # Custom attribute writer method with validation + # @param view_occurrences [Object] Object to be assigned + # @!visibility private + def view_occurrences=(view_occurrences) + if view_occurrences.nil? + fail ArgumentError, 'invalid value for "view_occurrences", view_occurrences cannot be nil.' + end + if view_occurrences > 2147483647 + fail ArgumentError, 'invalid value for "view_occurrences", must be smaller than or equal to 2147483647.' + end + @view_occurrences = view_occurrences + 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 && + avg_body_size == o.avg_body_size && + avg_duration == o.avg_duration && + fingerprint == o.fingerprint && + impact_score == o.impact_score && + instance_count == o.instance_count && + provider_type == o.provider_type && + render_blocking == o.render_blocking && + resource_type == o.resource_type && + url_path_group == o.url_path_group && + view_occurrences == o.view_occurrences && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [avg_body_size, avg_duration, fingerprint, impact_score, instance_count, provider_type, render_blocking, resource_type, url_path_group, view_occurrences, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_waterfall_performance_criteria.rb b/lib/datadog_api_client/v2/models/aggregated_waterfall_performance_criteria.rb new file mode 100644 index 000000000000..3d441b5b9924 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_waterfall_performance_criteria.rb @@ -0,0 +1,143 @@ +=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 + # Performance criteria to filter view instances by a metric threshold. + class AggregatedWaterfallPerformanceCriteria + include BaseGenericModel + + # Maximum threshold in seconds (inclusive). + attr_accessor :max + + # Performance metric used to filter view instances by threshold. + attr_reader :metric + + # Minimum threshold in seconds (inclusive). + attr_accessor :min + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'max' => :'max', + :'metric' => :'metric', + :'min' => :'min' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'max' => :'Float', + :'metric' => :'AggregatedWaterfallPerformanceCriteriaMetric', + :'min' => :'Float' + } + 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::AggregatedWaterfallPerformanceCriteria` 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?(:'max') + self.max = attributes[:'max'] + end + + if attributes.key?(:'metric') + self.metric = attributes[:'metric'] + end + + if attributes.key?(:'min') + self.min = attributes[:'min'] + 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 @metric.nil? + true + end + + # Custom attribute writer method with validation + # @param metric [Object] Object to be assigned + # @!visibility private + def metric=(metric) + if metric.nil? + fail ArgumentError, 'invalid value for "metric", metric cannot be nil.' + end + @metric = metric + 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 && + max == o.max && + metric == o.metric && + min == o.min && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [max, metric, min, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_waterfall_performance_criteria_metric.rb b/lib/datadog_api_client/v2/models/aggregated_waterfall_performance_criteria_metric.rb new file mode 100644 index 000000000000..5f47f73468a4 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_waterfall_performance_criteria_metric.rb @@ -0,0 +1,29 @@ +=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 + # Performance metric used to filter view instances by threshold. + class AggregatedWaterfallPerformanceCriteriaMetric + include BaseEnumModel + + LOADING_TIME = "loading_time".freeze + LARGEST_CONTENTFUL_PAINT = "largest_contentful_paint".freeze + FIRST_CONTENTFUL_PAINT = "first_contentful_paint".freeze + INTERACTION_TO_NEXT_PAINT = "interaction_to_next_paint".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_waterfall_request.rb b/lib/datadog_api_client/v2/models/aggregated_waterfall_request.rb new file mode 100644 index 000000000000..d2a392c2a87f --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_waterfall_request.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 + # Request body for the aggregated waterfall endpoint. + class AggregatedWaterfallRequest + include BaseGenericModel + + # Data envelope for an aggregated waterfall request. + attr_reader :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'AggregatedWaterfallRequestData' + } + 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::AggregatedWaterfallRequest` 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') + self.data = attributes[:'data'] + 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? + 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 + + # 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 && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_waterfall_request_attributes.rb b/lib/datadog_api_client/v2/models/aggregated_waterfall_request_attributes.rb new file mode 100644 index 000000000000..780629f0b0f9 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_waterfall_request_attributes.rb @@ -0,0 +1,245 @@ +=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 for an aggregated waterfall query. + class AggregatedWaterfallRequestAttributes + include BaseGenericModel + + # The RUM application ID to analyze. + attr_reader :application_id + + # Performance criteria to filter view instances by a metric threshold. + attr_accessor :criteria + + # RUM query string to filter events (for example, @session.type:user @geo.country:US). + attr_accessor :filter + + # Start of the time range as a Unix timestamp in seconds. + attr_reader :from + + # When true, enriches each resource with cross-view appearance statistics. + attr_accessor :include_global_appearance + + # Number of view instances to sample, between 1 and 500. + attr_reader :sample_size + + # End of the time range as a Unix timestamp in seconds. + attr_reader :to + + # The RUM view name to analyze (for example, /account/login). + attr_reader :view_name + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'application_id' => :'application_id', + :'criteria' => :'criteria', + :'filter' => :'filter', + :'from' => :'from', + :'include_global_appearance' => :'include_global_appearance', + :'sample_size' => :'sample_size', + :'to' => :'to', + :'view_name' => :'view_name' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'application_id' => :'String', + :'criteria' => :'AggregatedWaterfallPerformanceCriteria', + :'filter' => :'String', + :'from' => :'Integer', + :'include_global_appearance' => :'Boolean', + :'sample_size' => :'Integer', + :'to' => :'Integer', + :'view_name' => :'String' + } + 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::AggregatedWaterfallRequestAttributes` 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?(:'application_id') + self.application_id = attributes[:'application_id'] + end + + if attributes.key?(:'criteria') + self.criteria = attributes[:'criteria'] + end + + if attributes.key?(:'filter') + self.filter = attributes[:'filter'] + end + + if attributes.key?(:'from') + self.from = attributes[:'from'] + end + + if attributes.key?(:'include_global_appearance') + self.include_global_appearance = attributes[:'include_global_appearance'] + end + + if attributes.key?(:'sample_size') + self.sample_size = attributes[:'sample_size'] + end + + if attributes.key?(:'to') + self.to = attributes[:'to'] + end + + if attributes.key?(:'view_name') + self.view_name = attributes[:'view_name'] + 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 @application_id.nil? + return false if @from.nil? + return false if @sample_size.nil? + return false if @sample_size > 500 + return false if @sample_size < 1 + return false if @to.nil? + return false if @view_name.nil? + true + end + + # Custom attribute writer method with validation + # @param application_id [Object] Object to be assigned + # @!visibility private + def application_id=(application_id) + if application_id.nil? + fail ArgumentError, 'invalid value for "application_id", application_id cannot be nil.' + end + @application_id = application_id + end + + # Custom attribute writer method with validation + # @param from [Object] Object to be assigned + # @!visibility private + def from=(from) + if from.nil? + fail ArgumentError, 'invalid value for "from", from cannot be nil.' + end + @from = from + end + + # Custom attribute writer method with validation + # @param sample_size [Object] Object to be assigned + # @!visibility private + def sample_size=(sample_size) + if sample_size.nil? + fail ArgumentError, 'invalid value for "sample_size", sample_size cannot be nil.' + end + if sample_size > 500 + fail ArgumentError, 'invalid value for "sample_size", must be smaller than or equal to 500.' + end + if sample_size < 1 + fail ArgumentError, 'invalid value for "sample_size", must be greater than or equal to 1.' + end + @sample_size = sample_size + end + + # Custom attribute writer method with validation + # @param to [Object] Object to be assigned + # @!visibility private + def to=(to) + if to.nil? + fail ArgumentError, 'invalid value for "to", to cannot be nil.' + end + @to = to + end + + # Custom attribute writer method with validation + # @param view_name [Object] Object to be assigned + # @!visibility private + def view_name=(view_name) + if view_name.nil? + fail ArgumentError, 'invalid value for "view_name", view_name cannot be nil.' + end + @view_name = view_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 && + application_id == o.application_id && + criteria == o.criteria && + filter == o.filter && + from == o.from && + include_global_appearance == o.include_global_appearance && + sample_size == o.sample_size && + to == o.to && + view_name == o.view_name && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [application_id, criteria, filter, from, include_global_appearance, sample_size, to, view_name, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_waterfall_request_data.rb b/lib/datadog_api_client/v2/models/aggregated_waterfall_request_data.rb new file mode 100644 index 000000000000..eceb05cd5129 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_waterfall_request_data.rb @@ -0,0 +1,144 @@ +=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 + # Data envelope for an aggregated waterfall request. + class AggregatedWaterfallRequestData + include BaseGenericModel + + # Attributes for an aggregated waterfall query. + attr_reader :attributes + + # The JSON:API type for aggregated waterfall requests. + 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', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'attributes' => :'AggregatedWaterfallRequestAttributes', + :'type' => :'AggregatedWaterfallRequestType' + } + 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::AggregatedWaterfallRequestData` 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?(:'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 && + 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, type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_waterfall_request_type.rb b/lib/datadog_api_client/v2/models/aggregated_waterfall_request_type.rb new file mode 100644 index 000000000000..58f068333ad5 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_waterfall_request_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 JSON:API type for aggregated waterfall requests. + class AggregatedWaterfallRequestType + include BaseEnumModel + + AGGREGATED_WATERFALL = "aggregated_waterfall".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_waterfall_response.rb b/lib/datadog_api_client/v2/models/aggregated_waterfall_response.rb new file mode 100644 index 000000000000..922acf4b4956 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_waterfall_response.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 + # Response body for the aggregated waterfall endpoint. + class AggregatedWaterfallResponse + include BaseGenericModel + + # Data envelope for an aggregated waterfall response. + attr_reader :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'AggregatedWaterfallResponseData' + } + 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::AggregatedWaterfallResponse` 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') + self.data = attributes[:'data'] + 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? + 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 + + # 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 && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_waterfall_response_attributes.rb b/lib/datadog_api_client/v2/models/aggregated_waterfall_response_attributes.rb new file mode 100644 index 000000000000..0ccc156ad708 --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_waterfall_response_attributes.rb @@ -0,0 +1,288 @@ +=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 an aggregated waterfall response. + class AggregatedWaterfallResponseAttributes + include BaseGenericModel + + # The RUM application ID that was analyzed. + attr_reader :application_id + + # Performance criteria to filter view instances by a metric threshold. + attr_accessor :criteria + + # Start of the analyzed time range as a Unix timestamp in seconds. + attr_reader :from + + # Network resources in chronological waterfall order. + attr_reader :resources + + # List of RUM view IDs sampled for this aggregation, capped at 50. + attr_reader :sampled_view_ids + + # End of the analyzed time range as a Unix timestamp in seconds. + attr_reader :to + + # Overall cache hit rate across all sampled views. + attr_reader :total_cache_hit_rate_pct + + # Number of view instances included in the analysis. + attr_reader :view_count + + # The RUM view name that was analyzed. + attr_reader :view_name + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'application_id' => :'application_id', + :'criteria' => :'criteria', + :'from' => :'from', + :'resources' => :'resources', + :'sampled_view_ids' => :'sampled_view_ids', + :'to' => :'to', + :'total_cache_hit_rate_pct' => :'total_cache_hit_rate_pct', + :'view_count' => :'view_count', + :'view_name' => :'view_name' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'application_id' => :'String', + :'criteria' => :'AggregatedWaterfallPerformanceCriteria', + :'from' => :'Integer', + :'resources' => :'Array', + :'sampled_view_ids' => :'Array', + :'to' => :'Integer', + :'total_cache_hit_rate_pct' => :'Float', + :'view_count' => :'Integer', + :'view_name' => :'String' + } + 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::AggregatedWaterfallResponseAttributes` 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?(:'application_id') + self.application_id = attributes[:'application_id'] + end + + if attributes.key?(:'criteria') + self.criteria = attributes[:'criteria'] + end + + if attributes.key?(:'from') + self.from = attributes[:'from'] + end + + if attributes.key?(:'resources') + if (value = attributes[:'resources']).is_a?(Array) + self.resources = value + end + end + + if attributes.key?(:'sampled_view_ids') + if (value = attributes[:'sampled_view_ids']).is_a?(Array) + self.sampled_view_ids = value + end + end + + if attributes.key?(:'to') + self.to = attributes[:'to'] + end + + if attributes.key?(:'total_cache_hit_rate_pct') + self.total_cache_hit_rate_pct = attributes[:'total_cache_hit_rate_pct'] + end + + if attributes.key?(:'view_count') + self.view_count = attributes[:'view_count'] + end + + if attributes.key?(:'view_name') + self.view_name = attributes[:'view_name'] + 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 @application_id.nil? + return false if @from.nil? + return false if @resources.nil? + return false if @sampled_view_ids.nil? + return false if @to.nil? + return false if @total_cache_hit_rate_pct.nil? + return false if @view_count.nil? + return false if @view_count > 2147483647 + return false if @view_name.nil? + true + end + + # Custom attribute writer method with validation + # @param application_id [Object] Object to be assigned + # @!visibility private + def application_id=(application_id) + if application_id.nil? + fail ArgumentError, 'invalid value for "application_id", application_id cannot be nil.' + end + @application_id = application_id + end + + # Custom attribute writer method with validation + # @param from [Object] Object to be assigned + # @!visibility private + def from=(from) + if from.nil? + fail ArgumentError, 'invalid value for "from", from cannot be nil.' + end + @from = from + end + + # Custom attribute writer method with validation + # @param resources [Object] Object to be assigned + # @!visibility private + def resources=(resources) + if resources.nil? + fail ArgumentError, 'invalid value for "resources", resources cannot be nil.' + end + @resources = resources + end + + # Custom attribute writer method with validation + # @param sampled_view_ids [Object] Object to be assigned + # @!visibility private + def sampled_view_ids=(sampled_view_ids) + if sampled_view_ids.nil? + fail ArgumentError, 'invalid value for "sampled_view_ids", sampled_view_ids cannot be nil.' + end + @sampled_view_ids = sampled_view_ids + end + + # Custom attribute writer method with validation + # @param to [Object] Object to be assigned + # @!visibility private + def to=(to) + if to.nil? + fail ArgumentError, 'invalid value for "to", to cannot be nil.' + end + @to = to + end + + # Custom attribute writer method with validation + # @param total_cache_hit_rate_pct [Object] Object to be assigned + # @!visibility private + def total_cache_hit_rate_pct=(total_cache_hit_rate_pct) + if total_cache_hit_rate_pct.nil? + fail ArgumentError, 'invalid value for "total_cache_hit_rate_pct", total_cache_hit_rate_pct cannot be nil.' + end + @total_cache_hit_rate_pct = total_cache_hit_rate_pct + end + + # Custom attribute writer method with validation + # @param view_count [Object] Object to be assigned + # @!visibility private + def view_count=(view_count) + if view_count.nil? + fail ArgumentError, 'invalid value for "view_count", view_count cannot be nil.' + end + if view_count > 2147483647 + fail ArgumentError, 'invalid value for "view_count", must be smaller than or equal to 2147483647.' + end + @view_count = view_count + end + + # Custom attribute writer method with validation + # @param view_name [Object] Object to be assigned + # @!visibility private + def view_name=(view_name) + if view_name.nil? + fail ArgumentError, 'invalid value for "view_name", view_name cannot be nil.' + end + @view_name = view_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 && + application_id == o.application_id && + criteria == o.criteria && + from == o.from && + resources == o.resources && + sampled_view_ids == o.sampled_view_ids && + to == o.to && + total_cache_hit_rate_pct == o.total_cache_hit_rate_pct && + view_count == o.view_count && + view_name == o.view_name && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [application_id, criteria, from, resources, sampled_view_ids, to, total_cache_hit_rate_pct, view_count, view_name, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/aggregated_waterfall_response_data.rb b/lib/datadog_api_client/v2/models/aggregated_waterfall_response_data.rb new file mode 100644 index 000000000000..7196295a2ddc --- /dev/null +++ b/lib/datadog_api_client/v2/models/aggregated_waterfall_response_data.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 + # Data envelope for an aggregated waterfall response. + class AggregatedWaterfallResponseData + include BaseGenericModel + + # Attributes of an aggregated waterfall response. + attr_reader :attributes + + # Hash-based unique identifier for this aggregation. + attr_reader :id + + # The JSON:API type for aggregated waterfall requests. + 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' => :'AggregatedWaterfallResponseAttributes', + :'id' => :'String', + :'type' => :'AggregatedWaterfallRequestType' + } + 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::AggregatedWaterfallResponseData` 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/dashboard_usage.rb b/lib/datadog_api_client/v2/models/dashboard_usage.rb index 7e3568566aa3..4b546e74bfd7 100644 --- a/lib/datadog_api_client/v2/models/dashboard_usage.rb +++ b/lib/datadog_api_client/v2/models/dashboard_usage.rb @@ -21,7 +21,7 @@ module DatadogAPIClient::V2 class DashboardUsage include BaseGenericModel - # Usage statistics for a dashboard. + # Usage statistics for a dashboard. The `viewer` field and all view-count fields (`total_views`, `viewed_at`, `total_views_by_type`) are populated only when Real User Monitoring (RUM) is active for the org. attr_reader :attributes # The dashboard ID. diff --git a/lib/datadog_api_client/v2/models/dashboard_usage_attributes.rb b/lib/datadog_api_client/v2/models/dashboard_usage_attributes.rb index 0832072ff05e..a2013da98595 100644 --- a/lib/datadog_api_client/v2/models/dashboard_usage_attributes.rb +++ b/lib/datadog_api_client/v2/models/dashboard_usage_attributes.rb @@ -17,7 +17,7 @@ require 'time' module DatadogAPIClient::V2 - # Usage statistics for a dashboard. + # Usage statistics for a dashboard. The `viewer` field and all view-count fields (`total_views`, `viewed_at`, `total_views_by_type`) are populated only when Real User Monitoring (RUM) is active for the org. class DashboardUsageAttributes include BaseGenericModel @@ -42,13 +42,13 @@ class DashboardUsageAttributes # The dashboard title. attr_accessor :title - # The total number of times the dashboard has been viewed. + # Total view count for the dashboard. Counts only views captured by Real User Monitoring (RUM); `0` in orgs without RUM. attr_accessor :total_views - # View counts keyed by view type. Possible keys are `in_app`, `embed`, `public`, `shared`, `api`, and `unknown`. + # View counts keyed by view type (`in_app`, `embed`, `public`, `shared`, `api`, `unknown`). Counts only views captured by Real User Monitoring (RUM); empty in orgs without RUM. attr_accessor :total_views_by_type - # When the dashboard was most recently viewed. + # When the dashboard was most recently viewed. Populated only when Real User Monitoring (RUM) is active for the org; `null` in orgs without RUM. attr_accessor :viewed_at # A user referenced from a dashboard usage record (author or viewer). diff --git a/lib/datadog_api_client/v2/models/long_task_metric_stats.rb b/lib/datadog_api_client/v2/models/long_task_metric_stats.rb new file mode 100644 index 000000000000..2da8e801c563 --- /dev/null +++ b/lib/datadog_api_client/v2/models/long_task_metric_stats.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 + # Statistical distribution (average, min, max) of a long task metric across sampled views. + class LongTaskMetricStats + include BaseGenericModel + + # Average value across sampled views. + attr_reader :average + + # Maximum value across sampled views. + attr_reader :max + + # Minimum value across sampled views. + attr_reader :min + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'average' => :'average', + :'max' => :'max', + :'min' => :'min' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'average' => :'Float', + :'max' => :'Float', + :'min' => :'Float' + } + 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::LongTaskMetricStats` 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?(:'average') + self.average = attributes[:'average'] + end + + if attributes.key?(:'max') + self.max = attributes[:'max'] + end + + if attributes.key?(:'min') + self.min = attributes[:'min'] + 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 @average.nil? + return false if @max.nil? + return false if @min.nil? + true + end + + # Custom attribute writer method with validation + # @param average [Object] Object to be assigned + # @!visibility private + def average=(average) + if average.nil? + fail ArgumentError, 'invalid value for "average", average cannot be nil.' + end + @average = average + end + + # Custom attribute writer method with validation + # @param max [Object] Object to be assigned + # @!visibility private + def max=(max) + if max.nil? + fail ArgumentError, 'invalid value for "max", max cannot be nil.' + end + @max = max + end + + # Custom attribute writer method with validation + # @param min [Object] Object to be assigned + # @!visibility private + def min=(min) + if min.nil? + fail ArgumentError, 'invalid value for "min", min cannot be nil.' + end + @min = min + 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 && + average == o.average && + max == o.max && + min == o.min && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [average, max, min, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/long_task_stats_per_view.rb b/lib/datadog_api_client/v2/models/long_task_stats_per_view.rb new file mode 100644 index 000000000000..4749e5882779 --- /dev/null +++ b/lib/datadog_api_client/v2/models/long_task_stats_per_view.rb @@ -0,0 +1,195 @@ +=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 + # Statistical distributions of long task metrics computed per view across sampled views. + class LongTaskStatsPerView + include BaseGenericModel + + # Statistical distribution (average, min, max) of a long task metric across sampled views. + attr_accessor :fcp_blocking_time_ms + + # Statistical distribution (average, min, max) of a long task metric across sampled views. + attr_accessor :fcp_count + + # Statistical distribution (average, min, max) of a long task metric across sampled views. + attr_accessor :inp_overlap_blocking_time_ms + + # Statistical distribution (average, min, max) of a long task metric across sampled views. + attr_accessor :inp_overlap_count + + # Statistical distribution (average, min, max) of a long task metric across sampled views. + attr_accessor :lcp_blocking_time_ms + + # Statistical distribution (average, min, max) of a long task metric across sampled views. + attr_accessor :lcp_count + + # Statistical distribution (average, min, max) of a long task metric across sampled views. + attr_accessor :loading_time_blocking_time_ms + + # Statistical distribution (average, min, max) of a long task metric across sampled views. + attr_accessor :loading_time_count + + # Statistical distribution (average, min, max) of a long task metric across sampled views. + attr_accessor :total_blocking_time_ms + + # Statistical distribution (average, min, max) of a long task metric across sampled views. + attr_accessor :total_count + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'fcp_blocking_time_ms' => :'fcp_blocking_time_ms', + :'fcp_count' => :'fcp_count', + :'inp_overlap_blocking_time_ms' => :'inp_overlap_blocking_time_ms', + :'inp_overlap_count' => :'inp_overlap_count', + :'lcp_blocking_time_ms' => :'lcp_blocking_time_ms', + :'lcp_count' => :'lcp_count', + :'loading_time_blocking_time_ms' => :'loading_time_blocking_time_ms', + :'loading_time_count' => :'loading_time_count', + :'total_blocking_time_ms' => :'total_blocking_time_ms', + :'total_count' => :'total_count' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'fcp_blocking_time_ms' => :'LongTaskMetricStats', + :'fcp_count' => :'LongTaskMetricStats', + :'inp_overlap_blocking_time_ms' => :'LongTaskMetricStats', + :'inp_overlap_count' => :'LongTaskMetricStats', + :'lcp_blocking_time_ms' => :'LongTaskMetricStats', + :'lcp_count' => :'LongTaskMetricStats', + :'loading_time_blocking_time_ms' => :'LongTaskMetricStats', + :'loading_time_count' => :'LongTaskMetricStats', + :'total_blocking_time_ms' => :'LongTaskMetricStats', + :'total_count' => :'LongTaskMetricStats' + } + 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::LongTaskStatsPerView` 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?(:'fcp_blocking_time_ms') + self.fcp_blocking_time_ms = attributes[:'fcp_blocking_time_ms'] + end + + if attributes.key?(:'fcp_count') + self.fcp_count = attributes[:'fcp_count'] + end + + if attributes.key?(:'inp_overlap_blocking_time_ms') + self.inp_overlap_blocking_time_ms = attributes[:'inp_overlap_blocking_time_ms'] + end + + if attributes.key?(:'inp_overlap_count') + self.inp_overlap_count = attributes[:'inp_overlap_count'] + end + + if attributes.key?(:'lcp_blocking_time_ms') + self.lcp_blocking_time_ms = attributes[:'lcp_blocking_time_ms'] + end + + if attributes.key?(:'lcp_count') + self.lcp_count = attributes[:'lcp_count'] + end + + if attributes.key?(:'loading_time_blocking_time_ms') + self.loading_time_blocking_time_ms = attributes[:'loading_time_blocking_time_ms'] + end + + if attributes.key?(:'loading_time_count') + self.loading_time_count = attributes[:'loading_time_count'] + end + + if attributes.key?(:'total_blocking_time_ms') + self.total_blocking_time_ms = attributes[:'total_blocking_time_ms'] + end + + if attributes.key?(:'total_count') + self.total_count = attributes[:'total_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 && + fcp_blocking_time_ms == o.fcp_blocking_time_ms && + fcp_count == o.fcp_count && + inp_overlap_blocking_time_ms == o.inp_overlap_blocking_time_ms && + inp_overlap_count == o.inp_overlap_count && + lcp_blocking_time_ms == o.lcp_blocking_time_ms && + lcp_count == o.lcp_count && + loading_time_blocking_time_ms == o.loading_time_blocking_time_ms && + loading_time_count == o.loading_time_count && + total_blocking_time_ms == o.total_blocking_time_ms && + total_count == o.total_count && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [fcp_blocking_time_ms, fcp_count, inp_overlap_blocking_time_ms, inp_overlap_count, lcp_blocking_time_ms, lcp_count, loading_time_blocking_time_ms, loading_time_count, total_blocking_time_ms, total_count, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/salesforce_incidents_organization_response_attributes.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_organization_response_attributes.rb new file mode 100644 index 000000000000..2883e6a8e0c3 --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_organization_response_attributes.rb @@ -0,0 +1,135 @@ +=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 Salesforce organization connected to the Datadog Salesforce integration. + class SalesforceIncidentsOrganizationResponseAttributes + include BaseGenericModel + + # The Salesforce instance URL used to call this organization's APIs. + attr_accessor :instance_url + + # Human-readable name of the Salesforce organization. + attr_accessor :name + + # The Salesforce organization identifier (15- or 18-character Salesforce org ID). + attr_accessor :sfdc_org_id + + # The Salesforce organization type (for example, `Production` or `Sandbox`). + attr_accessor :sfdc_org_type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'instance_url' => :'instance_url', + :'name' => :'name', + :'sfdc_org_id' => :'sfdc_org_id', + :'sfdc_org_type' => :'sfdc_org_type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'instance_url' => :'String', + :'name' => :'String', + :'sfdc_org_id' => :'String', + :'sfdc_org_type' => :'String' + } + 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::SalesforceIncidentsOrganizationResponseAttributes` 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?(:'instance_url') + self.instance_url = attributes[:'instance_url'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'sfdc_org_id') + self.sfdc_org_id = attributes[:'sfdc_org_id'] + end + + if attributes.key?(:'sfdc_org_type') + self.sfdc_org_type = attributes[:'sfdc_org_type'] + 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 && + instance_url == o.instance_url && + name == o.name && + sfdc_org_id == o.sfdc_org_id && + sfdc_org_type == o.sfdc_org_type && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [instance_url, name, sfdc_org_id, sfdc_org_type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/salesforce_incidents_organization_response_data.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_organization_response_data.rb new file mode 100644 index 000000000000..ac32665115d0 --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_organization_response_data.rb @@ -0,0 +1,173 @@ +=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 + # Salesforce organization data from a response. + class SalesforceIncidentsOrganizationResponseData + include BaseGenericModel + + # Attributes of a Salesforce organization connected to the Datadog Salesforce integration. + attr_reader :attributes + + # The Datadog-assigned ID of the connected Salesforce organization. + attr_reader :id + + # Salesforce organization resource type. + 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' => :'SalesforceIncidentsOrganizationResponseAttributes', + :'id' => :'String', + :'type' => :'SalesforceIncidentsOrganizationType' + } + 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::SalesforceIncidentsOrganizationResponseData` 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 @id.to_s.length > 100 + return false if @id.to_s.length < 1 + 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 + if id.to_s.length > 100 + fail ArgumentError, 'invalid value for "id", the character length must be smaller than or equal to 100.' + end + if id.to_s.length < 1 + fail ArgumentError, 'invalid value for "id", the character length must be great than or equal to 1.' + 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/salesforce_incidents_organization_type.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_organization_type.rb new file mode 100644 index 000000000000..7191648d2299 --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_organization_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 + # Salesforce organization resource type. + class SalesforceIncidentsOrganizationType + include BaseEnumModel + + SALESFORCE_INCIDENTS_ORG = "salesforce-incidents-org".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/salesforce_incidents_organizations_response.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_organizations_response.rb new file mode 100644 index 000000000000..5be92ec31023 --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_organizations_response.rb @@ -0,0 +1,126 @@ +=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 containing a list of Salesforce organizations connected to the + # Datadog Salesforce integration. + class SalesforceIncidentsOrganizationsResponse + include BaseGenericModel + + # An array of Salesforce organizations. + attr_reader :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'Array' + } + 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::SalesforceIncidentsOrganizationsResponse` 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 + 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? + 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 + + # 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 && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/salesforce_incidents_template_create_attributes.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_template_create_attributes.rb new file mode 100644 index 000000000000..05246d105e81 --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_template_create_attributes.rb @@ -0,0 +1,260 @@ +=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 + # Salesforce incident template attributes for a create request. + class SalesforceIncidentsTemplateCreateAttributes + include BaseGenericModel + + # Long-form description body for Salesforce incidents created from this template. + attr_reader :description + + # Human-readable name for this incident template. Must be unique within your organization. + attr_reader :name + + # The Salesforce user ID that owns incidents created from this template. + attr_reader :owner_id + + # Priority of the Salesforce incident created from this template. + attr_reader :priority + + # The Datadog-assigned ID of the Salesforce organization this template belongs to. + attr_reader :salesforce_org_id + + # Subject line for Salesforce incidents created from this template. + attr_reader :subject + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'description' => :'description', + :'name' => :'name', + :'owner_id' => :'owner_id', + :'priority' => :'priority', + :'salesforce_org_id' => :'salesforce_org_id', + :'subject' => :'subject' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'description' => :'String', + :'name' => :'String', + :'owner_id' => :'String', + :'priority' => :'SalesforceIncidentsTemplatePriority', + :'salesforce_org_id' => :'UUID', + :'subject' => :'String' + } + 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::SalesforceIncidentsTemplateCreateAttributes` 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?(:'description') + self.description = attributes[:'description'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'owner_id') + self.owner_id = attributes[:'owner_id'] + end + + if attributes.key?(:'priority') + self.priority = attributes[:'priority'] + end + + if attributes.key?(:'salesforce_org_id') + self.salesforce_org_id = attributes[:'salesforce_org_id'] + end + + if attributes.key?(:'subject') + self.subject = attributes[:'subject'] + 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 @description.nil? + return false if @description.to_s.length > 2048 + return false if @description.to_s.length < 1 + return false if @name.nil? + return false if @name.to_s.length > 100 + return false if @name.to_s.length < 1 + return false if @owner_id.nil? + return false if @owner_id.to_s.length > 255 + return false if @owner_id.to_s.length < 1 + return false if @priority.nil? + return false if @salesforce_org_id.nil? + return false if @subject.nil? + return false if @subject.to_s.length > 255 + return false if @subject.to_s.length < 1 + true + end + + # Custom attribute writer method with validation + # @param description [Object] Object to be assigned + # @!visibility private + def description=(description) + if description.nil? + fail ArgumentError, 'invalid value for "description", description cannot be nil.' + end + if description.to_s.length > 2048 + fail ArgumentError, 'invalid value for "description", the character length must be smaller than or equal to 2048.' + end + if description.to_s.length < 1 + fail ArgumentError, 'invalid value for "description", the character length must be great than or equal to 1.' + end + @description = description + 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 + if name.to_s.length > 100 + fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 100.' + end + if name.to_s.length < 1 + fail ArgumentError, 'invalid value for "name", the character length must be great than or equal to 1.' + end + @name = name + end + + # Custom attribute writer method with validation + # @param owner_id [Object] Object to be assigned + # @!visibility private + def owner_id=(owner_id) + if owner_id.nil? + fail ArgumentError, 'invalid value for "owner_id", owner_id cannot be nil.' + end + if owner_id.to_s.length > 255 + fail ArgumentError, 'invalid value for "owner_id", the character length must be smaller than or equal to 255.' + end + if owner_id.to_s.length < 1 + fail ArgumentError, 'invalid value for "owner_id", the character length must be great than or equal to 1.' + end + @owner_id = owner_id + end + + # Custom attribute writer method with validation + # @param priority [Object] Object to be assigned + # @!visibility private + def priority=(priority) + if priority.nil? + fail ArgumentError, 'invalid value for "priority", priority cannot be nil.' + end + @priority = priority + end + + # Custom attribute writer method with validation + # @param salesforce_org_id [Object] Object to be assigned + # @!visibility private + def salesforce_org_id=(salesforce_org_id) + if salesforce_org_id.nil? + fail ArgumentError, 'invalid value for "salesforce_org_id", salesforce_org_id cannot be nil.' + end + @salesforce_org_id = salesforce_org_id + end + + # Custom attribute writer method with validation + # @param subject [Object] Object to be assigned + # @!visibility private + def subject=(subject) + if subject.nil? + fail ArgumentError, 'invalid value for "subject", subject cannot be nil.' + end + if subject.to_s.length > 255 + fail ArgumentError, 'invalid value for "subject", the character length must be smaller than or equal to 255.' + end + if subject.to_s.length < 1 + fail ArgumentError, 'invalid value for "subject", the character length must be great than or equal to 1.' + end + @subject = subject + 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 && + description == o.description && + name == o.name && + owner_id == o.owner_id && + priority == o.priority && + salesforce_org_id == o.salesforce_org_id && + subject == o.subject && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [description, name, owner_id, priority, salesforce_org_id, subject, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/salesforce_incidents_template_create_data.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_template_create_data.rb new file mode 100644 index 000000000000..e995bd9202e4 --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_template_create_data.rb @@ -0,0 +1,144 @@ +=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 + # Salesforce incident template data for a create request. + class SalesforceIncidentsTemplateCreateData + include BaseGenericModel + + # Salesforce incident template attributes for a create request. + attr_reader :attributes + + # Salesforce incident template resource type. + 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', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'attributes' => :'SalesforceIncidentsTemplateCreateAttributes', + :'type' => :'SalesforceIncidentsTemplateType' + } + 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::SalesforceIncidentsTemplateCreateData` 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?(:'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 && + 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, type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/salesforce_incidents_template_create_request.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_template_create_request.rb new file mode 100644 index 000000000000..4d1a88c04307 --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_template_create_request.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 + # Create request for a Salesforce incident template. + class SalesforceIncidentsTemplateCreateRequest + include BaseGenericModel + + # Salesforce incident template data for a create request. + attr_reader :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'SalesforceIncidentsTemplateCreateData' + } + 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::SalesforceIncidentsTemplateCreateRequest` 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') + self.data = attributes[:'data'] + 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? + 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 + + # 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 && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/salesforce_incidents_template_priority.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_template_priority.rb new file mode 100644 index 000000000000..651d73571dc7 --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_template_priority.rb @@ -0,0 +1,29 @@ +=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 + # Priority of the Salesforce incident created from this template. + class SalesforceIncidentsTemplatePriority + include BaseEnumModel + + CRITICAL = "Critical".freeze + HIGH = "High".freeze + MODERATE = "Moderate".freeze + LOW = "Low".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/salesforce_incidents_template_response.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_template_response.rb new file mode 100644 index 000000000000..8d7519f3fc58 --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_template_response.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 + # Response containing a Salesforce incident template. + class SalesforceIncidentsTemplateResponse + include BaseGenericModel + + # Salesforce incident template data from a response. + attr_reader :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'SalesforceIncidentsTemplateResponseData' + } + 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::SalesforceIncidentsTemplateResponse` 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') + self.data = attributes[:'data'] + 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? + 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 + + # 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 && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/salesforce_incidents_template_response_attributes.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_template_response_attributes.rb new file mode 100644 index 000000000000..890a0b3645ce --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_template_response_attributes.rb @@ -0,0 +1,155 @@ +=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 + # Salesforce incident template attributes returned by the API. + class SalesforceIncidentsTemplateResponseAttributes + include BaseGenericModel + + # Long-form description body for Salesforce incidents created from this template. + attr_accessor :description + + # Human-readable name for this incident template. + attr_accessor :name + + # The Salesforce user ID that owns incidents created from this template. + attr_accessor :owner_id + + # Priority of the Salesforce incident created from this template. + attr_accessor :priority + + # The Datadog-assigned ID of the Salesforce organization this template belongs to. + attr_accessor :salesforce_org_id + + # Subject line for Salesforce incidents created from this template. + attr_accessor :subject + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'description' => :'description', + :'name' => :'name', + :'owner_id' => :'owner_id', + :'priority' => :'priority', + :'salesforce_org_id' => :'salesforce_org_id', + :'subject' => :'subject' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'description' => :'String', + :'name' => :'String', + :'owner_id' => :'String', + :'priority' => :'SalesforceIncidentsTemplatePriority', + :'salesforce_org_id' => :'UUID', + :'subject' => :'String' + } + 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::SalesforceIncidentsTemplateResponseAttributes` 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?(:'description') + self.description = attributes[:'description'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'owner_id') + self.owner_id = attributes[:'owner_id'] + end + + if attributes.key?(:'priority') + self.priority = attributes[:'priority'] + end + + if attributes.key?(:'salesforce_org_id') + self.salesforce_org_id = attributes[:'salesforce_org_id'] + end + + if attributes.key?(:'subject') + self.subject = attributes[:'subject'] + 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 && + description == o.description && + name == o.name && + owner_id == o.owner_id && + priority == o.priority && + salesforce_org_id == o.salesforce_org_id && + subject == o.subject && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [description, name, owner_id, priority, salesforce_org_id, subject, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/salesforce_incidents_template_response_data.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_template_response_data.rb new file mode 100644 index 000000000000..41e5c5f9837f --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_template_response_data.rb @@ -0,0 +1,173 @@ +=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 + # Salesforce incident template data from a response. + class SalesforceIncidentsTemplateResponseData + include BaseGenericModel + + # Salesforce incident template attributes returned by the API. + attr_reader :attributes + + # The ID of the Salesforce incident template. + attr_reader :id + + # Salesforce incident template resource type. + 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' => :'SalesforceIncidentsTemplateResponseAttributes', + :'id' => :'String', + :'type' => :'SalesforceIncidentsTemplateType' + } + 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::SalesforceIncidentsTemplateResponseData` 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 @id.to_s.length > 100 + return false if @id.to_s.length < 1 + 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 + if id.to_s.length > 100 + fail ArgumentError, 'invalid value for "id", the character length must be smaller than or equal to 100.' + end + if id.to_s.length < 1 + fail ArgumentError, 'invalid value for "id", the character length must be great than or equal to 1.' + 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/salesforce_incidents_template_type.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_template_type.rb new file mode 100644 index 000000000000..b913ba88d932 --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_template_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 + # Salesforce incident template resource type. + class SalesforceIncidentsTemplateType + include BaseEnumModel + + SALESFORCE_INCIDENTS_INCIDENT_TEMPLATE = "salesforce-incidents-incident-template".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/salesforce_incidents_template_update_attributes.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_template_update_attributes.rb new file mode 100644 index 000000000000..b7e3c73df720 --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_template_update_attributes.rb @@ -0,0 +1,222 @@ +=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 + # Salesforce incident template attributes for an update request. + class SalesforceIncidentsTemplateUpdateAttributes + include BaseGenericModel + + # Long-form description body for Salesforce incidents created from this template. + attr_reader :description + + # Human-readable name for this incident template. + attr_reader :name + + # The Salesforce user ID that owns incidents created from this template. + attr_reader :owner_id + + # Priority of the Salesforce incident created from this template. + attr_accessor :priority + + # The Datadog-assigned ID of the Salesforce organization this template belongs to. + attr_accessor :salesforce_org_id + + # Subject line for Salesforce incidents created from this template. + attr_reader :subject + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'description' => :'description', + :'name' => :'name', + :'owner_id' => :'owner_id', + :'priority' => :'priority', + :'salesforce_org_id' => :'salesforce_org_id', + :'subject' => :'subject' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'description' => :'String', + :'name' => :'String', + :'owner_id' => :'String', + :'priority' => :'SalesforceIncidentsTemplatePriority', + :'salesforce_org_id' => :'UUID', + :'subject' => :'String' + } + 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::SalesforceIncidentsTemplateUpdateAttributes` 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?(:'description') + self.description = attributes[:'description'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'owner_id') + self.owner_id = attributes[:'owner_id'] + end + + if attributes.key?(:'priority') + self.priority = attributes[:'priority'] + end + + if attributes.key?(:'salesforce_org_id') + self.salesforce_org_id = attributes[:'salesforce_org_id'] + end + + if attributes.key?(:'subject') + self.subject = attributes[:'subject'] + 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 !@description.nil? && @description.to_s.length > 2048 + return false if !@description.nil? && @description.to_s.length < 1 + return false if !@name.nil? && @name.to_s.length > 100 + return false if !@name.nil? && @name.to_s.length < 1 + return false if !@owner_id.nil? && @owner_id.to_s.length > 255 + return false if !@owner_id.nil? && @owner_id.to_s.length < 1 + return false if !@subject.nil? && @subject.to_s.length > 255 + return false if !@subject.nil? && @subject.to_s.length < 1 + true + end + + # Custom attribute writer method with validation + # @param description [Object] Object to be assigned + # @!visibility private + def description=(description) + if !description.nil? && description.to_s.length > 2048 + fail ArgumentError, 'invalid value for "description", the character length must be smaller than or equal to 2048.' + end + if !description.nil? && description.to_s.length < 1 + fail ArgumentError, 'invalid value for "description", the character length must be great than or equal to 1.' + end + @description = description + end + + # Custom attribute writer method with validation + # @param name [Object] Object to be assigned + # @!visibility private + def name=(name) + if !name.nil? && name.to_s.length > 100 + fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 100.' + end + if !name.nil? && name.to_s.length < 1 + fail ArgumentError, 'invalid value for "name", the character length must be great than or equal to 1.' + end + @name = name + end + + # Custom attribute writer method with validation + # @param owner_id [Object] Object to be assigned + # @!visibility private + def owner_id=(owner_id) + if !owner_id.nil? && owner_id.to_s.length > 255 + fail ArgumentError, 'invalid value for "owner_id", the character length must be smaller than or equal to 255.' + end + if !owner_id.nil? && owner_id.to_s.length < 1 + fail ArgumentError, 'invalid value for "owner_id", the character length must be great than or equal to 1.' + end + @owner_id = owner_id + end + + # Custom attribute writer method with validation + # @param subject [Object] Object to be assigned + # @!visibility private + def subject=(subject) + if !subject.nil? && subject.to_s.length > 255 + fail ArgumentError, 'invalid value for "subject", the character length must be smaller than or equal to 255.' + end + if !subject.nil? && subject.to_s.length < 1 + fail ArgumentError, 'invalid value for "subject", the character length must be great than or equal to 1.' + end + @subject = subject + 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 && + description == o.description && + name == o.name && + owner_id == o.owner_id && + priority == o.priority && + salesforce_org_id == o.salesforce_org_id && + subject == o.subject && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [description, name, owner_id, priority, salesforce_org_id, subject, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/salesforce_incidents_template_update_data.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_template_update_data.rb new file mode 100644 index 000000000000..33056f9e756f --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_template_update_data.rb @@ -0,0 +1,173 @@ +=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 + # Salesforce incident template data for an update request. + class SalesforceIncidentsTemplateUpdateData + include BaseGenericModel + + # Salesforce incident template attributes for an update request. + attr_reader :attributes + + # The ID of the Salesforce incident template being updated. Must match the path parameter. + attr_reader :id + + # Salesforce incident template resource type. + 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' => :'SalesforceIncidentsTemplateUpdateAttributes', + :'id' => :'String', + :'type' => :'SalesforceIncidentsTemplateType' + } + 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::SalesforceIncidentsTemplateUpdateData` 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 @id.to_s.length > 100 + return false if @id.to_s.length < 1 + 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 + if id.to_s.length > 100 + fail ArgumentError, 'invalid value for "id", the character length must be smaller than or equal to 100.' + end + if id.to_s.length < 1 + fail ArgumentError, 'invalid value for "id", the character length must be great than or equal to 1.' + 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/salesforce_incidents_template_update_request.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_template_update_request.rb new file mode 100644 index 000000000000..4aa69b1353d3 --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_template_update_request.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 + # Update request for a Salesforce incident template. + class SalesforceIncidentsTemplateUpdateRequest + include BaseGenericModel + + # Salesforce incident template data for an update request. + attr_reader :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'SalesforceIncidentsTemplateUpdateData' + } + 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::SalesforceIncidentsTemplateUpdateRequest` 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') + self.data = attributes[:'data'] + 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? + 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 + + # 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 && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/salesforce_incidents_templates_response.rb b/lib/datadog_api_client/v2/models/salesforce_incidents_templates_response.rb new file mode 100644 index 000000000000..a9fce3cb0d1b --- /dev/null +++ b/lib/datadog_api_client/v2/models/salesforce_incidents_templates_response.rb @@ -0,0 +1,125 @@ +=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 containing a list of Salesforce incident templates. + class SalesforceIncidentsTemplatesResponse + include BaseGenericModel + + # An array of Salesforce incident templates. + attr_reader :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'Array' + } + 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::SalesforceIncidentsTemplatesResponse` 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 + 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? + 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 + + # 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 && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_entity_risk_score.rb b/lib/datadog_api_client/v2/models/security_entity_risk_score.rb index d949332ea1d7..87d36cad67dd 100644 --- a/lib/datadog_api_client/v2/models/security_entity_risk_score.rb +++ b/lib/datadog_api_client/v2/models/security_entity_risk_score.rb @@ -21,13 +21,13 @@ module DatadogAPIClient::V2 class SecurityEntityRiskScore include BaseGenericModel - # Attributes of an entity risk score + # Attributes of an entity risk score. attr_reader :attributes # Unique identifier for the entity attr_reader :id - # Resource type + # Resource type. attr_reader :type attr_accessor :additional_properties diff --git a/lib/datadog_api_client/v2/models/security_entity_risk_score_attributes.rb b/lib/datadog_api_client/v2/models/security_entity_risk_score_attributes.rb index 39181bd43734..154ee8a1b180 100644 --- a/lib/datadog_api_client/v2/models/security_entity_risk_score_attributes.rb +++ b/lib/datadog_api_client/v2/models/security_entity_risk_score_attributes.rb @@ -17,50 +17,56 @@ require 'time' module DatadogAPIClient::V2 - # Attributes of an entity risk score + # Attributes of an entity risk score. class SecurityEntityRiskScoreAttributes include BaseGenericModel + # Cloud account IDs associated with the entity. + attr_reader :account_ids + # Configuration risks associated with the entity attr_reader :config_risks - # Unique identifier for the entity - attr_reader :entity_id - # Metadata about the entity from cloud providers attr_reader :entity_metadata - # Human-readable name of the entity + # Human-readable name of the entity. attr_accessor :entity_name - # Cloud providers associated with the entity + # Cloud providers associated with the entity. attr_reader :entity_providers - # Roles associated with the entity + # Roles associated with the entity. attr_accessor :entity_roles - # Type of the entity (e.g., aws_iam_user, aws_ec2_instance) - attr_reader :entity_type + # Sub-types associated with the entity. + attr_reader :entity_sub_types + + # Type of the entity (for example, aws_iam_user, aws_ec2_instance). + attr_accessor :entity_type + + # All types associated with the entity. + attr_accessor :entity_types - # Timestamp when the entity was first detected (Unix milliseconds) + # Timestamp when the entity was first detected (Unix milliseconds). attr_reader :first_detected - # Title of the most recent signal detected for this entity + # Title of the most recent signal detected for this entity. attr_reader :last_activity_title - # Timestamp when the entity was last detected (Unix milliseconds) + # Timestamp when the entity was last detected (Unix milliseconds). attr_reader :last_detected - # Current risk score for the entity + # Current risk score for the entity. attr_reader :risk_score - # Change in risk score compared to previous period + # Change in risk score compared to previous period. attr_reader :risk_score_evolution # Severity level based on risk score attr_reader :severity - # Number of security signals detected for this entity + # Number of security signals detected for this entity. attr_reader :signals_detected attr_accessor :additional_properties @@ -69,13 +75,15 @@ class SecurityEntityRiskScoreAttributes # @!visibility private def self.attribute_map { + :'account_ids' => :'accountIds', :'config_risks' => :'configRisks', - :'entity_id' => :'entityID', :'entity_metadata' => :'entityMetadata', :'entity_name' => :'entityName', :'entity_providers' => :'entityProviders', :'entity_roles' => :'entityRoles', + :'entity_sub_types' => :'entitySubTypes', :'entity_type' => :'entityType', + :'entity_types' => :'entityTypes', :'first_detected' => :'firstDetected', :'last_activity_title' => :'lastActivityTitle', :'last_detected' => :'lastDetected', @@ -90,13 +98,15 @@ def self.attribute_map # @!visibility private def self.openapi_types { + :'account_ids' => :'Array', :'config_risks' => :'SecurityEntityConfigRisks', - :'entity_id' => :'String', :'entity_metadata' => :'SecurityEntityMetadata', :'entity_name' => :'String', :'entity_providers' => :'Array', :'entity_roles' => :'Array', + :'entity_sub_types' => :'Array', :'entity_type' => :'String', + :'entity_types' => :'Array', :'first_detected' => :'Integer', :'last_activity_title' => :'String', :'last_detected' => :'Integer', @@ -125,12 +135,14 @@ def initialize(attributes = {}) end } - if attributes.key?(:'config_risks') - self.config_risks = attributes[:'config_risks'] + if attributes.key?(:'account_ids') + if (value = attributes[:'account_ids']).is_a?(Array) + self.account_ids = value + end end - if attributes.key?(:'entity_id') - self.entity_id = attributes[:'entity_id'] + if attributes.key?(:'config_risks') + self.config_risks = attributes[:'config_risks'] end if attributes.key?(:'entity_metadata') @@ -153,10 +165,22 @@ def initialize(attributes = {}) end end + if attributes.key?(:'entity_sub_types') + if (value = attributes[:'entity_sub_types']).is_a?(Array) + self.entity_sub_types = value + end + end + if attributes.key?(:'entity_type') self.entity_type = attributes[:'entity_type'] end + if attributes.key?(:'entity_types') + if (value = attributes[:'entity_types']).is_a?(Array) + self.entity_types = value + end + end + if attributes.key?(:'first_detected') self.first_detected = attributes[:'first_detected'] end @@ -190,11 +214,11 @@ def initialize(attributes = {}) # @return true if the model is valid # @!visibility private def valid? + return false if @account_ids.nil? return false if @config_risks.nil? - return false if @entity_id.nil? return false if @entity_metadata.nil? return false if @entity_providers.nil? - return false if @entity_type.nil? + return false if @entity_sub_types.nil? return false if @first_detected.nil? return false if @last_activity_title.nil? return false if @last_detected.nil? @@ -206,23 +230,23 @@ def valid? end # Custom attribute writer method with validation - # @param config_risks [Object] Object to be assigned + # @param account_ids [Object] Object to be assigned # @!visibility private - def config_risks=(config_risks) - if config_risks.nil? - fail ArgumentError, 'invalid value for "config_risks", config_risks cannot be nil.' + def account_ids=(account_ids) + if account_ids.nil? + fail ArgumentError, 'invalid value for "account_ids", account_ids cannot be nil.' end - @config_risks = config_risks + @account_ids = account_ids end # Custom attribute writer method with validation - # @param entity_id [Object] Object to be assigned + # @param config_risks [Object] Object to be assigned # @!visibility private - def entity_id=(entity_id) - if entity_id.nil? - fail ArgumentError, 'invalid value for "entity_id", entity_id cannot be nil.' + def config_risks=(config_risks) + if config_risks.nil? + fail ArgumentError, 'invalid value for "config_risks", config_risks cannot be nil.' end - @entity_id = entity_id + @config_risks = config_risks end # Custom attribute writer method with validation @@ -246,13 +270,13 @@ def entity_providers=(entity_providers) end # Custom attribute writer method with validation - # @param entity_type [Object] Object to be assigned + # @param entity_sub_types [Object] Object to be assigned # @!visibility private - def entity_type=(entity_type) - if entity_type.nil? - fail ArgumentError, 'invalid value for "entity_type", entity_type cannot be nil.' + def entity_sub_types=(entity_sub_types) + if entity_sub_types.nil? + fail ArgumentError, 'invalid value for "entity_sub_types", entity_sub_types cannot be nil.' end - @entity_type = entity_type + @entity_sub_types = entity_sub_types end # Custom attribute writer method with validation @@ -351,13 +375,15 @@ def to_hash def ==(o) return true if self.equal?(o) self.class == o.class && + account_ids == o.account_ids && config_risks == o.config_risks && - entity_id == o.entity_id && entity_metadata == o.entity_metadata && entity_name == o.entity_name && entity_providers == o.entity_providers && entity_roles == o.entity_roles && + entity_sub_types == o.entity_sub_types && entity_type == o.entity_type && + entity_types == o.entity_types && first_detected == o.first_detected && last_activity_title == o.last_activity_title && last_detected == o.last_detected && @@ -372,7 +398,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [config_risks, entity_id, entity_metadata, entity_name, entity_providers, entity_roles, entity_type, first_detected, last_activity_title, last_detected, risk_score, risk_score_evolution, severity, signals_detected, additional_properties].hash + [account_ids, config_risks, entity_metadata, entity_name, entity_providers, entity_roles, entity_sub_types, entity_type, entity_types, first_detected, last_activity_title, last_detected, risk_score, risk_score_evolution, severity, signals_detected, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/security_entity_risk_score_response.rb b/lib/datadog_api_client/v2/models/security_entity_risk_score_response.rb new file mode 100644 index 000000000000..77903e0e64e4 --- /dev/null +++ b/lib/datadog_api_client/v2/models/security_entity_risk_score_response.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 + # Response containing a single entity risk score + class SecurityEntityRiskScoreResponse + include BaseGenericModel + + # An entity risk score containing security risk assessment information + attr_reader :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'SecurityEntityRiskScore' + } + 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::SecurityEntityRiskScoreResponse` 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') + self.data = attributes[:'data'] + 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? + 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 + + # 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 && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/security_entity_risk_score_type.rb b/lib/datadog_api_client/v2/models/security_entity_risk_score_type.rb index 6ed06baf78fb..40d77f40adb0 100644 --- a/lib/datadog_api_client/v2/models/security_entity_risk_score_type.rb +++ b/lib/datadog_api_client/v2/models/security_entity_risk_score_type.rb @@ -17,10 +17,10 @@ require 'time' module DatadogAPIClient::V2 - # Resource type + # Resource type. class SecurityEntityRiskScoreType include BaseEnumModel - SECURITY_ENTITY_RISK_SCORE = "security_entity_risk_score".freeze + SECURITY_ENTITY_RISK_SCORE = "SecurityEntityRiskScore".freeze end end diff --git a/lib/datadog_api_client/v2/models/signals_problems_detections.rb b/lib/datadog_api_client/v2/models/signals_problems_detections.rb new file mode 100644 index 000000000000..aee7c2097e95 --- /dev/null +++ b/lib/datadog_api_client/v2/models/signals_problems_detections.rb @@ -0,0 +1,179 @@ +=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 + # Grouped detection results by detection type. + class SignalsProblemsDetections + include BaseGenericModel + + # Detected high frozen frame rate issues. + attr_accessor :high_frozen_frame_rates + + # Detected high script evaluation issues. + attr_accessor :high_script_evaluations + + # Detected low cache hit rate issues. + attr_accessor :low_cache_hit_rates + + # Detected mobile scroll friction issues. + attr_accessor :mobile_scroll_frictions + + # Detected slow first contentful paint with high byte count issues. + attr_accessor :slow_fcp_high_bytes + + # Detected slow interaction with long task issues. + attr_accessor :slow_interaction_long_tasks + + # Detected uncompressed resource issues. + attr_accessor :uncompressed_resources + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'high_frozen_frame_rates' => :'high_frozen_frame_rates', + :'high_script_evaluations' => :'high_script_evaluations', + :'low_cache_hit_rates' => :'low_cache_hit_rates', + :'mobile_scroll_frictions' => :'mobile_scroll_frictions', + :'slow_fcp_high_bytes' => :'slow_fcp_high_bytes', + :'slow_interaction_long_tasks' => :'slow_interaction_long_tasks', + :'uncompressed_resources' => :'uncompressed_resources' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'high_frozen_frame_rates' => :'Array', + :'high_script_evaluations' => :'Array', + :'low_cache_hit_rates' => :'Array', + :'mobile_scroll_frictions' => :'Array', + :'slow_fcp_high_bytes' => :'Array', + :'slow_interaction_long_tasks' => :'Array', + :'uncompressed_resources' => :'Array' + } + 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::SignalsProblemsDetections` 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?(:'high_frozen_frame_rates') + if (value = attributes[:'high_frozen_frame_rates']).is_a?(Array) + self.high_frozen_frame_rates = value + end + end + + if attributes.key?(:'high_script_evaluations') + if (value = attributes[:'high_script_evaluations']).is_a?(Array) + self.high_script_evaluations = value + end + end + + if attributes.key?(:'low_cache_hit_rates') + if (value = attributes[:'low_cache_hit_rates']).is_a?(Array) + self.low_cache_hit_rates = value + end + end + + if attributes.key?(:'mobile_scroll_frictions') + if (value = attributes[:'mobile_scroll_frictions']).is_a?(Array) + self.mobile_scroll_frictions = value + end + end + + if attributes.key?(:'slow_fcp_high_bytes') + if (value = attributes[:'slow_fcp_high_bytes']).is_a?(Array) + self.slow_fcp_high_bytes = value + end + end + + if attributes.key?(:'slow_interaction_long_tasks') + if (value = attributes[:'slow_interaction_long_tasks']).is_a?(Array) + self.slow_interaction_long_tasks = value + end + end + + if attributes.key?(:'uncompressed_resources') + if (value = attributes[:'uncompressed_resources']).is_a?(Array) + self.uncompressed_resources = value + end + 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 && + high_frozen_frame_rates == o.high_frozen_frame_rates && + high_script_evaluations == o.high_script_evaluations && + low_cache_hit_rates == o.low_cache_hit_rates && + mobile_scroll_frictions == o.mobile_scroll_frictions && + slow_fcp_high_bytes == o.slow_fcp_high_bytes && + slow_interaction_long_tasks == o.slow_interaction_long_tasks && + uncompressed_resources == o.uncompressed_resources && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [high_frozen_frame_rates, high_script_evaluations, low_cache_hit_rates, mobile_scroll_frictions, slow_fcp_high_bytes, slow_interaction_long_tasks, uncompressed_resources, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/signals_problems_sample_metadata.rb b/lib/datadog_api_client/v2/models/signals_problems_sample_metadata.rb new file mode 100644 index 000000000000..ce4bca602d2e --- /dev/null +++ b/lib/datadog_api_client/v2/models/signals_problems_sample_metadata.rb @@ -0,0 +1,221 @@ +=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 about the sampling quality for a signals and problems query. + class SignalsProblemsSampleMetadata + include BaseGenericModel + + # Number of view instances that failed to process. + attr_reader :failed + + # Number of view instances requested for sampling. + attr_reader :requested + + # List of RUM view IDs that were sampled. + attr_reader :sampled_view_ids + + # Number of view instances successfully processed. + attr_reader :succeeded + + # Ratio of successfully processed views to requested views. + attr_reader :success_rate + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'failed' => :'failed', + :'requested' => :'requested', + :'sampled_view_ids' => :'sampled_view_ids', + :'succeeded' => :'succeeded', + :'success_rate' => :'success_rate' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'failed' => :'Integer', + :'requested' => :'Integer', + :'sampled_view_ids' => :'Array', + :'succeeded' => :'Integer', + :'success_rate' => :'Float' + } + 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::SignalsProblemsSampleMetadata` 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?(:'failed') + self.failed = attributes[:'failed'] + end + + if attributes.key?(:'requested') + self.requested = attributes[:'requested'] + end + + if attributes.key?(:'sampled_view_ids') + if (value = attributes[:'sampled_view_ids']).is_a?(Array) + self.sampled_view_ids = value + end + end + + if attributes.key?(:'succeeded') + self.succeeded = attributes[:'succeeded'] + end + + if attributes.key?(:'success_rate') + self.success_rate = attributes[:'success_rate'] + 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 @failed.nil? + return false if @failed > 2147483647 + return false if @requested.nil? + return false if @requested > 2147483647 + return false if @sampled_view_ids.nil? + return false if @succeeded.nil? + return false if @succeeded > 2147483647 + return false if @success_rate.nil? + true + end + + # Custom attribute writer method with validation + # @param failed [Object] Object to be assigned + # @!visibility private + def failed=(failed) + if failed.nil? + fail ArgumentError, 'invalid value for "failed", failed cannot be nil.' + end + if failed > 2147483647 + fail ArgumentError, 'invalid value for "failed", must be smaller than or equal to 2147483647.' + end + @failed = failed + end + + # Custom attribute writer method with validation + # @param requested [Object] Object to be assigned + # @!visibility private + def requested=(requested) + if requested.nil? + fail ArgumentError, 'invalid value for "requested", requested cannot be nil.' + end + if requested > 2147483647 + fail ArgumentError, 'invalid value for "requested", must be smaller than or equal to 2147483647.' + end + @requested = requested + end + + # Custom attribute writer method with validation + # @param sampled_view_ids [Object] Object to be assigned + # @!visibility private + def sampled_view_ids=(sampled_view_ids) + if sampled_view_ids.nil? + fail ArgumentError, 'invalid value for "sampled_view_ids", sampled_view_ids cannot be nil.' + end + @sampled_view_ids = sampled_view_ids + end + + # Custom attribute writer method with validation + # @param succeeded [Object] Object to be assigned + # @!visibility private + def succeeded=(succeeded) + if succeeded.nil? + fail ArgumentError, 'invalid value for "succeeded", succeeded cannot be nil.' + end + if succeeded > 2147483647 + fail ArgumentError, 'invalid value for "succeeded", must be smaller than or equal to 2147483647.' + end + @succeeded = succeeded + end + + # Custom attribute writer method with validation + # @param success_rate [Object] Object to be assigned + # @!visibility private + def success_rate=(success_rate) + if success_rate.nil? + fail ArgumentError, 'invalid value for "success_rate", success_rate cannot be nil.' + end + @success_rate = success_rate + 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 && + failed == o.failed && + requested == o.requested && + sampled_view_ids == o.sampled_view_ids && + succeeded == o.succeeded && + success_rate == o.success_rate && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [failed, requested, sampled_view_ids, succeeded, success_rate, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/top_long_task_invoker.rb b/lib/datadog_api_client/v2/models/top_long_task_invoker.rb new file mode 100644 index 000000000000..ef76e35e3e72 --- /dev/null +++ b/lib/datadog_api_client/v2/models/top_long_task_invoker.rb @@ -0,0 +1,218 @@ +=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 top long task invoker within an invoker type. + class TopLongTaskInvoker + include BaseGenericModel + + # Number of sampled views where this invoker had long tasks contributing to the criteria metric. + attr_reader :criteria_view_occurrences + + # Cleaned source file path for the invoker script. + attr_accessor :file + + # Rank-product impact score combining view frequency and blocking time severity. + attr_accessor :impact_score + + # Name of the invoker function or script. + attr_reader :invoker + + # Statistical distributions of long task metrics computed per view across sampled views. + attr_reader :stats_per_view + + # Number of sampled views where this invoker had any long tasks. + attr_reader :view_occurrences + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'criteria_view_occurrences' => :'criteria_view_occurrences', + :'file' => :'file', + :'impact_score' => :'impact_score', + :'invoker' => :'invoker', + :'stats_per_view' => :'stats_per_view', + :'view_occurrences' => :'view_occurrences' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'criteria_view_occurrences' => :'Integer', + :'file' => :'String', + :'impact_score' => :'Float', + :'invoker' => :'String', + :'stats_per_view' => :'LongTaskStatsPerView', + :'view_occurrences' => :'Integer' + } + end + + # List of attributes with nullable: true + # @!visibility private + def self.openapi_nullable + Set.new([ + :'file', + ]) + 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::TopLongTaskInvoker` 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?(:'criteria_view_occurrences') + self.criteria_view_occurrences = attributes[:'criteria_view_occurrences'] + end + + if attributes.key?(:'file') + self.file = attributes[:'file'] + end + + if attributes.key?(:'impact_score') + self.impact_score = attributes[:'impact_score'] + end + + if attributes.key?(:'invoker') + self.invoker = attributes[:'invoker'] + end + + if attributes.key?(:'stats_per_view') + self.stats_per_view = attributes[:'stats_per_view'] + end + + if attributes.key?(:'view_occurrences') + self.view_occurrences = attributes[:'view_occurrences'] + 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 !@criteria_view_occurrences.nil? && @criteria_view_occurrences > 2147483647 + return false if @invoker.nil? + return false if @stats_per_view.nil? + return false if @view_occurrences.nil? + return false if @view_occurrences > 2147483647 + true + end + + # Custom attribute writer method with validation + # @param criteria_view_occurrences [Object] Object to be assigned + # @!visibility private + def criteria_view_occurrences=(criteria_view_occurrences) + if !criteria_view_occurrences.nil? && criteria_view_occurrences > 2147483647 + fail ArgumentError, 'invalid value for "criteria_view_occurrences", must be smaller than or equal to 2147483647.' + end + @criteria_view_occurrences = criteria_view_occurrences + end + + # Custom attribute writer method with validation + # @param invoker [Object] Object to be assigned + # @!visibility private + def invoker=(invoker) + if invoker.nil? + fail ArgumentError, 'invalid value for "invoker", invoker cannot be nil.' + end + @invoker = invoker + end + + # Custom attribute writer method with validation + # @param stats_per_view [Object] Object to be assigned + # @!visibility private + def stats_per_view=(stats_per_view) + if stats_per_view.nil? + fail ArgumentError, 'invalid value for "stats_per_view", stats_per_view cannot be nil.' + end + @stats_per_view = stats_per_view + end + + # Custom attribute writer method with validation + # @param view_occurrences [Object] Object to be assigned + # @!visibility private + def view_occurrences=(view_occurrences) + if view_occurrences.nil? + fail ArgumentError, 'invalid value for "view_occurrences", view_occurrences cannot be nil.' + end + if view_occurrences > 2147483647 + fail ArgumentError, 'invalid value for "view_occurrences", must be smaller than or equal to 2147483647.' + end + @view_occurrences = view_occurrences + 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 && + criteria_view_occurrences == o.criteria_view_occurrences && + file == o.file && + impact_score == o.impact_score && + invoker == o.invoker && + stats_per_view == o.stats_per_view && + view_occurrences == o.view_occurrences && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [criteria_view_occurrences, file, impact_score, invoker, stats_per_view, view_occurrences, additional_properties].hash + end + end +end